<?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>222463</bug_id>
          
          <creation_ts>2021-02-26 01:02:37 -0800</creation_ts>
          <short_desc>Make server test run with new node version</short_desc>
          <delta_ts>2021-03-06 18:10:43 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222874</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhifei Fang">zhifei_fang</reporter>
          <assigned_to name="Zhifei Fang">zhifei_fang</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zhifei_fang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733691</commentid>
    <comment_count>0</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-02-26 01:02:37 -0800</bug_when>
    <thetext>Make server test run with new node version and exisiting server</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733694</commentid>
    <comment_count>1</comment_count>
      <attachid>421623</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-02-26 01:12:20 -0800</bug_when>
    <thetext>Created attachment 421623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733709</commentid>
    <comment_count>2</comment_count>
      <attachid>421623</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-02-26 02:29:46 -0800</bug_when>
    <thetext>Comment on attachment 421623
Patch

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

&gt; Websites/perf.webkit.org/public/v3/models/manifest.js:32
&gt; +    static async fetchRawResponse(force=false)

Per convention, we should call it &apos;no_cache&apos; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734165</commentid>
    <comment_count>3</comment_count>
      <attachid>421623</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-27 01:15:19 -0800</bug_when>
    <thetext>Comment on attachment 421623
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:15
&gt; +        (then):

Please remove these bogus inline functions. Clearly there is no function called &quot;then&quot;.

&gt; Websites/perf.webkit.org/public/v3/models/manifest.js:25
&gt; -    static async fetch()
&gt; +    static async fetch(force=false)

should be noCache.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:223
&gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};

Do we really need to parseInt here?

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:325
&gt; -            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; +            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};

Ditto.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:362
&gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};

Ditto.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:400
&gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};

Ditto.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:436
&gt; -            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; +            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};

Ditto.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:737
&gt; +        assert.deepStrictEqual(commitSet.topLevelRepositories().sort((one, another) =&gt; parseInt(one.id()) - parseInt(another.id())), [osx, webkit]);

parseInt here is totally unnecessary.

&gt; Websites/perf.webkit.org/server-tests/api-manifest-tests.js:136
&gt; +            assert.strictEqual(webkit.ownedRepositories(), undefined);

Huh, ownedRepositories() should probably be returning null instead in this case.
But this is another reason we don&apos;t really use strict equality in the codebase.
The distinction between undefined &amp; null are decidedly uninteresting.

&gt; Websites/perf.webkit.org/server-tests/api-manifest-tests.js:278
&gt; +            assert.strictEqual(someTest.parentTest(), undefined);

Ditto here. parentTest()  should be returning null in this case.
Looks like this is an issue with DataModel.findById.

&gt; Websites/perf.webkit.org/server-tests/api-measurement-set-tests.js:471
&gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], currentRows[0]).buildTag, &apos;127&apos;);
&gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], currentRows[1]).buildTag, &apos;128&apos;);

It seems like we can just use assert.strictEqual here?
Also, can&apos;t we use parseInt like the tests?

&gt; Websites/perf.webkit.org/server-tests/api-measurement-set-tests.js:477
&gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], baselineRows[0]).buildTag, &apos;131&apos;);

Ditto.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:858
&gt; +            assert.strictEqual(set0.patchForRepository(jsc), undefined);
&gt; +            assert.strictEqual(set1.patchForRepository(jsc), null);

Weird that we sometimes return undefined and null in other cases.
But again, this distinction isn&apos;t all that interesting to fix in practice.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1299
&gt; +            // pg funtions will return all data as string, so we need make sure that we compare as int

This comment is redundant given we&apos;re doing that elsewhere.

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:103
&gt; +        else 

We shouldn&apos;t have else per our coding style guideline:
https://webkit.org/code-style-guidelines/#linebreaking-else-if

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:153
&gt; +        if (this._existingDatabaseConfig)
&gt; +            return;

Why are we early exiting here?
That&apos;s precisely why we need to have a noCache option in Manifest.fetch, right?
What in new versions of node prevent us from running this code?

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:-150
&gt; -

We shouldn&apos;t be removing this new line.

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:299
&gt; +            if (!self._existingDatabaseConfig) {
&gt; +                self.initDatabase();
&gt; +                self.cleanDataDirectory();
&gt; +            }

Why can&apos;t we re-initialize the database?

&gt; Websites/perf.webkit.org/tools/js/config.js:31
&gt; +    all() {

{ should appear on the next line:
https://webkit.org/code-style-guidelines/#braces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734166</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-27 01:16:36 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #0)
&gt; Make server test run with new node version and exisiting server

Why do we need to make our tests use an existing server? Why is that change desirable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735041</commentid>
    <comment_count>5</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-02 14:44:19 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #4)
&gt; (In reply to Zhifei Fang from comment #0)
&gt; &gt; Make server test run with new node version and exisiting server
&gt; 
&gt; Why do we need to make our tests use an existing server? Why is that change
&gt; desirable?

I am also making a docker compose to avoid developer to install the whole staff. This will make it can run with the docker environment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735043</commentid>
    <comment_count>6</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-02 14:47:08 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Comment on attachment 421623 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421623&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/ChangeLog:15
&gt; &gt; +        (then):
&gt; 
&gt; Please remove these bogus inline functions. Clearly there is no function
&gt; called &quot;then&quot;.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/manifest.js:25
&gt; &gt; -    static async fetch()
&gt; &gt; +    static async fetch(force=false)
&gt; 
&gt; should be noCache.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:223
&gt; &gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Do we really need to parseInt here?
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:325
&gt; &gt; -            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:362
&gt; &gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:400
&gt; &gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:436
&gt; &gt; -            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:737
&gt; &gt; +        assert.deepStrictEqual(commitSet.topLevelRepositories().sort((one, another) =&gt; parseInt(one.id()) - parseInt(another.id())), [osx, webkit]);
&gt; 
&gt; parseInt here is totally unnecessary.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-manifest-tests.js:136
&gt; &gt; +            assert.strictEqual(webkit.ownedRepositories(), undefined);
&gt; 
&gt; Huh, ownedRepositories() should probably be returning null instead in this
&gt; case.
&gt; But this is another reason we don&apos;t really use strict equality in the
&gt; codebase.
&gt; The distinction between undefined &amp; null are decidedly uninteresting.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-manifest-tests.js:278
&gt; &gt; +            assert.strictEqual(someTest.parentTest(), undefined);
&gt; 
&gt; Ditto here. parentTest()  should be returning null in this case.
&gt; Looks like this is an issue with DataModel.findById.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-measurement-set-tests.js:471
&gt; &gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], currentRows[0]).buildTag, &apos;127&apos;);
&gt; &gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], currentRows[1]).buildTag, &apos;128&apos;);
&gt; 
&gt; It seems like we can just use assert.strictEqual here?
&gt; Also, can&apos;t we use parseInt like the tests?
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-measurement-set-tests.js:477
&gt; &gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], baselineRows[0]).buildTag, &apos;131&apos;);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:858
&gt; &gt; +            assert.strictEqual(set0.patchForRepository(jsc), undefined);
&gt; &gt; +            assert.strictEqual(set1.patchForRepository(jsc), null);
&gt; 
&gt; Weird that we sometimes return undefined and null in other cases.
&gt; But again, this distinction isn&apos;t all that interesting to fix in practice.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1299
&gt; &gt; +            // pg funtions will return all data as string, so we need make sure that we compare as int
&gt; 
&gt; This comment is redundant given we&apos;re doing that elsewhere.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:103
&gt; &gt; +        else 
&gt; 
&gt; We shouldn&apos;t have else per our coding style guideline:
&gt; https://webkit.org/code-style-guidelines/#linebreaking-else-if
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:153
&gt; &gt; +        if (this._existingDatabaseConfig)
&gt; &gt; +            return;
&gt; 
&gt; Why are we early exiting here?
&gt; That&apos;s precisely why we need to have a noCache option in Manifest.fetch,
&gt; right?
&gt; What in new versions of node prevent us from running this code?
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:-150
&gt; &gt; -
&gt; 
&gt; We shouldn&apos;t be removing this new line.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:299
&gt; &gt; +            if (!self._existingDatabaseConfig) {
&gt; &gt; +                self.initDatabase();
&gt; &gt; +                self.cleanDataDirectory();
&gt; &gt; +            }
&gt; 
&gt; Why can&apos;t we re-initialize the database?
&gt; 
&gt; &gt; Websites/perf.webkit.org/tools/js/config.js:31
&gt; &gt; +    all() {
&gt; 
&gt; { should appear on the next line:
&gt; https://webkit.org/code-style-guidelines/#braces



Some high level commits here: we use pg_* functions, it won&apos;t parse the numeric column to int, so a lot of parseInt here is make sure that we are comparing with int but not a string.

The new strictEqual is &quot;===&quot;, so it&apos;s comparing without auto type casting, &apos;1&apos; === 1 will be false, and thus it caused a lot of unit test failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735090</commentid>
    <comment_count>7</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-02 15:53:35 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Comment on attachment 421623 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421623&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/ChangeLog:15
&gt; &gt; +        (then):
&gt; 
&gt; Please remove these bogus inline functions. Clearly there is no function
&gt; called &quot;then&quot;.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/manifest.js:25
&gt; &gt; -    static async fetch()
&gt; &gt; +    static async fetch(force=false)
&gt; 
&gt; should be noCache.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:223
&gt; &gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Do we really need to parseInt here?
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:325
&gt; &gt; -            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:362
&gt; &gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:400
&gt; &gt; -                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +                status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:436
&gt; &gt; -            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: content[&apos;buildRequests&apos;][0].id}};
&gt; &gt; +            status: content[&apos;buildRequests&apos;][0].status, url: content[&apos;buildRequests&apos;][0].url, buildRequestForRootReuse: parseInt(content[&apos;buildRequests&apos;][0].id)}};
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:737
&gt; &gt; +        assert.deepStrictEqual(commitSet.topLevelRepositories().sort((one, another) =&gt; parseInt(one.id()) - parseInt(another.id())), [osx, webkit]);
&gt; 
&gt; parseInt here is totally unnecessary.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-manifest-tests.js:136
&gt; &gt; +            assert.strictEqual(webkit.ownedRepositories(), undefined);
&gt; 
&gt; Huh, ownedRepositories() should probably be returning null instead in this
&gt; case.
&gt; But this is another reason we don&apos;t really use strict equality in the
&gt; codebase.
&gt; The distinction between undefined &amp; null are decidedly uninteresting.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-manifest-tests.js:278
&gt; &gt; +            assert.strictEqual(someTest.parentTest(), undefined);
&gt; 
&gt; Ditto here. parentTest()  should be returning null in this case.
&gt; Looks like this is an issue with DataModel.findById.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-measurement-set-tests.js:471
&gt; &gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], currentRows[0]).buildTag, &apos;127&apos;);
&gt; &gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], currentRows[1]).buildTag, &apos;128&apos;);
&gt; 
&gt; It seems like we can just use assert.strictEqual here?
&gt; Also, can&apos;t we use parseInt like the tests?
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-measurement-set-tests.js:477
&gt; &gt; +        assert.deepStrictEqual(format(response[&apos;formatMap&apos;], baselineRows[0]).buildTag, &apos;131&apos;);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:858
&gt; &gt; +            assert.strictEqual(set0.patchForRepository(jsc), undefined);
&gt; &gt; +            assert.strictEqual(set1.patchForRepository(jsc), null);
&gt; 
&gt; Weird that we sometimes return undefined and null in other cases.
&gt; But again, this distinction isn&apos;t all that interesting to fix in practice.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1299
&gt; &gt; +            // pg funtions will return all data as string, so we need make sure that we compare as int
&gt; 
&gt; This comment is redundant given we&apos;re doing that elsewhere.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:103
&gt; &gt; +        else 
&gt; 
&gt; We shouldn&apos;t have else per our coding style guideline:
&gt; https://webkit.org/code-style-guidelines/#linebreaking-else-if
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:153
&gt; &gt; +        if (this._existingDatabaseConfig)
&gt; &gt; +            return;
&gt; 
&gt; Why are we early exiting here?
&gt; That&apos;s precisely why we need to have a noCache option in Manifest.fetch,
&gt; right?
Yes
&gt; What in new versions of node prevent us from running this code?
Not because of node version, this change is for making the uint tests running with an existing setup, for example an docker env.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:-150
&gt; &gt; -
&gt; 
&gt; We shouldn&apos;t be removing this new line.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:299
&gt; &gt; +            if (!self._existingDatabaseConfig) {
&gt; &gt; +                self.initDatabase();
&gt; &gt; +                self.cleanDataDirectory();
&gt; &gt; +            }
&gt; 
&gt; Why can&apos;t we re-initialize the database?

Here is make the server tests run against with existing database service, for example an docker env, so that we cannot easily delete the data folder and recreate it, instead, I change it to truncate all tables and reset all the seqs, along with the no cache for the manifest API.

&gt; 
&gt; &gt; Websites/perf.webkit.org/tools/js/config.js:31
&gt; &gt; +    all() {
&gt; 
&gt; { should appear on the next line:
&gt; https://webkit.org/code-style-guidelines/#braces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735162</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-02 18:38:14 -0800</bug_when>
    <thetext>Can we split the work to make these tests use Docker into a separate patch? This patch is massive already and it&apos;s hard to discuss &amp; review the changes related to Docker from the rest of changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735196</commentid>
    <comment_count>9</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-02 22:05:34 -0800</bug_when>
    <thetext>Working with Zhifei on splitting the node version bump patch out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736090</commentid>
    <comment_count>10</comment_count>
      <attachid>422307</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-04 16:16:32 -0800</bug_when>
    <thetext>Created attachment 422307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736098</commentid>
    <comment_count>11</comment_count>
      <attachid>422307</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-04 16:34:24 -0800</bug_when>
    <thetext>Comment on attachment 422307
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:7
&gt; +

You may want to regenerate this commit log since this is a split of the original patch. We no longer change manifest.js in this patch.
Also, we made some changes on `markup-component.js` due to console.assert behavior change after node v10.

&gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;

How about `return idMap ? idMap[id] || null  : null;`

&gt; Websites/perf.webkit.org/public/v3/models/repository.js:52
&gt; +        return ownerships ? (ownerships.hasOwnProperty(this.id()) ? ownerships[this.id()] : null) : null;

ditto

&gt; Websites/perf.webkit.org/server-tests/api-upload-root-tests.js:99
&gt; +    }).then((result) =&gt; {
&gt; +        return Manifest.fetch().then(() =&gt; result);

What is this for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736099</commentid>
    <comment_count>12</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-04 16:35:37 -0800</bug_when>
    <thetext>Updating the patch title to be `Make server test run with new node version` per previous discussion that this one will focus on updating tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736103</commentid>
    <comment_count>13</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-04 16:39:31 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #11)
&gt; Comment on attachment 422307 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422307&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; You may want to regenerate this commit log since this is a split of the
&gt; original patch. We no longer change manifest.js in this patch.
&gt; Also, we made some changes on `markup-component.js` due to console.assert
&gt; behavior change after node v10.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; 
&gt; How about `return idMap ? idMap[id] || null  : null;`

incase idMap[id] is 0 / false
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/repository.js:52
&gt; &gt; +        return ownerships ? (ownerships.hasOwnProperty(this.id()) ? ownerships[this.id()] : null) : null;
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-upload-root-tests.js:99
&gt; &gt; +    }).then((result) =&gt; {
&gt; &gt; +        return Manifest.fetch().then(() =&gt; result);
&gt; 
&gt; What is this for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736104</commentid>
    <comment_count>14</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-04 16:43:00 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #11)
&gt; Comment on attachment 422307 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422307&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; You may want to regenerate this commit log since this is a split of the
&gt; original patch. We no longer change manifest.js in this patch.
&gt; Also, we made some changes on `markup-component.js` due to console.assert
&gt; behavior change after node v10.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; 
&gt; How about `return idMap ? idMap[id] || null  : null;`
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/repository.js:52
&gt; &gt; +        return ownerships ? (ownerships.hasOwnProperty(this.id()) ? ownerships[this.id()] : null) : null;
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-upload-root-tests.js:99
&gt; &gt; +    }).then((result) =&gt; {
&gt; &gt; +        return Manifest.fetch().then(() =&gt; result);
&gt; 
&gt; What is this for?

If we don&apos;t fetch manifest, how will the findById work ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736136</commentid>
    <comment_count>15</comment_count>
      <attachid>422319</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-04 18:49:05 -0800</bug_when>
    <thetext>Created attachment 422319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736137</commentid>
    <comment_count>16</comment_count>
      <attachid>422320</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-04 18:54:51 -0800</bug_when>
    <thetext>Created attachment 422320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736222</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-05 01:03:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/75084016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736543</commentid>
    <comment_count>18</comment_count>
      <attachid>422417</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 14:09:31 -0800</bug_when>
    <thetext>Created attachment 422417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736572</commentid>
    <comment_count>19</comment_count>
      <attachid>422417</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-05 15:03:03 -0800</bug_when>
    <thetext>Comment on attachment 422417
Patch

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

missing console-assert.js

&gt; Websites/perf.webkit.org/ChangeLog:7
&gt; +

Let&apos;s give a summary for the change we&apos;ve done here.
Replace assert.equal, assert.deepEqual with assert.strictEqual assert.deepStrictEqual.
Replace console.assert under pubic/v3/models with consoleAssert which will throw an exception on assertion failure.
Also the return value change when &apos;undefined&apos; was returned on couple cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736578</commentid>
    <comment_count>20</comment_count>
      <attachid>422430</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 15:11:09 -0800</bug_when>
    <thetext>Created attachment 422430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736595</commentid>
    <comment_count>21</comment_count>
      <attachid>422436</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 15:27:27 -0800</bug_when>
    <thetext>Created attachment 422436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736604</commentid>
    <comment_count>22</comment_count>
      <attachid>422440</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 15:32:39 -0800</bug_when>
    <thetext>Created attachment 422440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736614</commentid>
    <comment_count>23</comment_count>
      <attachid>422440</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-05 15:50:11 -0800</bug_when>
    <thetext>Comment on attachment 422440
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:9
&gt; +        Change assert.equal to assert.strictEqual since node deprecated this API
&gt; +        Add a new function consoleAssert to make sure it will throw an error
&gt; +        Make sure model&apos;s methods will always return null instead of undefiend
&gt; +

This section should below `Reviewed by`, also, sentences will end with &apos;.&apos;.

&gt; Websites/perf.webkit.org/ChangeLog:95
&gt; +        (then):

Remove all `(then):` since those are not actually a function. It&apos;s a bug in the prepareChangeLog.
Same for &apos;(async await):`

&gt; Websites/perf.webkit.org/public/v3/console-assert.js:4
&gt; +    //Make sure that browser side we do print out the error

Nit: A space after //.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736616</commentid>
    <comment_count>24</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-05 15:50:41 -0800</bug_when>
    <thetext>r=me with comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736623</commentid>
    <comment_count>25</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 16:03:59 -0800</bug_when>
    <thetext>I&apos;m confused here. I thought we decided that we don&apos;t want to throw inside the browser? Also, why do we need to add a new function? Why can&apos;t server tests simply override the builtin console.assert to make it throw?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736624</commentid>
    <comment_count>26</comment_count>
      <attachid>422440</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 16:07:36 -0800</bug_when>
    <thetext>Comment on attachment 422440
Patch

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

&gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; -        return idMap ? idMap[id] : null;
&gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;

Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and undefined for all intents and purposes.

&gt; Websites/perf.webkit.org/public/v3/models/repository.js:52
&gt; -        return ownerships ? ownerships[this.id()] : null;
&gt; +        return ownerships ? (ownerships.hasOwnProperty(this.id()) ? ownerships[this.id()] : null) : null;

Ditto.

&gt; Websites/perf.webkit.org/public/v3/models/repository.js:63
&gt; -                return 0;
&gt; +                return parseInt(a.id()) - parseInt(b.id());

Again, this parseInt is totally unnecessary. &quot;-&quot; will do the integer conversion automatically.

&gt; Websites/perf.webkit.org/unit-tests/commit-set-tests.js:-26
&gt; -    if (deletedAt) {
&gt; -        console.log(deletedAt);

Let&apos;s not modify a random unrelated test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736631</commentid>
    <comment_count>27</comment_count>
      <attachid>422440</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-05 16:10:26 -0800</bug_when>
    <thetext>Comment on attachment 422440
Patch

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

&gt;&gt; Websites/perf.webkit.org/unit-tests/commit-set-tests.js:-26
&gt;&gt; -        console.log(deletedAt);
&gt; 
&gt; Let&apos;s not modify a random unrelated test.

This is a unnecessary logging checked in from previous change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736635</commentid>
    <comment_count>28</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 16:12:50 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #26)
&gt; Comment on attachment 422440 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422440&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; -        return idMap ? idMap[id] : null;
&gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; 
&gt; Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and
&gt; undefined for all intents and purposes.

I&apos;m confused, if we don&apos;t do this, then in the test, since we change to use strictEqual, then we will have different assert against null and undefined, isn&apos;t that you don&apos;t like?

Here is your original comment:

&quot;
Huh, ownedRepositories() should probably be returning null instead in this case.
But this is another reason we don&apos;t really use strict equality in the codebase.
The distinction between undefined &amp; null are decidedly uninteresting.
&quot;

&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/repository.js:52
&gt; &gt; -        return ownerships ? ownerships[this.id()] : null;
&gt; &gt; +        return ownerships ? (ownerships.hasOwnProperty(this.id()) ? ownerships[this.id()] : null) : null;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/repository.js:63
&gt; &gt; -                return 0;
&gt; &gt; +                return parseInt(a.id()) - parseInt(b.id());
&gt; 
&gt; Again, this parseInt is totally unnecessary. &quot;-&quot; will do the integer
&gt; conversion automatically.
&gt; 
&gt; &gt; Websites/perf.webkit.org/unit-tests/commit-set-tests.js:-26
&gt; &gt; -    if (deletedAt) {
&gt; &gt; -        console.log(deletedAt);
&gt; 
&gt; Let&apos;s not modify a random unrelated test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736637</commentid>
    <comment_count>29</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-05 16:15:05 -0800</bug_when>
    <thetext>I guess an alternative is to use assert.ok(!v) where v can be either undefined or null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736640</commentid>
    <comment_count>30</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 16:18:18 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #28)
&gt; (In reply to Ryosuke Niwa from comment #26)
&gt; &gt; Comment on attachment 422440 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=422440&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; &gt; -        return idMap ? idMap[id] : null;
&gt; &gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; &gt; 
&gt; &gt; Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and
&gt; &gt; undefined for all intents and purposes.
&gt; 
&gt; I&apos;m confused, if we don&apos;t do this, then in the test, since we change to use
&gt; strictEqual, then we will have different assert against null and undefined,
&gt; isn&apos;t that you don&apos;t like?

Well, the solution to that is don&apos;t use === or strict equality for these things. Objects are never equal to one another even with == so there isn&apos;t really a point.

Anyway, if we really wanted to do this, the right way to write this code would be:
return idMap ? (idMap[id] || null) : null;

No need to do hasOwnProperty then get_by_id lookup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736642</commentid>
    <comment_count>31</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 16:18:41 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #29)
&gt; I guess an alternative is to use assert.ok(!v) where v can be either
&gt; undefined or null.

Yeah, or assert.ok(v == null).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736643</commentid>
    <comment_count>32</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 16:19:07 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #25)
&gt; I&apos;m confused here. I thought we decided that we don&apos;t want to throw inside
&gt; the browser? Also, why do we need to add a new function? Why can&apos;t server
&gt; tests simply override the builtin console.assert to make it throw?

I think it probably a bad idea that we override the builtin console.assert since we are trying to force node behaves like an old version.

How about detect the node env and just throw an error there ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736644</commentid>
    <comment_count>33</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 16:20:12 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #32)
&gt; (In reply to Ryosuke Niwa from comment #25)
&gt; &gt; I&apos;m confused here. I thought we decided that we don&apos;t want to throw inside
&gt; &gt; the browser? Also, why do we need to add a new function? Why can&apos;t server
&gt; &gt; tests simply override the builtin console.assert to make it throw?
&gt; 
&gt; I think it probably a bad idea that we override the builtin console.assert
&gt; since we are trying to force node behaves like an old version.

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736645</commentid>
    <comment_count>34</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 16:20:50 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #30)
&gt; (In reply to Zhifei Fang from comment #28)
&gt; &gt; (In reply to Ryosuke Niwa from comment #26)
&gt; &gt; &gt; Comment on attachment 422440 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=422440&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; &gt; &gt; -        return idMap ? idMap[id] : null;
&gt; &gt; &gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; &gt; &gt; 
&gt; &gt; &gt; Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and
&gt; &gt; &gt; undefined for all intents and purposes.
&gt; &gt; 
&gt; &gt; I&apos;m confused, if we don&apos;t do this, then in the test, since we change to use
&gt; &gt; strictEqual, then we will have different assert against null and undefined,
&gt; &gt; isn&apos;t that you don&apos;t like?
&gt; 
&gt; Well, the solution to that is don&apos;t use === or strict equality for these
&gt; things. Objects are never equal to one another even with == so there isn&apos;t
&gt; really a point.
&gt; 
&gt; Anyway, if we really wanted to do this, the right way to write this code
&gt; would be:
&gt; return idMap ? (idMap[id] || null) : null;
&gt; 
&gt; No need to do hasOwnProperty then get_by_id lookup.

Ok, got it, I do hasOwnProperty just to prevent idMap contains 0 false to prevent us further issue, anyway, will change to assert.ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736648</commentid>
    <comment_count>35</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 16:25:53 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #34)
&gt; (In reply to Ryosuke Niwa from comment #30)
&gt; &gt; (In reply to Zhifei Fang from comment #28)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #26)
&gt; &gt; &gt; &gt; Comment on attachment 422440 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=422440&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; &gt; &gt; &gt; -        return idMap ? idMap[id] : null;
&gt; &gt; &gt; &gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and
&gt; &gt; &gt; &gt; undefined for all intents and purposes.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m confused, if we don&apos;t do this, then in the test, since we change to use
&gt; &gt; &gt; strictEqual, then we will have different assert against null and undefined,
&gt; &gt; &gt; isn&apos;t that you don&apos;t like?
&gt; &gt; 
&gt; &gt; Well, the solution to that is don&apos;t use === or strict equality for these
&gt; &gt; things. Objects are never equal to one another even with == so there isn&apos;t
&gt; &gt; really a point.
&gt; &gt; 
&gt; &gt; Anyway, if we really wanted to do this, the right way to write this code
&gt; &gt; would be:
&gt; &gt; return idMap ? (idMap[id] || null) : null;
&gt; &gt; 
&gt; &gt; No need to do hasOwnProperty then get_by_id lookup.
&gt; 
&gt; Ok, got it, I do hasOwnProperty just to prevent idMap contains 0 false to
&gt; prevent us further issue, anyway, will change to assert.ok

Yeah but we never those those into idMap. There is also no chance of having prototype property matching id either because id is really PostgreSQL id we receive in most cases or concatenation of those IDs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736655</commentid>
    <comment_count>36</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 16:31:19 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #33)
&gt; (In reply to Zhifei Fang from comment #32)
&gt; &gt; (In reply to Ryosuke Niwa from comment #25)
&gt; &gt; &gt; I&apos;m confused here. I thought we decided that we don&apos;t want to throw inside
&gt; &gt; &gt; the browser? Also, why do we need to add a new function? Why can&apos;t server
&gt; &gt; &gt; tests simply override the builtin console.assert to make it throw?
&gt; &gt; 
&gt; &gt; I think it probably a bad idea that we override the builtin console.assert
&gt; &gt; since we are trying to force node behaves like an old version.
&gt; 
&gt; Why?

Well, Node.js has changed this behavior in the new version:

https://nodejs.org/api/console.html#console_console_assert_value_message

vs

https://nodejs.org/dist/latest-v7.x/docs/api/console.html#console_console_assert_value_message_args

Force it back to the old version creates more confusion about node versions.

For example, if someone want to add a new test case, they may have some falsy assumption that console.asset won&apos;t throw any error (or the other way around), we may need somehow to make sure our behavior is clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736661</commentid>
    <comment_count>37</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 16:51:55 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #35)
&gt; (In reply to Zhifei Fang from comment #34)
&gt; &gt; (In reply to Ryosuke Niwa from comment #30)
&gt; &gt; &gt; (In reply to Zhifei Fang from comment #28)
&gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #26)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 422440 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=422440&amp;action=review
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; &gt; &gt; &gt; &gt; -        return idMap ? idMap[id] : null;
&gt; &gt; &gt; &gt; &gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and
&gt; &gt; &gt; &gt; &gt; undefined for all intents and purposes.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;m confused, if we don&apos;t do this, then in the test, since we change to use
&gt; &gt; &gt; &gt; strictEqual, then we will have different assert against null and undefined,
&gt; &gt; &gt; &gt; isn&apos;t that you don&apos;t like?
&gt; &gt; &gt; 
&gt; &gt; &gt; Well, the solution to that is don&apos;t use === or strict equality for these
&gt; &gt; &gt; things. Objects are never equal to one another even with == so there isn&apos;t
&gt; &gt; &gt; really a point.
&gt; &gt; &gt; 
&gt; &gt; &gt; Anyway, if we really wanted to do this, the right way to write this code
&gt; &gt; &gt; would be:
&gt; &gt; &gt; return idMap ? (idMap[id] || null) : null;
&gt; &gt; &gt; 
&gt; &gt; &gt; No need to do hasOwnProperty then get_by_id lookup.
&gt; &gt; 
&gt; &gt; Ok, got it, I do hasOwnProperty just to prevent idMap contains 0 false to
&gt; &gt; prevent us further issue, anyway, will change to assert.ok
&gt; 
&gt; Yeah but we never those those into idMap. There is also no chance of having
&gt; prototype property matching id either because id is really PostgreSQL id we
&gt; receive in most cases or concatenation of those IDs.

One more thing, should we consider to modify all the assert.strictEqual(something, null) or we only change the one not working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736670</commentid>
    <comment_count>38</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 17:11:37 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #37)
&gt; (In reply to Ryosuke Niwa from comment #35)
&gt; &gt; (In reply to Zhifei Fang from comment #34)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #30)
&gt; &gt; &gt; &gt; (In reply to Zhifei Fang from comment #28)
&gt; &gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #26)
&gt; &gt; &gt; &gt; &gt; &gt; Comment on attachment 422440 [details]
&gt; &gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=422440&amp;action=review
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/data-model.js:47
&gt; &gt; &gt; &gt; &gt; &gt; &gt; -        return idMap ? idMap[id] : null;
&gt; &gt; &gt; &gt; &gt; &gt; &gt; +        return idMap ? (idMap.hasOwnProperty(id) ? idMap[id] : null) : null;
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Ugh... let&apos;s not do this. It&apos;s totally unnecessary to distinguish null and
&gt; &gt; &gt; &gt; &gt; &gt; undefined for all intents and purposes.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; I&apos;m confused, if we don&apos;t do this, then in the test, since we change to use
&gt; &gt; &gt; &gt; &gt; strictEqual, then we will have different assert against null and undefined,
&gt; &gt; &gt; &gt; &gt; isn&apos;t that you don&apos;t like?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Well, the solution to that is don&apos;t use === or strict equality for these
&gt; &gt; &gt; &gt; things. Objects are never equal to one another even with == so there isn&apos;t
&gt; &gt; &gt; &gt; really a point.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Anyway, if we really wanted to do this, the right way to write this code
&gt; &gt; &gt; &gt; would be:
&gt; &gt; &gt; &gt; return idMap ? (idMap[id] || null) : null;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; No need to do hasOwnProperty then get_by_id lookup.
&gt; &gt; &gt; 
&gt; &gt; &gt; Ok, got it, I do hasOwnProperty just to prevent idMap contains 0 false to
&gt; &gt; &gt; prevent us further issue, anyway, will change to assert.ok
&gt; &gt; 
&gt; &gt; Yeah but we never those those into idMap. There is also no chance of having
&gt; &gt; prototype property matching id either because id is really PostgreSQL id we
&gt; &gt; receive in most cases or concatenation of those IDs.
&gt; 
&gt; One more thing, should we consider to modify all the
&gt; assert.strictEqual(something, null) or we only change the one not working.

Just the ones that broke I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736676</commentid>
    <comment_count>39</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 17:20:09 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #36)
&gt; (In reply to Ryosuke Niwa from comment #33)
&gt; &gt; (In reply to Zhifei Fang from comment #32)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #25)
&gt; &gt; &gt; &gt; I&apos;m confused here. I thought we decided that we don&apos;t want to throw inside
&gt; &gt; &gt; &gt; the browser? Also, why do we need to add a new function? Why can&apos;t server
&gt; &gt; &gt; &gt; tests simply override the builtin console.assert to make it throw?
&gt; &gt; &gt; 
&gt; &gt; &gt; I think it probably a bad idea that we override the builtin console.assert
&gt; &gt; &gt; since we are trying to force node behaves like an old version.
&gt; &gt; 
&gt; &gt; Why?
&gt; 
&gt; Well, Node.js has changed this behavior in the new version:
&gt; 
&gt; https://nodejs.org/api/console.html#console_console_assert_value_message
&gt; 
&gt; vs
&gt; 
&gt; https://nodejs.org/dist/latest-v7.x/docs/api/console.
&gt; html#console_console_assert_value_message_args
&gt; 
&gt; Force it back to the old version creates more confusion about node versions.

Why would it? I don&apos;t think anyone will guess which node version we&apos;re using based on whether console.assert throws or not.

If anything, it&apos;s a benefit that console.assert will the same thing in old &amp; new versions of node.js so that we don&apos;t have to worry about the version difference between the two. We don&apos;t really want to have some implicit rule about when &amp; when not to use console.assert in the JS code shared between browser UI &amp; backend JS script.

&gt; For example, if someone want to add a new test case, they may have some
&gt; falsy assumption that console.asse[r]t won&apos;t throw any error (or the other way
&gt; around), we may need somehow to make sure our behavior is clear.

It is a fair point that this behavior might be surprising to someone who is new to this codebase but we don&apos;t really have anyone else contributing to this codebase so I&apos;m not sure if that&apos;s an important consideration. As a general principle, it&apos;s probably a good idea to reduce these kinds of overrides on the functionality of built-in features but I&apos;m more concerned about making sure our codebase survives this node.js transition smoothly than introducing that kind of mild theoretical inconsistency with that&apos;s in the ECMA spec vs. what we do.

Also, what are scenarios in which this confusion about whether console.assert will or will not result in an issue? If someone is writing a new test, I hope that person is checking whether the test case will fail as expected in the case there was a bug the test is intending to test. Given we&apos;re making console.assert throw, there is no issuing writing a test case that accidentally throws because that should be caught by the person writing the test. If the person had assumed that console.assert doesn&apos;t throw but added console.assert anyway, then the person should notice that it indeed throws when running tests. In either scenario, I don&apos;t see this behavior difference resulting in any bad consequences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736692</commentid>
    <comment_count>40</comment_count>
      <attachid>422461</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 17:49:28 -0800</bug_when>
    <thetext>Created attachment 422461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736694</commentid>
    <comment_count>41</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 17:58:57 -0800</bug_when>
    <thetext>Changed to override

(In reply to Ryosuke Niwa from comment #39)
&gt; (In reply to Zhifei Fang from comment #36)
&gt; &gt; (In reply to Ryosuke Niwa from comment #33)
&gt; &gt; &gt; (In reply to Zhifei Fang from comment #32)
&gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #25)
&gt; &gt; &gt; &gt; &gt; I&apos;m confused here. I thought we decided that we don&apos;t want to throw inside
&gt; &gt; &gt; &gt; &gt; the browser? Also, why do we need to add a new function? Why can&apos;t server
&gt; &gt; &gt; &gt; &gt; tests simply override the builtin console.assert to make it throw?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think it probably a bad idea that we override the builtin console.assert
&gt; &gt; &gt; &gt; since we are trying to force node behaves like an old version.
&gt; &gt; &gt; 
&gt; &gt; &gt; Why?
&gt; &gt; 
&gt; &gt; Well, Node.js has changed this behavior in the new version:
&gt; &gt; 
&gt; &gt; https://nodejs.org/api/console.html#console_console_assert_value_message
&gt; &gt; 
&gt; &gt; vs
&gt; &gt; 
&gt; &gt; https://nodejs.org/dist/latest-v7.x/docs/api/console.
&gt; &gt; html#console_console_assert_value_message_args
&gt; &gt; 
&gt; &gt; Force it back to the old version creates more confusion about node versions.
&gt; 
&gt; Why would it? I don&apos;t think anyone will guess which node version we&apos;re using
&gt; based on whether console.assert throws or not.
&gt; 
&gt; If anything, it&apos;s a benefit that console.assert will the same thing in old &amp;
&gt; new versions of node.js so that we don&apos;t have to worry about the version
&gt; difference between the two. We don&apos;t really want to have some implicit rule
&gt; about when &amp; when not to use console.assert in the JS code shared between
&gt; browser UI &amp; backend JS script.
&gt; 
&gt; &gt; For example, if someone want to add a new test case, they may have some
&gt; &gt; falsy assumption that console.asse[r]t won&apos;t throw any error (or the other way
&gt; &gt; around), we may need somehow to make sure our behavior is clear.
&gt; 
&gt; It is a fair point that this behavior might be surprising to someone who is
&gt; new to this codebase but we don&apos;t really have anyone else contributing to
&gt; this codebase so I&apos;m not sure if that&apos;s an important consideration. As a
&gt; general principle, it&apos;s probably a good idea to reduce these kinds of
&gt; overrides on the functionality of built-in features but I&apos;m more concerned
&gt; about making sure our codebase survives this node.js transition smoothly
&gt; than introducing that kind of mild theoretical inconsistency with that&apos;s in
&gt; the ECMA spec vs. what we do.
&gt; 
&gt; Also, what are scenarios in which this confusion about whether
&gt; console.assert will or will not result in an issue? If someone is writing a
&gt; new test, I hope that person is checking whether the test case will fail as
&gt; expected in the case there was a bug the test is intending to test. Given
&gt; we&apos;re making console.assert throw, there is no issuing writing a test case
&gt; that accidentally throws because that should be caught by the person writing
&gt; the test. If the person had assumed that console.assert doesn&apos;t throw but
&gt; added console.assert anyway, then the person should notice that it indeed
&gt; throws when running tests. In either scenario, I don&apos;t see this behavior
&gt; difference resulting in any bad consequences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736695</commentid>
    <comment_count>42</comment_count>
      <attachid>422461</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-05 18:05:24 -0800</bug_when>
    <thetext>Comment on attachment 422461
Patch

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

Nice! This is a lot cleaner approach.

&gt; Websites/perf.webkit.org/tools/js/assert-override.js:3
&gt; +function makeConsoleAssertThrow () {

Nit: no space between the function name and ().
Also { should appear on the new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736701</commentid>
    <comment_count>43</comment_count>
      <attachid>422463</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 18:36:04 -0800</bug_when>
    <thetext>Created attachment 422463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736713</commentid>
    <comment_count>44</comment_count>
      <attachid>422465</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-05 19:08:00 -0800</bug_when>
    <thetext>Created attachment 422465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736788</commentid>
    <comment_count>45</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-06 06:32:01 -0800</bug_when>
    <thetext>Committed r274036: &lt;https://commits.webkit.org/r274036&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422465.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736871</commentid>
    <comment_count>46</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-06 18:10:43 -0800</bug_when>
    <thetext>Oops, turns out that we have a bunch of browser tests for markup-component.js so adding require call there broke those tests. Fixing this in the bug 222874.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421623</attachid>
            <date>2021-02-26 01:12:20 -0800</date>
            <delta_ts>2021-03-04 16:16:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210226011218.patch</filename>
            <type>text/plain</type>
            <size>903125</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTQyCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi40OGQzMzAxMjQ0
YzBhM2JjZjJhMTM3NDU1NDI0YmI3YjE1ZjI2MjEwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMzQgQEAKKzIwMjEtMDItMjYgIFpoaWZlaSBGYW5nICA8emhpZmVp
X2ZhbmdAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2VydmVyIHRlc3QgcnVuIHdpdGggbmV3
IG5vZGUgdmVyc2lvbiBhbmQgZXhpc2l0aW5nIHNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0Lmpz
OiBBZGQgYSBmb3JjZSBsb2FkIHRvIG1ha2Ugc3VyZSB1bml0IHRlc3QgYWx3YXlzIGdldCB0aGUg
bmV3ZXN0IGRhdGEgZXZlbiB3aXRoIGFuIGV4aXN0aW5nIHNlcnZlcgorICAgICAgICAoTWFuaWZl
c3QuYXN5bmMgZmV0Y2gpOgorICAgICAgICAoTWFuaWZlc3QuYXN5bmMgZmV0Y2hSYXdSZXNwb25z
ZSk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzOgorICAgICAgICAo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKTogbWFrZSBzdXJlIHRo
ZSBzb3J0IGlzIHN0YWJsZSBldmVuIHRoZSBuYW1lIGlzIHNhbWUKKyAgICAgICAgKFJlcG9zaXRv
cnkpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVzdHMuanM6Cisg
ICAgICAgICh0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJl
cG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9h
cGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6CisgICAgICAgIChyZXR1cm4uVGVzdFNlcnZlci5y
ZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRo
ZW4pOgorICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGkt
Y29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0
dGVkKToKKyAgICAgICAgKHJldHVybi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmlu
Z19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAodGhlbik6CisgICAgICAgICogc2VydmVy
LXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAgICAgICAgKHJldHVybi5UZXN0U2VydmVy
LnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAo
dGhlbik6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2Fw
aS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHNl
dCB0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3Rz
LmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgIChlbXB0eVJlcG9ydC50aGVuKToKKyAgICAg
ICAgKGFzeW5jIGluaXRpYWxSZXBvcnRDb21taXRzKToKKyAgICAgICAgKGFzeW5jIHNldFVwVGVz
dHNXaXRoRXhwZWN0ZWRTdGF0dXMpOgorICAgICAgICAoYXN5bmMgdGVzdFdpdGhFeHBlY3RlZEZh
aWx1cmUpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAg
ICAgICAodGhlbik6CisgICAgICAgIChlbXB0eVJlcG9ydC50aGVuKToKKyAgICAgICAgKGFzeW5j
IGF3YWl0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpzOgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzOgorICAg
ICAgICAodGhlbik6CisgICAgICAgICh1cGRhdGUudGhlbik6CisgICAgICAgICh0aGVuLnJlc3Bv
bnNlLmRiLnNlbGVjdEFsbC5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRo
ZW4uZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAodGhl
bi5NYW5pZmVzdC5mZXRjaC50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9h
ZC1yb290LXRlc3RzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgIChhc3luYyBjb25zdCk6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzOgorICAg
ICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVk
X2hlcmUudGhlbik6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOgorICAgICAgICAoYXN5bmMg
Y3JlYXRlQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKGNvbnN0LmNvbW1pdFNldC5vZi51cGRhdGVk
R3JvdXBzLjAucmVxdWVzdGVkQ29tbWl0U2V0cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzOgorICAgICAgICAodGhl
bik6CisgICAgICAgIChhc3luYyBjb25zdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOgorICAgICAgICAoY3JlYXRlQW5h
bHlzaXNUYXNrKToKKyAgICAgICAgKHJldHVybi5jcmVhdGVBbmFseXNpc1Rhc2suc3RyaW5nX2Fw
cGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChyZXR1cm4uYWRkVHJpZ2dlcmFibGVBbmRDcmVh
dGVUYXNrLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAoc3RyaW5nX2FwcGVh
cmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qczoKKyAgICAgICAgKHRoZW4pOgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0
cy5qczoKKyAgICAgICAgKGFzeW5jIGNyZWF0ZUFuYWx5c2lzVGFzayk6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzOgorICAgICAgICAo
VGVzdFNlcnZlci50ZXN0Q29uZmlnLnVwbG9hZEZpbGVMaW1pdEluTUIuMS50aGVuKToKKyAgICAg
ICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJh
dGlvbnMuanM6CisgICAgICAgIChhc3luYyBhc3NlcnRUaHJvd3MpOgorICAgICAgICAqIHNlcnZl
ci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanM6CisgICAgICAgIChUZW1wb3JhcnlG
aWxlLm1ha2VUZW1wb3JhcnlGaWxlT2ZTaXplSW5NQik6CisgICAgICAgICogc2VydmVyLXRlc3Rz
L3Jlc291cmNlcy90ZXN0LXNlcnZlci5qczogTWFrZSB0aGUgdGVzdCBzZXJ2ZXIgcHJveHkgYW4g
ZXhpc3Rpbmcgc2VydmljZQorICAgICAgICAoVGVzdFNlcnZlcik6CisgICAgICAgIChUZXN0U2Vy
dmVyLnByb3RvdHlwZS5zdGFydCk6CisgICAgICAgIChUZXN0U2VydmVyLnByb3RvdHlwZS5fdXNl
RXhpc2l0aW5nSHR0cFNlcnZlcik6CisgICAgICAgIChUZXN0U2VydmVyLnByb3RvdHlwZS5fdXNl
RXhpc3RpbmdEYXRhYmFzZVNlcnZlcik6CisgICAgICAgIChUZXN0U2VydmVyLnByb3RvdHlwZS5z
dG9wKToKKyAgICAgICAgKFRlc3RTZXJ2ZXIucHJvdG90eXBlLmRhdGFiYXNlKToKKyAgICAgICAg
KFRlc3RTZXJ2ZXIucHJvdG90eXBlLnNlcnZlckNvbmZpZyk6CisgICAgICAgIChUZXN0U2VydmVy
LnByb3RvdHlwZS50ZXN0Q29uZmlnKToKKyAgICAgICAgKFRlc3RTZXJ2ZXIucHJvdG90eXBlLmNs
ZWFuRGF0YURpcmVjdG9yeSk6CisgICAgICAgIChUZXN0U2VydmVyLnByb3RvdHlwZS5pbml0RGF0
YWJhc2UpOgorICAgICAgICAoVGVzdFNlcnZlci5wcm90b3R5cGUuX2V4ZWN1dGVQZ3NxbENvbW1h
bmQpOgorICAgICAgICAoVGVzdFNlcnZlci5wcm90b3R5cGUuX2RldGVybWluZVBnc3FsRGlyZWN0
b3J5KToKKyAgICAgICAgKFRlc3RTZXJ2ZXIucHJvdG90eXBlLmluamVjdCk6CisgICAgICAgICog
c2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzOgorICAgICAg
ICAoYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hl
cmUudGhlbik6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAg
ICAgKHJldHVybi5Nb2NrRGF0YS5hZGRNb2NrRGF0YS5kYi50aGVuKToKKyAgICAgICAgKHRoZW4u
cmVmZXRjaE1hbmlmZXN0LnRoZW4pOgorICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJv
bWlzZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hl
ci10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qczoKKyAgICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToK
KyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJv
dEJ1aWxkRW50cnkucHJvdG90eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWls
ZEVudHJ5LnByb3RvdHlwZS5idWlsZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAg
ICAgICAgKEJ1aWxkYm90QnVpbGRFbnRyeSk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90
b3R5cGUuc2NoZWR1bGVSZXF1ZXN0KToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6Cisg
ICAgICAgIChCdWlsZGJvdFN5bmNlci5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAg
IChCdWlsZGJvdFN5bmNlcik6CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVS
ZXF1ZXN0cyk6CisgICAgICAgICogdG9vbHMvanMvY29uZmlnLmpzOgorICAgICAgICAoQ29uZmln
Lm5ldy5Db25maWcucHJvdG90eXBlLmFsbCk6CisgICAgICAgICogdG9vbHMvanMvZGF0YWJhc2Uu
anM6IFdoZW4gd29yayB3aXRoIGFuIGV4aXN0aW5nIHNlcnZlciwgaW5zdGVhZCBvZiBkZWxldGUg
dGhlIGRhdGEgZmlsZSwgY2xlYXIgdGhlIHRhYmxlIGFuZCByZXNldCB0aGUgcGsgc2VxIAorICAg
ICAgICAoRGF0YWJhc2UpOgorICAgICAgICAoRGF0YWJhc2UucHJvdG90eXBlLmNvbm5lY3QpOgor
ICAgICAgICAoRGF0YWJhc2UucHJvdG90eXBlLmdldEFsbFNlcU5hbWVzKToKKyAgICAgICAgKERh
dGFiYXNlLnByb3RvdHlwZS5nZXRBbGxUYWJsZU5hbWVzKToKKyAgICAgICAgKERhdGFiYXNlLnBy
b3RvdHlwZS5jbGVhclRhYmxlKToKKyAgICAgICAgKERhdGFiYXNlLnByb3RvdHlwZS5jbGVhckFs
bFRhYmxlcyk6CisgICAgICAgICogdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qczoKKyAgICAg
ICAgKHByb3RvdHlwZS5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQpOgorICAgICAgICAqIHRvb2xz
L2pzL3JlbW90ZS5qczoKKyAgICAgICAgKE5vZGVSZW1vdGVBUEkucHJvdG90eXBlLmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogdG9vbHMvc2V0dXAtZGF0YWJhc2UucHk6IE1ha2Ugc3VyZSB0aGlzIGFs
c28gYWRkIHRoZSB0ZXN0IGRhdGFiYXNlCisgICAgICAgIChtYWluKToKKyAgICAgICAgKGxvYWRf
ZGF0YWJhc2VfY29uZmlnKToKKwogMjAyMS0wMi0xOCAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggYSBidWcgdGhhdCBhIHN5bmNpbmcgc2NyaXB0IG1heSB0
cnkgdG8gcmV1c2UgYSBkZWxldGUgcm9vdC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKaW5kZXggOWRkZDUxNDczYjcyY2Q3
NGQ3MTJiYjNkYjk3YmZmZWE4YmE1M2JmMS4uNWE5ZDg1MTc1YTg0YTM2ZDI5MmNjZGNlNzFjZmZl
ODdkYzVkNDY4OCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvbWFuaWZlc3QuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvbWFuaWZlc3QuanMKQEAgLTIyLDE1ICsyMiwxNyBAQCBjbGFzcyBNYW5pZmVz
dCB7CiAgICAgICAgIEJ1Zy5jbGVhclN0YXRpY01hcCgpOwogICAgIH0KIAotICAgIHN0YXRpYyBh
c3luYyBmZXRjaCgpCisgICAgc3RhdGljIGFzeW5jIGZldGNoKGZvcmNlPWZhbHNlKQogICAgIHsK
ICAgICAgICAgdGhpcy5yZXNldCgpOwotICAgICAgICBjb25zdCByYXdNYW5pZmVzdCA9IGF3YWl0
IHRoaXMuZmV0Y2hSYXdSZXNwb25zZSgpOworICAgICAgICBjb25zdCByYXdNYW5pZmVzdCA9IGF3
YWl0IHRoaXMuZmV0Y2hSYXdSZXNwb25zZShmb3JjZSk7CiAgICAgICAgIHJldHVybiB0aGlzLl9k
aWRGZXRjaE1hbmlmZXN0KHJhd01hbmlmZXN0KTsKICAgICB9CiAKLSAgICBzdGF0aWMgYXN5bmMg
ZmV0Y2hSYXdSZXNwb25zZSgpCisgICAgc3RhdGljIGFzeW5jIGZldGNoUmF3UmVzcG9uc2UoZm9y
Y2U9ZmFsc2UpCiAgICAgeworICAgICAgICBpZiAoZm9yY2UpCisgICAgICAgICAgICByZXR1cm4g
YXdhaXQgUmVtb3RlQVBJLmdldEpTT04oJy9hcGkvbWFuaWZlc3QvJyk7CiAgICAgICAgIHRyeSB7
CiAgICAgICAgICAgICByZXR1cm4gYXdhaXQgUmVtb3RlQVBJLmdldEpTT04oJy9kYXRhL21hbmlm
ZXN0Lmpzb24nKTsKICAgICAgICAgfSBjYXRjaChlcnJvcikgewpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMKaW5kZXgg
OTMxOTg5OWRkY2Y2MDI3NTlkMDI0ODA5MDM1OTU3ZmUwNjNmMWE0Yi4uMWNhZmQyOWNlYjExNzdj
ZGFlNmU2MjY0YjVmYjQ1ZmZmNjMzOGFhMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCkBAIC02MCw3ICs2MCw3
IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5uYW1lKCkgPCBi
Lm5hbWUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChhLmlkKCkpIC0gcGFy
c2VJbnQoYi5pZCgpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoYi5fYmxhbWVVcmwpIC8vIGEg
PiBiCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICByZXR1cm4gLTE7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBs
YXRmb3Jtcy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCmluZGV4IDExMmIwOTE1ZmY4Zjk5NDI1ZWU2ODQ2NTNj
Mjk1NDJhNDc5OTliYzQuLjNiZGVkZWM3YjljMmMxYmY3ZjRhMzkwYzZiNzhjYmRjNzcyMzBlMzMg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4t
cGxhdGZvcm1zLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCkBAIC00NSwxOSArNDUsMTkgQEAgZGVzY3Jp
YmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnLCAnbmFtZScpOwogICAgICAgICB9KS50aGVuKChwbGF0
Zm9ybXMpID0+IHsKICAgICAgICAgICAgIG9sZFBsYXRmb3JtcyA9IHBsYXRmb3JtczsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4g
TGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSdd
LCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9sZFBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zWzFdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zWzJdWyduYW1lJ10s
ICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0
YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21l
cmdlJywgJ2lkJzogb2xkUGxhdGZvcm1zWzFdWydpZCddLCAnZGVzdGluYXRpb24nOiBvbGRQbGF0
Zm9ybXNbMl1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnKTsKICAgICAgICAgfSkudGhlbigobmV3UGxh
dGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3UGxhdGZvcm1zLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jtc1swXSwgb2xk
UGxhdGZvcm1zWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3UGxhdGZvcm1z
WzFdLCBvbGRQbGF0Zm9ybXNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5l
d1BsYXRmb3Jtcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1swXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxhdGZvcm1zWzJdKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTY5LDE1ICs2OSwxNSBAQCBkZXNjcmliZSgiL2FkbWluL3Bs
YXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeShxdWVy
eUZvclJ1bnMpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIG9s
ZFRlc3RSdW5zID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVz
dFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sw
XVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24n
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNo
ZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3BsYXRm
b3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncnVuX3N1bV9j
YWNoZSddLCAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1sw
XVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVu
c1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob2xkVGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNo
ZSddLCAxOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbM11b
J3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAog
ICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkVGVzdFJ1bnNbMV1b
J3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9p
ZCddfSk7CkBAIC04NSwyMCArODUsMjAgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBuZXdUZXN0
UnVucyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5z
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1
bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRl
c3RSdW5zWzFdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1
bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0
UnVuc1syXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5z
WzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xkVGVzdFJ1
bnNbM11bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sz
XVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZpZyddLCBuZXdUZXN0
UnVuc1szXVsncnVuX2NvbmZpZyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVucy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5l
d1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFtZSdd
LCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1
bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sxXVsncnVuX2lkJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNb
Ml1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVu
c1syXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lk
J10sIG9sZFRlc3RSdW5zWzNdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1szXVsncnVu
X3N1bV9jYWNoZSddLCAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVz
dFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1bl9jb25maWcnXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTQsMTMgKzExNCwxMyBAQCBkZXNjcmliZSgiL2Fk
bWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVy
eShxdWVyeUZvckNvbmZpZywgW3JlcG9ydHNbMF1bJ3BsYXRmb3JtJ10sIHJlcG9ydHNbMl1bJ3Bs
YXRmb3JtJ11dKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBv
bGRDb25maWdzID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29u
Zmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1b
J3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1swXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdi
YXNlbGluZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ3BsYXRm
b3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob2xkQ29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlncy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgcmVwb3J0c1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob2xkQ29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10s
ICdiYXNlbGluZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1l
UmF0ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ2Nv
bmZpZ190eXBlJ10sICdjdXJyZW50Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0
YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21l
cmdlJywgJ2lkJzogb2xkQ29uZmlnc1swXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzog
b2xkQ29uZmlnc1sxXVsncGxhdGZvcm1faWQnXX0pOwpAQCAtMTI4LDEzICsxMjgsMTMgQEAgZGVz
Y3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBv
cnRzWzJdWydwbGF0Zm9ybSddXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgbmV3Q29uZmlncyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld0NvbmZpZ3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10s
ICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydj
b25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdD
b25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFt
ZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzFdWydjb25maWdf
dHlwZSddLCAnY3VycmVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0Nv
bmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25m
aWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdG
cmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBd
Wydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3Jt
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJp
Y19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCmluZGV4IDJm
ZjUzY2JmODhhYzI0YjBlOTIxNmIwYTcyZTRlMzcwOTIyN2E4ODEuLmIwOGFmOWZkZjljNmI0MzA1
MDI5MGRjNzVhMjM0NWE3MjY1MWY4ZTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBv
cnQtdGVzdHMuanMKQEAgLTQ4LDEwICs0OCwxMCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vz
cy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHNpbXBsZVJlcG9ydFdpdGhSZXZpc2lvbnMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7
J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50aGVuKChyZXBvc2l0b3JpZXMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJlcHNpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdLm93bmVyID09
IDEgPyByZXBvc2l0b3JpZXNbMV0uaWQgOiByZXBvc2l0b3JpZXNbMF0uaWQ7CiAgICAgICAgICAg
ICByZXR1cm4gZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnMjEzMjE0Jywg
J3JlcG9zaXRvcnknOiB3ZWJraXRSZXBzaXRvcnlJZH0pOwogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKQEAgLTY1LDI3ICs2NSwyNyBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHNpbXBsZVJlcG9ydFswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgnYnVpbGRzJyksIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgYnVpbGRz
ID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgcmVwb3J0cyA9IHJlc3VsdFsxXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxOTg2KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRz
WzBdWyd0YWcnXSwgJzE5ODYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICByZXBvcnRJZCA9IHJlcG9ydHNbMF1bJ2lkJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0c1swXVsnYnVpbGRfdGFnJ10sIDE5ODYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZydd
LCAnMTk4NicpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBT
RVQgcmVwb3J0X2J1aWxkID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYnVpbGRzJyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoYC9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0P3JlcG9ydD0ke3JlcG9y
dElkfWApOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxOTg2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZHNbMF1bJ3RhZyddLCAnMTk4NicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
OTUsMTAgKzk1LDEwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoc2ltcGxlUmVwb3J0
WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3JlcG9y
dHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdCA9IHJlcG9y
dHNbMF07CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCBy
ZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CkBAIC0xMDYsMTQgKzEwNiwxNCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vz
cy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChy
ZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IG5ld1BvcnQgPSByZXBvcnRzWzBdOwogICAgICAgICAgICAgb3JpZ2lu
YWxSZXByb3RbJ2NvbW1pdHRlZF9hdCddID0gbnVsbDsKICAgICAgICAgICAgIG5ld1BvcnRbJ2Nv
bW1pdHRlZF9hdCddID0gbnVsbDsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvcmlnaW5h
bFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9ydFsnYnVpbGQnXSk7CisgICAgICAgICAgICBhc3NlcnQu
bm90U3RyaWN0RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10p
OwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RbJ2J1aWxkJ10gPSBudWxsOwogICAgICAgICAg
ICAgbmV3UG9ydFsnYnVpbGQnXSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG9yaWdpbmFsUmVwcm90LCBuZXdQb3J0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3JpZ2luYWxSZXByb3QsIG5ld1BvcnQpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0p
OwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCA4M2ZiZTU5N2ZlNzlhM2Ex
YmY4MDUwYWM4Mzc3YmRkODY0NzQ0ZTY2Li5kM2ZkZDQ1ZWUxY2E1MDE3N2Y4Y2MzNzdmNmMwMTY3
MjM3M2IxYTAwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwpAQCAtMTMsNyAr
MTMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKIAog
ICAgIGl0KCdzaG91bGQgcmV0dXJuICJUcmlnZ2VyYWJsZU5vdEZvdW5kIiB3aGVuIHRoZSBkYXRh
YmFzZSBpcyBlbXB0eScsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKS50aGVuKChj
b250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10s
ICdUcmlnZ2VyYWJsZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnc3RhdHVzJ10sICdUcmlnZ2VyYWJsZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yMSwxMSArMjEsMTEgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
aW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7bmFtZTogJ2J1aWxkLXdlYmtpdCd9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10sIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0cyddLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNv
bnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycs
ICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10sIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQo
KSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAn
dXBsb2FkZWRGaWxlcyddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMzLDM2ICszMywz
NiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIE1vY2tEYXRhLmFkZFRlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVl
c3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcydd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVu
dCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0
YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQpLCA0MDMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBb
e2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJl
c0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5Nycs
IGNvbW1pdE93bmVyOiAiOTMxMTYiLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLmlkLCA0MDQpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6ICc5NjMzNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnMjAxNycsIGNvbW1pdE93bmVyOiAiOTYzMzYi
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCA1KTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLCB7Y29t
bWl0T3duZXI6IG51bGwsIGlkOiA4NzgzMiwgcmVwb3NpdG9yeTogJzknLCByZXZpc2lvbjogJzEw
LjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiA5MzExNiwgcmVwb3Np
dG9yeTogJzExJywgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAxNDQ1OTQ1ODE2ODc4fSkKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLCB7Y29tbWl0
T3duZXI6ICc5MzExNicsIGlkOiAnMTc5NycsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lvbjog
J293bmVkLWpzYy02MTYxJywgdGltZTogMTQ1Njk2MDc5NTMwMH0pCi0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVszXSwge2NvbW1pdE93bmVyOiBudWxsLCBp
ZDogOTYzMzYsIHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogMTQ0
ODIyNTMyNTY1MH0pCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVs0XSwge2NvbW1pdE93bmVyOiAnOTYzMzYnLCBpZDogMjAxNywgcmVwb3NpdG9yeTogJzIx
MycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCA1
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cydd
WzBdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnODc4MzInLCByZXBvc2l0b3J5OiAnOScsIHJl
dmlzaW9uOiAnMTAuMTEgMTVBMjg0JywgdGltZTogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0sIHtjb21taXRPd25lcjogbnVsbCwg
aWQ6ICc5MzExNicsIHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTog
MTQ0NTk0NTgxNjg3OH0pCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMxMTYnLCBpZDogJzE3OTcnLCByZXBv
c2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScsIHRpbWU6IDE0NTY5NjA3
OTUzMDB9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6ICc5NjMzNicsIHJlcG9zaXRvcnk6ICcx
MScsIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogMTQ0ODIyNTMyNTY1MH0pCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVs0XSwge2NvbW1pdE93
bmVyOiAnOTYzMzYnLCBpZDogJzIwMTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdv
d25lZC1qc2MtOTE5MScsIHRpbWU6IDE0NjIyMzA4MzcxMDB9KQogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7
CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF1bJ2NyZWF0ZWRBdCddID0g
MDsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXVsnY3JlYXRlZEF0J10g
PSAwOwogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdWydjcmVhdGVkQXQn
XSA9IDA7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM11bJ2NyZWF0ZWRB
dCddID0gMDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcs
IHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRl
c3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czogJ3Bl
bmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwg
Y3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAnNzA1JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTog
JzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAn
NjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzEnLCBjb21taXRTZXQ6ICc0MDQnLCBzdGF0
dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6
IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDogJzcwNicsIHRhc2s6ICcxMDgwJywgdHJpZ2dl
cmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0
Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcyJywgY29tbWl0U2V0OiAnNDAz
Jywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGws
IGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcnLCB0YXNrOiAnMTA4MCcs
IHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAw
JywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMycsIGNvbW1pdFNl
dDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJs
OiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXSwge2lkOiAnNzA0Jywg
dGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAx
JywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjog
JzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRp
b246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0s
IHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9y
eUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAn
OTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGluZycsIHN0
YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6
IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmln
Z2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBs
YXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0
MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVs
bCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwogICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC03MCwzMCArNzAsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJv
b3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywg
J2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAg
ICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwg
cmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywg
cmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBb
CiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6
IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAg
ICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWly
ZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywg
J3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51
bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0
dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkw
MDogewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3Rh
dHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZv
clJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAg
ICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZl
TmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3
b3JkJywKQEAgLTEwMSw1MyArMTAxLDUzIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3Rz
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLmlkLCA2MDApOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
aWQpLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzIn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1d
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2
aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEn
fV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLQot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgw
MCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29t
bWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5p
ZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0p
OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10u
bGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAg
IH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZXVzZSByb290IGJ1aWx0IGZvciBvd25lZCBjb21taXQg
aWYgc2FtZSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCBleGlzdHMnLCBhc3luYyAoKSA9PiB7CiAg
ICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFR3b01vY2tUZXN0R3JvdXBXaXRoT3duZWRDb21taXRz
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhj
b250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMn
LCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6
ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAg
IHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0
T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogbnVsbH1dKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQsIDcwNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCwgNzA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDQwNSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAzKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdj
b21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs3MDg6IHsKICAgICAgICAg
ICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IDcw
NH19OwpAQCAtMTU5LDI5ICsxNTksMjkgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVl
c3RzL2J1aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA0MDUpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2Nv
bW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLmlkKSwgNDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDQwNSk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0
OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1p
dDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21t
aXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RG
aWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkLCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3Jywg
Y29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogJzEwMSd9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDcwOCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
KSwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgncmV1c2Ugcm9vdHMgZnJvbSBleGlzdGlu
ZyBidWlsZCByZXF1ZXN0cyBpZiB0aGUgY29tbWl0cyBzZXRzIGFyZSBlcXVhbCBleGNlcHQgdGhl
IGV4aXN0ZW5jZSBvZiBjdXN0b20gcm9vdHMnLCBhc3luYyAoKSA9PiB7CkBAIC0xOTUsMzIgKzE5
NSwzMiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgXSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQn
KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQo
KSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAn
dXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkz
MTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29t
bWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0
U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IG51bGx9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbJzEwMyddKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsn
MTA0J10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5
MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1
ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAg
ICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVy
bDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJl
dXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldp
dGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAg
ICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3Jk
JzogJ3Bhc3N3b3JkJywKQEAgLTIyOCwyNyArMjI4LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9i
dWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQpLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4
MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNl
LCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEw
MX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
Y3VzdG9tUm9vdHMsIFsxMDNdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsxMDRdKTsKLQotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywg
cmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5jdXN0b21Sb290cywgWycx
MDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgZmFpbCBy
ZXF1ZXN0IHdpdGggIkNhbm5vdFJldXNlRGVsZXRlZFJvb3QiIGlmIGFueSByb290IHRvIHJldXNl
IGlzIGRlbGV0ZWQnLCBhc3luYyAoKSA9PiB7CkBAIC0yOTksMzcgKzI5OSwzNyBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBDUkVBVEUgVFJJR0dFUiBlbXVsYXRlX2ZpbGVfcHVy
Z2UgQUZURVIgVVBEQVRFIE9GIGNvbW1pdHNldF9yb290X2ZpbGUgT04gY29tbWl0X3NldF9pdGVt
cwogICAgICAgICAgICAgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGVtdWxhdGVfZmls
ZV9wdXJnZSgpO2ApOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250
ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAn
c3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQp
LCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCku
c29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1
cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQsIDYwMCk7Ci0KLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51
bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewotICAgICAg
ICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTog
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICBzdGF0dXM6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dz
KCdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jywgewog
ICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2
ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKICAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVz
JzogdXBkYXRlcwogICAgICAgICB9KSk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5xdWVyeShgRFJPUCBUUklHR0VSIElGIEVYSVNUUyBlbXVubGF0ZV9maWxlX3B1cmdlIE9O
IGNvbW1pdF9zZXRfaXRlbXM7YCk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGZhaWwgcmVx
dWVzdCB3aXRoICJOb01hdGNoaW5nQ29tbWl0U2V0SXRlbSIgaWYgYnVpbGQgcmVxdWVzdCB0byBy
ZXVzZSBkb2VzIG5vdCBoYXZlIHBhdGNoJywgYXN5bmMgKCkgPT4gewpAQCAtMzM3LDI5ICszMzcs
MjkgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKSwgWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwgZmFs
c2UpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQsIDYwMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAog
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBu
dWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0u
cmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0
U2V0LCA0MDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzIn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwg
OTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5j
b21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0
cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29t
bWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBj
b25zdCB1cGRhdGVzID0gezkwMDogewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZH19OworICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWls
ZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCl9fTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ05vTWF0Y2hpbmdDb21taXRT
ZXRJdGVtJywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZl
TmFtZSc6ICdzeW5jLXNsYXZlJywKQEAgLTM3NCwzMCArMzc0LDMwIEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDAxLCBjb21taXQ6
IDExMTE2OH0pCiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtp
dCcpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA2KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwg
NDAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5y
ZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnMTExMTY4JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAot
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAx
MDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0
MDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRT
ZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
OF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs4XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1
cGRhdGVzID0gezkwMDogewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJs
LCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZH19OworICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVl
c3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9
fTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdFJldXNlUm9vdFdpdGhOb25N
YXRjaGluZ0NvbW1pdFNldHMnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAg
ICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtNDEwLDMwICs0MTAsMzAgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0
IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSwgWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRp
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSk7CiAgICAgICAgIGNvbnN0IGNv
bnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29t
bWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1z
LCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxl
OiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0
ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJl
dmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0
LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnN0YXR1cywgJ3J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0
U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCks
IDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBk
YXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWls
ZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19Owor
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RS
ZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAg
ICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbk9ubHlSZXVzZUNvbXBsZXRlZEJ1aWxkUmVxdWVzdCcs
ICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1
aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAn
c3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBA
IC00NDUsMjcgKzQ0NSwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRo
Um9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQt
cmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0
cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAot
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAx
MDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEw
MCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVt
cywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJl
cXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0
dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0
KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
c3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9
IHs5MDA6IHsKICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVl
c3RGb3JSb290UmV1c2U6IDk5OX19OwpAQCAtNDgxLDU1ICs0ODEsNTUgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0
YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9h
cGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRl
bnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVu
dCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0
YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5y
ZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtj
b21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNC
dWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFd
LmlkKSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0uaWQsIDg3
ODMyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVw
b3NpdG9yeSwgJzknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRz
J11bMF0ucmV2aXNpb24sICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMV0uaWQsIDkzMTE2KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmVwb3NpdG9yeSwgJzExJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMz
Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9z
aXRvcnksICcxMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0K
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJd
LmlkLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMl0ub3JkZXIsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVy
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLnRlc3QsICcyMDAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50Wydjb21taXRzJ11bMF0uaWQpLCA4NzgzMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICc5
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBd
LnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAn
MTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11b
MV0ucmV2aXNpb24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcxMScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5y
ZXZpc2lvbiwgJzE5MjczNicpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcw
MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciksIDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2NScpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLm9yZGVyKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5j
b21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwg
JzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRl
ciksIDMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0
KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTUzNyw2NSArNTM3LDY1IEBAIGRlc2NyaWJlKCcv
YXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0Rh
dGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdD91c2VMZWdhY3lJZFJlc29sdXRpb249dHJ1
ZScpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywg
J2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1p
dDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LCB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjog
bnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1d
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQs
IDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsxXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCksIDQwMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1z
LAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21t
aXQ6ICc5NjMzNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0cyddWzBdLmlkLCA4NzgzMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICdtYWNPUycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1
QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5p
ZCwgOTMxMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsx
XS5yZXBvc2l0b3J5LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMzNik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmV2aXNpb24sICcx
OTI3MzYnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3NvbWUg
cGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3Qs
IFsnc29tZSB0ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnc29t
ZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVz
dCwgWydzb21lIHRlc3QnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICdz
b21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50
ZXN0LCBbJ3NvbWUgdGVzdCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwg
J3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNd
LnRlc3QsIFsnc29tZSB0ZXN0J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwg
J21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0
b3J5LCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzJdLmlkKSwgOTYzMzYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0
b3J5LCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0cyddWzJdLnJldmlzaW9uLCAnMTkyNzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0
Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsK
KworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0
U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsIFsnc29t
ZSB0ZXN0J10pOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5v
cmRlciksIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0u
dGVzdCwgWydzb21lIHRlc3QnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVszXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIGJlIGZldGNoYWJsZSBieSBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZSBmb3IgY29tbWl0U2V0cyB3aXRoIG93bmVkIGNvbW1pdHMnLCAoKSA9PiB7CiAgICAg
ICAgIHJldHVybiBNb2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gTWFuaWZlc3Qu
ZmV0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJl
cXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCA0KTsKIAogICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAg
ICAgICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC02MDMsMTAyICs2MDMsMTAyIEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBs
YXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRm
b3JtKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwg
NzA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA5MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgp
LCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwNSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwNSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwg
MSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBp
bnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3Rz
WzFdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgOTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwg
cGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVx
dWVzdHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzA3KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElk
KCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29t
bWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFy
dGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCks
ICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoMjEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlw
dENvcmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKIAogICAgICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1p
dFNldCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAu
MTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgY29u
c3QgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2
aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1
ODE2ODc4KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1
NjUwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQu
cmV2aXNpb24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtz
ZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKIAogICAgICAgICAgICAg
Y29uc3QgZmlyc3RTSkNDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24o
KSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0U0pD
Q29tbWl0LnRpbWUoKSwgMTQ1Njk2MDc5NTMwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0U0pDQ29tbWl0LnRpbWUoKSwgMTQ1Njk2
MDc5NTMwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFNKQ0NvbW1pdCA9IHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMwODM3MTAw
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lv
bigpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgr
c2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKICAgICBpdCgnYSByZXBvc2l0b3J5IGdyb3VwIG9mIGEgYnVpbGQgcmVxdWVzdCBzaG91
bGQgYWNjZXB0cyB0aGUgY29tbWl0IHNldCBvZiB0aGUgc2FtZSBidWlsZCByZXF1ZXN0JywgYXN5
bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZXJD
b21taXROb3RJbkNvbW1pdFNldChUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwotICAgICAgICBhd2Fp
dCBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCh0cnVlKTsK
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZv
clRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgy
MDApOwogICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC03MDgsNDMgKzcwOCw0MyBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3RzWzBdOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3QuaWQoKSwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QucGxhdGZv
cm0oKSwgcGxhdGZvcm0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVy
KCksIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
LmlkKCkpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0LnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lm9yZGVyKCkpLCAwKTsKICAgICAgICAgYXNzZXJ0
Lm9rKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdC5oYXNTdGFydGVkKCkpOwogICAgICAgICBhc3NlcnQub2soYnVp
bGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgY29uc3Qg
b3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5u
YW1lKCksICdtYWNPUycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwg
J21hY09TJyk7CiAKICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgx
MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAg
ICAgY29uc3QganNjID0gUmVwb3NpdG9yeS5maW5kQnlJZCgyMTMpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3JlJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlwdENvcmUnKTsKIAogICAgICAgICBjb25zdCBj
b21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjIn
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQudG9wTGV2ZWxSZXBvc2l0b3Jp
ZXMoKS5zb3J0KChvbmUsIGFub3RoZXIpID0+IG9uZS5pZCgpIDwgYW5vdGhlci5pZCgpKSwgW29z
eCwgd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LnRvcExldmVsUmVwb3Np
dG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBwYXJzZUludChvbmUuaWQoKSkgLSBwYXJz
ZUludChhbm90aGVyLmlkKCkpKSwgW29zeCwgd2Via2l0XSk7CiAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCkuYWNjZXB0cyhjb21taXRTZXQpKTsKICAgICB9
KTsKIAogICAgIGl0KCdzaG91bGQgYmUgZmV0Y2hhYmxlIGJ5IEJ1aWxkUmVxdWVzdC5mZXRjaEZv
clRyaWdnZXJhYmxlJywgKCkgPT4gewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0Rh
dGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIHJldHVy
biBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRy
dWUpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRo
ZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5
SWQoMjAwKTsKICAgICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTc1MiwxMDkgKzc1MiwxMDkg
QEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZCg2NSk7CiAgICAgICAgICAgICBh
c3NlcnQocGxhdGZvcm0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5pZCgpLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3Vw
SWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBD
b21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc1N0
YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5p
ZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFd
Lm9yZGVyKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmNv
bW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1sxXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1sxXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1
aWxkUmVxdWVzdHNbMV0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCksIDcw
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVz
dCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnBs
YXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzJdLm9yZGVyKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwg
dGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQu
b2soYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzU3RhcnRlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmlzUGVuZGluZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10u
dGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCkgaW5z
dGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzNdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzNdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sz
XS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAogICAgICAg
ICAgICAgbGV0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOwogCiAgICAgICAgICAgICBsZXQgZmlyc3RDb21taXRTZXQgPSBi
dWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENv
bW1pdFNldCk7CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKIAogICAgICAgICAgICAgbGV0IG9zeENvbW1pdCA9
IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJl
cG9zaXRvcnkob3N4KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkp
OwogCiAgICAgICAgICAgICBsZXQgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmly
c3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21t
aXQudGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKIAogICAgICAgICAgICAgbGV0IHNlY29uZFdlYktp
dENvbW1pdCA9IHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcx
OTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRp
bWUoKSwgMTQ0ODIyNTMyNTY1MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vj
b25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBhIGJ1
aWxkIHJlcXVlc3QgaWYgYWxsIHJlcXVlc3RzIGluIHRoZSBzYW1lIGdyb3VwIGhhZCBiZWVuIGNv
bXBsZXRlZCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRl
ZCcsICdjb21wbGV0ZWQnXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gTWFuaWZl
c3QuZmV0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWls
ZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMu
bGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIG5vdCBp
bmNsdWRlIGEgYnVpbGQgcmVxdWVzdCBpZiBhbGwgcmVxdWVzdHMgaW4gdGhlIHNhbWUgZ3JvdXAg
aGFkIGJlZW4gZmFpbGVkIG9yIGNhbmNsZWQnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBNb2Nr
RGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnZmFpbGVkJywgJ2ZhaWxl
ZCcsICdjYW5jZWxlZCcsICdjYW5jZWxlZCddKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIHJl
dHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNo
KHRydWUpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdz
aG91bGQgaW5jbHVkZSBhbGwgYnVpbGQgcmVxdWVzdHMgb2YgYSB0ZXN0IGdyb3VwIGlmIG9uZSBv
ZiB0aGUgcmVxZXVzdHMgaW4gdGhlIGdyb3VwIGhhZCBub3QgYmVlbiBmaW5pc2hlZCcsICgpID0+
IHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3NjaGVkdWxlZCcsICdwZW5kaW5nJ10p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CisgICAg
ICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2godHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxl
KCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwpAQCAtODcyLDEx
ICs4NzIsMTEgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICBpdCgnc2hvdWxkIGluY2x1ZGUgYWxsIGJ1aWxkIHJlcXVlc3RzIG9mIGEgdGVzdCBn
cm91cCBpZiBvbmUgb2YgdGhlIHJlcWV1c3RzIGluIHRoZSBncm91cCBpcyBzdGlsbCBydW5uaW5n
JywgKCkgPT4gewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1
bm5pbmcnXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2go
KTsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3Rz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRpbmcoKSk7CkBA
IC04OTUsMzYgKzg5NSwzNiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICBpdCgnc2hvdWxkIG9yZGVyIGJ1aWxkIHJlcXVlc3RzIGJhc2VkIG9uIHRl
c3QgZ3JvdXAgY3JlYXRpb24gdGltZSBhbmQgb3JkZXInLCAoKSA9PiB7CiAgICAgICAgIGxldCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtN
b2NrRGF0YS5hZGRNb2NrRGF0YShkYiksIE1vY2tEYXRhLmFkZEFub3RoZXJNb2NrVGVzdEdyb3Vw
KGRiKV0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7
CisgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2godHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdn
ZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2
MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3Jk
ZXIoKSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgp
LCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdy
b3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzFdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzJdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzNdLmlkKCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcxMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MTEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCks
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzEy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElk
KCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2
XS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzdd
LmlkKCksIDcxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50
ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbN10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwg
NjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzBdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS5vcmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1syXS5pZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3Jk
ZXIoKSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbM10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkp
LCAzKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbNF0uaWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzVdLmlkKCkpLCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5p
ZCgpKSwgNzEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSks
IDcxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1s3XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTkzNCw2OSArOTM0LDY5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0Rh
dGEoZGIpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tU
ZXN0R3JvdXBXaXRoR2l0V2ViS2l0KGRiKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBNYW5p
ZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmFsbCgpLmZpbmQoKHRyaWdnZXJhYmxlKSA9
PiB0cmlnZ2VyYWJsZS5uYW1lKCkgPT0gJ2J1aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMo
KS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5
R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdp
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICd3
ZWJraXQtc3ZuJyk7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3Rz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91
cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCAx
NzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRv
cnlHcm91cCgpLCBncm91cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbNV0uaWQoKSwgMTcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlkKCksIDE3MDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpLCAxNzAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgp
LCBncm91cHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgp
KSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkp
LCAxNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDE3MDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCks
IGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1s2XS5pZCgpKSwgMTcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1s2XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkp
LCAxNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzdd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwogICAgICAgICB9KTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgcGxhY2UgYnVpbGQgcmVxdWVzdHMgY3JlYXRlZCBieSB1c2VyIGJlZm9y
ZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgb25lcycsICgpID0+IHsKICAgICAgICAgbGV0IGRiID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01vY2tE
YXRhLmFkZE1vY2tEYXRhKGRiKSwgTW9ja0RhdGEuYWRkQW5vdGhlck1vY2tUZXN0R3JvdXAoZGIs
IG51bGwsICdybml3YScpXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gTWFuaWZl
c3QuZmV0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWls
ZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQo
KSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RH
cm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzEzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigp
LCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcw
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
NV0ub3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2
XS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0u
dGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzZdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbN10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzddLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RH
cm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcxMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJ
ZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkpLCA3MTIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSks
IDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1syXS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzEzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSksIDMpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0u
b3JkZXIoKSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbNV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVy
KCkpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzZdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s3XS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTAwOCwzNiArMTAwOCwzNiBAQCBkZXNjcmliZSgn
L2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAnc2xh
dmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCiAgICAgICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVw
ZGF0ZXMnOiB1cGRhdGVzCiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ10ubGVu
Z3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0s
ICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NhbmNlbGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzBdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVz
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJd
Lm9yZGVyLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydi
dWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwotCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmlk
LCA3MDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uY29t
bWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAw
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Bv
bnNlWydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0s
ICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5zdGF0dXMsICdjYW5jZWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAnMjAwJyk7CisKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1p
dFNldCksIDQwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0u
dGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMl0ub3JkZXIpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5pZCksIDcwMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNd
LnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0KSwgNDAyKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7
CiAgICAgICAgICAgICB9LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
U2hvdWxkIG5vdCBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3Rz
LmpzCmluZGV4IDE1MTkxMGJhZWIyNTU2MDI2YjkyZjBhMzFiZDE5MDU2OGJmYWI3MTMuLmI0OWEw
YmIzNjUxNjBjMzI2NTcxNmE0ZGVjZDM5NmRiMWJhYjIzYTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5q
cwpAQCAtMTE5LDIyICsxMTksMjIgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChj
b21taXQsIHN1Ym1pdHRlZCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ3Jl
dmlzaW9uJ10sIHN1Ym1pdHRlZFsncmV2aXNpb24nXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChu
ZXcgRGF0ZShjb21taXRbJ3RpbWUnXSkudG9JU09TdHJpbmcoKSwgc3VibWl0dGVkWyd0aW1lJ10p
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydtZXNzYWdlJ10sIHN1Ym1pdHRlZFsnbWVz
c2FnZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9yTmFtZSddLCBzdWJt
aXR0ZWRbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0Wydh
dXRob3JFbWFpbCddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJtaXR0ZWRbJ3JldmlzaW9u
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3IERhdGUoY29tbWl0Wyd0aW1lJ10p
LnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2UnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0dGVkWydhdXRo
b3InXVsnbmFtZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFsnYXV0aG9y
RW1haWwnXSwgc3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgaWYoc3Vi
bWl0dGVkWydwcmV2aW91c0NvbW1pdCddKSB7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0
WydwcmV2aW91c0NvbW1pdCddKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFsncHJldmlvdXNDb21taXQnXSwgbnVsbCk7CiAgICAgICAg
IH0KICAgICB9CiAKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi8nLCAo
KSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVu
IHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91
bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQ2LDggKzE0Niw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdCcpOwogICAgICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNl
Wydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtMTU1LDE4ICsxNTUsMTggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVy
c2lvbkNvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25Db21taXRzKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC8nKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0
dXMnXSwgJ09LJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydj
b21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbW1pdHMgPSBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKGNvbW1pdHNbMF0sIHN1Ym1pdHRlZENvbW1pdHNbMF0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdHNbMV0sIHN1Ym1pdHRl
ZENvbW1pdHNbMV0pOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3Vi
bWl0dGVkKGNvbW1pdHNbMl0sIHN1Ym1pdHRlZENvbW1pdHNbMl0pOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzJdWydwcmV2aW91c0NvbW1pdCddLCBjb21taXRzWzFdWydp
ZCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1syXVsncHJl
dmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZl
cnNpb25Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzeXN0ZW1W
ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbJ2Nv
bW1pdHMnXTsKICAgICAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3lzdGVt
VmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0cy5sZW5ndGgsIHN1Ym1pdHRlZENvbW1pdHMubGVuZ3RoKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1s1
XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1b
J3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNF1bJ3JldmlzaW9uJ10pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzJdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21t
aXRzWzNdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1szXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1syXVsncmV2aXNpb24nXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbNF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRl
ZENvbW1pdHNbMV1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzVdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzBdWydyZXZpc2lvbiddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIHN1Ym1p
dHRlZENvbW1pdHMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1s1XVsncmV2aXNpb24nXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9u
J10sIHN1Ym1pdHRlZENvbW1pdHNbNF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzWzJdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRz
WzNdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1szXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1syXVsncmV2aXNpb24nXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbNF1bJ3JldmlzaW9uJ10s
IHN1Ym1pdHRlZENvbW1pdHNbMV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzVdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzBd
WydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTE5NCw3ICsxOTQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vbGRlc3QnLCAoKSA9PiB7
CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRoZXJl
IGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9vbGRl
c3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZv
dW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIwMiw4ICsyMDIsOCBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzog
MSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xk
ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwg
W10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMTQsOCArMjE0LDggQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9XZWJLaXQvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2Ft
ZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1sn
Y29tbWl0cyddWzBdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTIyNyw5ICsy
MjcsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9vbGRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydjb21taXRzJ11bNV1b
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bNV1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+
L2xhdGVzdCcsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5v
dEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0L2xhdGVzdCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtMjQ1LDggKzI0NSw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ3JlcG9z
aXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC9sYXRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cydd
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTI1Nyw4ICsyNTcsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1v
dGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXRlc3QnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YnZlcnNpb25Db21taXRzWydjb21taXRzJ10uc2xpY2UoKS5wb3AoKSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CkBAIC0yNzAsOSArMjcwLDkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGF0ZXN0Jyk7
CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1W
ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbidd
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjg0LDEzICsyODQsMTMgQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2Fp
dCBkYi5xdWVyeShgREVMRVRFIEZST00gdGVzdHMgV0hFUkUgdGVzdF9uYW1lID0gJ0EtVGVzdCdg
KTsKIAogICAgICAgICAgICAgY29uc3QgcGxhdGZvcm1zID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdw
bGF0Zm9ybXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChwbGF0Zm9ybXMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwbGF0Zm9ybXMubGVuZ3RoLCAxKTsK
IAogICAgICAgICAgICAgY29uc3QgdGVzdF9tZXRyaWNzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0
ZXN0X21ldHJpY3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0X21ldHJpY3MubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0X21ldHJpY3MubGVu
Z3RoLCAxKTsKIAogICAgICAgICAgICAgY29uc3QgdGVzdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwo
J3Rlc3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICBhc3NlcnQodGVzdF9tZXRyaWNzWzBdLmlkICE9IHRlc3RzWzBdLmlkKTsKIApAQCAtMzAy
LDcgKzMwMiw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
IGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L2xhc3QtcmVwb3J0ZWQnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9s
YXN0LXJlcG9ydGVkJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9z
aXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0zMTQs
OCArMzE0LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTMyMyw4ICszMjMsOCBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwgJ25h
bWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBv
cnRlZCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10s
IFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQwLDggKzM0MCw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0
YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29t
bWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25D
b21taXRzWydjb21taXRzJ10uc2xpY2UoKS5wb3AoKSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CkBAIC0zNTMsOSArMzUzLDkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZCcpOwog
ICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVy
c2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zNzIsMzEgKzM3Miwz
MSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2NyZ0
bz0zNzAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdCA9IHJlc3VsdHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2QzY4Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2QzY4Jyk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNzAm
dG89MzY3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTIwMCZ0bz0y
OTknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzY5JnRvPTQzMicp
OwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29tbWl0ID0gcmVzdWx0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
LnJldmlzaW9uLCAnU2llcnJhMTZEMzInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0LnJldmlzaW9uLCAnU2llcnJhMTZEMzInKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBv
c2l0b3J5Pi88Y29tbWl0PicsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVw
b3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlO
b3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtNDE2LDcgKzQxNiw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC8yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC00
MjgsOCArNDI4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk1MCcpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMn
XVswXSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKICAgICAg
ICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NTAnLApAQCAtNDQ3LDggKzQ0Nyw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0LzIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2Ft
ZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1sn
Y29tbWl0cyddWzFdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTQ1OCw4ICs0
NTgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAg
ICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
cmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5P3ByZWZpeC1tYXRjaD1m
YWxzZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0
ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMV0p
OwogICAgICAgICB9KTsKIApAQCAtNDY4LDggKzQ2OCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1p
dHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQo
c3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0
aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAg
ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8yMTA5NDk/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2
ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7CiAKQEAgLTQ3OCw3ICs0
NzgsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAg
ICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
cmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ/cHJlZml4LW1hdGNoPXRy
dWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1
b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcg
d2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVk
IHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKQEAgLTQ4Niw4ICs0ODYsOCBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFk
ZFNsYXZlRm9yUmVwb3J0KGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyKTsKICAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
Y29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ/cHJlZml4LW1h
dGNoPXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3Vi
bWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlclsn
Y29tbWl0cyddWzBdKTsKICAgICAgICAgfSk7CiAKQEAgLTQ5Niw3ICs0OTYsNyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90
ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNv
bW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTA/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29t
bWl0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJzaG91bGQgbm90IG1hdGNoIHByZWZp
eCBhbmQgcmV0dXJuICdVbmtvd25Db21taXQnIHdoZW4gc3ZuIGNvbW1pdCBzdGFydHMgd2l0aCAn
cicgcHJlZml4IGFuZCB0aGVyZSBpcyBubyBleGFjdCBtYXRjaCIsIGFzeW5jICgpID0+IHsKQEAg
LTUwNCwyMyArNTA0LDIzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1
bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9yMjEwOTU/cHJl
Zml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCJzaG91bGQgaGFuZGxlIGNvbW1pdCByZXZpc2lvbiB3aXRoIHNwYWNlIiwgKCkgPT4gewog
ICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoWwogICAgICAgICAgICAgICAgIGRiLmluc2VydCgncmVwb3Np
dG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ09TIFgnfSksCi0gICAgICAgICAgICAgICAgZGIu
aW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzEwLjExLjEw
IFNpZXJyYTE2QzY3JywgJ29yZGVyJzogMzY3LCAncmVwb3J0ZWQnOiB0cnVlfSksCisgICAgICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydpZCc6IDEsICdyZXBvc2l0b3J5JzogMSwg
J3JldmlzaW9uJzogJzEwLjExLjEwIFNpZXJyYTE2QzY3JywgJ29yZGVyJzogMzY3LCAncmVwb3J0
ZWQnOiB0cnVlfSksCiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1Ml
MjBYLzEwLjExLjEwJTIwU2llcnJhMTZDNjcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMs
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1p
dHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3VsdHMu
Y29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LmlkLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAg
U2llcnJhMTZDNjcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29tbWl0LmlkKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdC5yZXZpc2lvbiwgJzEwLjExLjEwIFNpZXJyYTE2QzY3Jyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTUzOCwxMyArNTM4LDEzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1p
dHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzLzEvb3duZWQtY29tbWl0cz9vd25lci1yZXZpc2lvbj0xMC4xMiUyMDE2QTMyMycpCiAgICAg
ICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBj
b25zdCBvd25lZENvbW1pdCA9IHJlc3VsdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3duZWRDb21taXQucmVwb3NpdG9yeSwgMik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG93bmVkQ29tbWl0LmlkLCAyKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3duZWRDb21taXQucmVwb3NpdG9yeSksIDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvd25lZENvbW1pdC5yZXZpc2lvbiwg
JzIxMDk1MCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChv
d25lZENvbW1pdC5pZCksIDIpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01
NTgsOCArNTU4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293
bmVyLXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0cy5jb21taXRzLCBb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAn
T0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHMuY29t
bWl0cywgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NzMsOCArNTcz
LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVyLXJldmlz
aW9uPTEwLjEyJTIwMTZBMzI0JykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3Ro
LCAwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQogICAgIH0pOwpAQCAtNTgyLDcgKzU4
Miw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2Ny
aWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+Lz9wcmVjZWRpbmdSZXZpc2lvbj08Y29tbWl0
LTE+Jmxhc3RSZXZpc2lvbj08Y29tbWl0LTI+JywgKCkgPT4gewogICAgICAgICBpdCgic2hvdWxk
IHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVw
b3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP2Zyb209MjEwOTAwJnRvPTIxMTAwMCcp
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTk0LDcgKzU5NCw3IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTAwJmxh
c3RSZXZpc2lvbj0yMTEwMDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25v
d25Db21taXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC02MDcsOCArNjA3LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9w
cmVjZWRpbmdSZXZpc2lvbj0yMTA5NDkmbGFzdFJldmlzaW9uPTIxMDk1MCcpOwogICAgICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIApAQCAtNjIxLDcgKzYyMSw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTUwJmxhc3RSZXZpc2lvbj0yMTA5
NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkQ29tbWl0UmFuZ2UnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtNjM1LDggKzYzNSw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRp
bmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7
CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXS5tYXAoKGNvbW1pdCkgPT4gY29tbWl0
WydyZXZpc2lvbiddKSwgWycxMC4xMiAxNkIyNTU1JywgJzEwLjEyIDE2QjI2NTcnXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0
cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2QjI1NTUn
LCAnMTAuMTIgMTZCMjY1NyddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
NjUwLDcgKzY1MCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdS
ZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0luY29u
c2lzdGVudENvbW1pdHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjY0
LDcgKzY2NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZp
c2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0luY29uc2lz
dGVudENvbW1pdHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjc4LDgg
KzY3OCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lv
bj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02OTMsOCArNjkzLDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZp
c2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cydd
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTcwOCw4ICs3MDgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGlu
Z1JldmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsK
ICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAg
ICAgICAgIHJldmlzaW9uOiAnMjEwOTQ5JywKQEAgLTc0Myw4ICs3NDMsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dl
YktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ3Jmxhc3RSZXZpc2lvbj0yMTA5NDknKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2Nv
bW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11b
MV0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMV0pOwogICAgICAgICAgICAgfSk7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5p
ZmVzdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LW1hbmlmZXN0LXRlc3RzLmpzCmluZGV4IGJkYTI3NGZiMTk5NmQ0N2E2MTIxNDNmY2Y1MjJkNmQ5
OTRjNGVmZDguLmUzYmNmNzc0OTFkODhmNGRhZTRlMTU2ZTcwMGQ1YzYzYmY2NWEwOWQgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LW1hbmlmZXN0LXRlc3RzLmpzCkBAIC0xMyw3ICsxMyw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlm
ZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNob3VsZCBnZW5lcmF0ZSBhbiBlbXB0eSBt
YW5pZmVzdCB3aGVuIGRhdGFiYXNlIGlzIGVtcHR5IiwgKCkgPT4gewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0JykudGhlbigobWFu
aWZlc3QpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMobWFu
aWZlc3QpLnNvcnQoKSwgWydhbGwnLCAnYnVnVHJhY2tlcnMnLCAnYnVpbGRlcnMnLCAnZGFzaGJv
YXJkJywgJ2Rhc2hib2FyZHMnLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgpLCBbJ2FsbCcsICdidWdUcmFja2VycycsICdidWls
ZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJvYXJkcycsCiAgICAgICAgICAgICAgICAgJ2ZpbGVV
cGxvYWRTaXplTGltaXQnLCAnbWF4Um9vdFJldXNlQWdlSW5EYXlzJywgJ21ldHJpY3MnLCAncGxh
dGZvcm1Hcm91cHMnLCAncmVwb3NpdG9yaWVzJywgJ3NpdGVUaXRsZScsCiAgICAgICAgICAgICAg
ICAgJ3N0YXR1cycsICdzdW1tYXJ5UGFnZXMnLCAndGVzdEFnZVRvbGVyYW5jZUluSG91cnMnLCAn
dGVzdHMnLCAndHJpZ2dlcmFibGVzJ10pOwogCkBAIC0zMiw3ICszMiw3IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHRlc3RBZ2VUb2xl
cmFuY2VJbkhvdXJzOiBudWxsLAogICAgICAgICAgICAgICAgIHRlc3RzOiB7fSwKICAgICAgICAg
ICAgICAgICB0cmlnZ2VyYWJsZXM6IHt9LAotICAgICAgICAgICAgICAgIHN1bW1hcnlQYWdlczog
W10sCisgICAgICAgICAgICAgICAgc3VtbWFyeVBhZ2VzOiBudWxsLAogICAgICAgICAgICAgICAg
IHN0YXR1czogJ09LJwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNDUsMjIgKzQ1
LDIyIEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVnX3RyYWNrZXJzJywgYnVnemls
bGFEYXRhKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVu
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJz
LCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRu
dW1iZXInLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1Z1Ry
YWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9y
Zy9iLyRudW1iZXInLAogICAgICAgICAgICAgICAgIG5ld0J1Z1VybDogJ2h0dHBzOi8vYnVncy53
ZWJraXQub3JnLycsIHJlcG9zaXRvcmllczogbnVsbH19KTsKIAogICAgICAgICAgICAgbGV0IG1h
bmlmZXN0ID0gTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CiAgICAgICAgICAg
ICBsZXQgdHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3Nl
cnQodHJhY2tlcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdC
dWd6aWxsYScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyks
ICdodHRwczovL3dlYmtpdC5vcmcvYi8xMjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
cmFja2VyLm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxsYScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRwczov
L3dlYmtpdC5vcmcvYi8xMjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFj
a2VyLm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBjbGVhciBCdWcgYW5kIEJ1Z1RyYWNrZXIgc3Rh
dGljIG1hcHMgd2hlbiByZXNldCIsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgVGVzdFNl
cnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVnX3RyYWNrZXJzJywgYnVnemlsbGFEYXRhKTsKICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9tYW5pZmVzdCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVn
VHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJsOiAnaHR0cHM6Ly93ZWJraXQu
b3JnL2IvJG51bWJlcicsCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5i
dWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczovL3dlYmtp
dC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAgIG5ld0J1Z1VybDogJ2h0dHBzOi8vYnVncy53
ZWJraXQub3JnLycsIHJlcG9zaXRvcmllczogbnVsbH19KTsKIAogICAgICAgICBNYW5pZmVzdC5f
ZGlkRmV0Y2hNYW5pZmVzdChjb250ZW50KTsKQEAgLTkyLDI4ICs5MiwyOCBAQCBkZXNjcmliZSgn
L2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgbGV0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7
CiAKICAgICAgICAgICAgIGxldCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7CiAgICAg
ICAgICAgICBhc3NlcnQobWFjb3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5h
bWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjb3MubmFt
ZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAgbGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoMjIpOwogICAgICAgICAgICAgYXNzZXJ0KGlvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW9zLm5hbWUoKSwgJ2lPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlv
cy5uYW1lKCksICdpT1MnKTsKIAogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2Vy
LmZpbmRCeUlkKDEpOwogICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIz
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBz
Oi8vYnVncy53ZWJraXQub3JnLycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0cmFj
a2VyLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxsYScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtpdC5vcmcvYi8xMjMn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5ld0J1Z1VybCgpLCAn
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRyYWNrZXIucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKIAogICAgICAgICAgICAg
dHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmluZEJ5SWQoMik7CiAgICAgICAgICAgICBhc3NlcnQodHJh
Y2tlcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdSYWRhcicp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUodHJh
Y2tlci5yZXBvc2l0b3JpZXMoKSksIFtpb3MsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJhY2tlci5uYW1lKCksICdSYWRhcicpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUodHJhY2tlci5yZXBvc2l0b3Jp
ZXMoKSksIFtpb3MsIG1hY29zXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzEsMTkg
KzEzMSwxOSBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAg
ICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwogICAgICAgICAg
ICAgYXNzZXJ0KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUo
KSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51cmxGb3JSZXZp
c2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Lm93bmVkUmVwb3NpdG9yaWVzKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBz
Oi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdC5vd25lZFJlcG9zaXRvcmllcygpLCB1bmRlZmluZWQpOwogCiAgICAgICAgICAgICBs
ZXQgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKICAgICAgICAgICAgIGFzc2VydChvc3gp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdPUyBYJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9y
eS5maW5kQnlJZCgzNSldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFt
ZSgpLCAnT1MgWCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvc3gub3du
ZWRSZXBvc2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUpXSk7CiAKICAgICAgICAg
ICAgIGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2Vy
dChpb3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpb3Mub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5vd25lZFJlcG9zaXRvcmllcygpLCB1bmRlZmlu
ZWQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIGRlc2NyaWJl
KCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
bWFuaWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRlcnMsIHsKICAgICAgICAgICAgICAgICAnMSc6
IHtuYW1lOiAnU29tZUJ1aWxkZXInLCBidWlsZFVybDogJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy8kYnVpbGRlck5hbWUvYnVpbGQvJGJ1aWxkVGFnJ30sCiAgICAgICAgICAgICAg
ICAgJzInOiB7bmFtZTogJ1NvbWVPdGhlckJ1aWxkZXInLCBidWlsZFVybDogbnVsbH0KICAgICAg
ICAgICAgIH0pOwpAQCAtMTY1LDEzICsxNjUsMTMgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3Qn
LCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCBidWlsZGVyID0gQnVpbGRlci5maW5k
QnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZGVyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAnaHR0cHM6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZUJ1aWxkZXInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1aWxkKDEyMyksICdodHRwczovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxkZXIvYnVpbGQvMTIzJyk7CiAKICAgICAg
ICAgICAgIGJ1aWxkZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDIpOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIubmFtZSgpLCAnU29t
ZU90aGVyQnVpbGRlcicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIudXJsRm9y
QnVpbGQoMTIzKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRl
ci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTIwMiwxNCArMjAyLDE0IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKICAgICAgICAg
fSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50LnRlc3RzLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
dGVzdHMsIHsKICAgICAgICAgICAgICAgICAiMSI6IHsibmFtZSI6ICJTb21lVGVzdCIsICJwYXJl
bnRJZCI6IG51bGwsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgICAgICAiMiI6IHsibmFtZSI6
ICJTb21lT3RoZXJUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVybCI6IG51bGx9LAogICAgICAg
ICAgICAgICAgICIzIjogeyJuYW1lIjogIkNoaWxkVGVzdCIsICJwYXJlbnRJZCI6ICIxIiwgInVy
bCI6IG51bGx9LAogICAgICAgICAgICAgICAgICI0IjogeyJuYW1lIjogIkdyYW5kQ2hpbGQiLCAi
cGFyZW50SWQiOiAiMyIsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgIH0pOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQubWV0cmljcywgeworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKICAgICAgICAgICAgICAgICAn
NSc6IHtuYW1lOiAnVGltZScsIHRlc3Q6ICcxJywgYWdncmVnYXRvcjogbnVsbH0sCiAgICAgICAg
ICAgICAgICAgJzYnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMicsIGFnZ3JlZ2F0b3I6ICdUb3Rh
bCd9LAogICAgICAgICAgICAgICAgICc3Jzoge25hbWU6ICdNYWxsb2MnLCB0ZXN0OiAnMicsIGFn
Z3JlZ2F0b3I6ICdUb3RhbCd9LApAQCAtMjQ0LDcgKzI0NCw3IEBAIGRlc2NyaWJlKCcvYXBpL21h
bmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGlvc0dyb3VwKTsKICAg
ICAgICAgICAgIGFzc2VydChtYWNHcm91cCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCht
YXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwogICAgICAg
ICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAgICAgICBh
c3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpAQCAtMjUzLDkgKzI1Myw5IEBAIGRl
c2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
KG1hdmVyaWNrcy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdFRpbWUpKTsKICAgICAgICAgICAgIGFz
c2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAgICAgICAg
ICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNHcm91cCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLmdyb3VwKCksIG1hY0dyb3VwKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhv
bmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25lNXMubmFt
ZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAgICAgICAgICAgICBhc3NlcnQoaW9zOWlwaG9uZTVz
Lmhhc1Rlc3Qoc29tZVRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhh
c1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMu
aGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI2NCw2MyArMjY0LDYzIEBAIGRlc2NyaWJlKCcvYXBp
L21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBob25l
NXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlv
czlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdE1hbGxvYykpOwogICAgICAgICAgICAg
YXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgpLCBpb3NHcm91cCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLmdyb3VwKCksIGlvc0dyb3Vw
KTsKIAogICAgICAgICAgICAgY29uc3QgbWFjUGxhdGZvcm1zID0gbWFjR3JvdXAucGxhdGZvcm1z
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zWzBdLCBtYXZlcmlja3MpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJpY2tzKTsK
IAogICAgICAgICAgICAgY29uc3QgaW9zUGxhdGZvcm1zID0gaW9zR3JvdXAucGxhdGZvcm1zKCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBpb3M5aXBob25lNXMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlwaG9uZTVz
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3QucGFyZW50VGVzdCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QucGF0aCgpLCBbc29tZVRl
c3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdC5uYW1lKCksICdT
b21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0LnBhcmVu
dFRlc3QoKSwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
c29tZVRlc3QucGF0aCgpLCBbc29tZVRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZVRl
c3Qub25seUNvbnRhaW5zU2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzb21lVGVzdC5jaGlsZFRlc3RzKCksIFtjaGlsZFRlc3RdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc29tZVRlc3QubWV0cmljcygpLCBbc29tZVRlc3RNZXRyaWNdKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLm5hbWUoKSwgJ1RpbWUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5hZ2dyZWdhdG9yTmFtZSgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5sYWJlbCgp
LCAnVGltZScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVzdE1ldHJpYy5j
aGlsZE1ldHJpY3MoKSwgY2hpbGRUZXN0Lm1ldHJpY3MoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc29tZVRlc3RNZXRyaWMuZnVsbE5hbWUoKSwgJ1NvbWVUZXN0IDogVGltZScpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJU
ZXN0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5wYXJlbnRUZXN0
KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lT3RoZXJUZXN0LnBh
dGgoKSwgW3NvbWVPdGhlclRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVUZXN0TWV0cmljXSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5uYW1lKCks
ICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMu
YWdncmVnYXRvck5hbWUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c29tZVRlc3RNZXRyaWMubGFiZWwoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMuY2hpbGRNZXRyaWNzKCksIGNoaWxkVGVzdC5tZXRy
aWNzKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmZ1
bGxOYW1lKCksICdTb21lVGVzdCA6IFRpbWUnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QucGFyZW50VGVzdCgpLCB1bmRlZmlu
ZWQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBh
dGgoKSwgW3NvbWVPdGhlclRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZU90aGVyVGVz
dC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1lJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uYWdncmVn
YXRvck5hbWUoKSwgJ1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVy
VGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3RhbCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxl
bmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNz
KClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdN
YWxsb2MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVsxXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGls
ZE1ldHJpY3MoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhl
clRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9jIDog
VG90YWwnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdD
aGlsZFRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QucGFyZW50VGVz
dCgpLCBzb21lVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5w
YXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5u
YW1lKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVy
VGVzdC5tZXRyaWNzKClbMF0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwg
J1RpbWUgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhl
clRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUo
KSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsx
XS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVsxXS5jaGlsZE1ldHJpY3MoKS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJU
ZXN0IDogTWFsbG9jIDogVG90YWwnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVzdCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRU
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoIWNoaWxkVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVN
ZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5jaGlsZFRl
c3RzKCksIFtncmFuZENoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxk
VGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGls
ZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBC
IENoaWxkVGVzdCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hp
bGRUZXN0Lm5hbWUoKSwgJ0dyYW5kQ2hpbGQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cmFuZENoaWxkVGVzdC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3Qs
IGdyYW5kQ2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNo
aWxkVGVzdC5jaGlsZFRlc3RzKCksIFtncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdU
aW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3Mo
KVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6IFRpbWUnKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUoKSwgJ0dy
YW5kQ2hpbGQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVz
dC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5k
Q2hpbGRUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoZ3JhbmRDaGlsZFRlc3Qub25seUNvbnRh
aW5zU2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENo
aWxkVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFu
ZENoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwg
J1NvbWVUZXN0IFx1MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBUaW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVz
dHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0
Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
YW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgp
LCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3MSw2MiArMzcxLDYyIEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAyLCB0ZXN0OiAxLCBwbGF0
Zm9ybTogMTA0fSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25zJywge3RyaWdnZXJhYmxlOiAyMDIsIHRlc3Q6IDIsIHBsYXRmb3JtOiAxMDR9KSwKICAg
ICAgICAgXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2go
KTsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyks
ICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0
Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3NXZWJraXQxID0gUmVwb3NpdG9yeS5m
aW5kQnlJZCgxMDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zV2Via2l0MS5uYW1lKCks
ICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtpdDEub3duZXJJZCgp
LCA5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtpdDEudXJsRm9yUmV2aXNpb24o
MTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc1dlYmtpdDEub3duZXJJZCgpKSwgOSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3NXZWJraXQxLnVybEZvclJldmlzaW9uKDEyMyks
ICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAgY29uc3QgbWFj
b3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1h
Y29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFj
b3MubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAgY29uc3Qgc2hhcmVkID0gUmVwb3Np
dG9yeS5maW5kQnlJZCgxNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2hhcmVkLm5hbWUo
KSwgJ1NoYXJlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNoYXJlZC5uYW1l
KCksICdTaGFyZWQnKTsKIAogICAgICAgICAgICAgY29uc3Qgc29tZVRlc3QgPSBUZXN0LmZpbmRC
eUlkKDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVU
ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3QubmFtZSgpLCAn
U29tZVRlc3QnKTsKIAogICAgICAgICAgICAgY29uc3Qgc29tZU90aGVyVGVzdCA9IFRlc3QuZmlu
ZEJ5SWQoMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCks
ICdTb21lT3RoZXJUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90
aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGNo
aWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQoMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hp
bGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKIAogICAgICAgICAgICAgY29uc3Qg
aW9zOWlwaG9uZTVzID0gUGxhdGZvcm0uZmluZEJ5SWQoMjMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhvbmUgNXMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25l
IDVzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hdmVyaWNrcyA9IFBsYXRmb3JtLmZpbmRCeUlk
KDQ2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsg
TWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5h
bWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwogCiAgICAgICAgICAgICBjb25zdCBzaWVycmEgPSBQ
bGF0Zm9ybS5maW5kQnlJZCgxMDQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNpZXJyYS5u
YW1lKCksICdUcnVuayBTaWVycmEgTWFjQm9va1BybzExLDInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwy
Jyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxl
bmd0aCwgMyk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY29zVHJpZ2dlcmFibGUgPSBUcmlnZ2Vy
YWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwgbWF2ZXJpY2tzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChtYWNvc1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtp
dC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNvc1RyaWdnZXJhYmxl
Lm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIG1hdmVy
aWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdn
ZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgbWF2ZXJpY2tzKSwgbWFj
b3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFi
bGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgbWF2ZXJpY2tzKSwgbWFj
b3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFi
bGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1Ry
aWdnZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zVHJpZ2dlcmFibGUgPSBUcmlnZ2Vy
YWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMp
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdn
ZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCks
ICdpb3MtYnVpbGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9y
ZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENv
bmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgaW9zOWlwaG9uZTVzKSwgaW9zVHJpZ2dlcmFibGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1
cmF0aW9uKGNoaWxkVGVzdCwgaW9zOWlwaG9uZTVzKSwgaW9zVHJpZ2dlcmFibGUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0
aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJh
dGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKIAogICAgICAg
ICAgICAgY29uc3QgbWFjVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmln
dXJhdGlvbihzb21lVGVzdCwgc2llcnJhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNU
cmlnZ2VyYWJsZS5uYW1lKCksICdtYWMtYnVpbGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG1hY1RyaWdnZXJhYmxlLm5hbWUoKSwgJ21hYy1idWlsZC53ZWJr
aXQub3JnJyk7CiAgICAgICAgICAgICBhc3NlcnQobWFjVHJpZ2dlcmFibGUuYWNjZXB0ZWRUZXN0
cygpLmhhcyhzb21lVGVzdCkpOwogCiAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBtYWNUcmln
Z2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGdyb3Vwcy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChn
cm91cHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
LnNvcnRCeU5hbWUoZ3JvdXBzKTsKIAogICAgICAgICAgICAgY29uc3QgZW1wdHlDdXN0b21TZXQg
PSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwpAQCAtNDQ1LDM1ICs0NDUsMzUgQEAgZGVzY3JpYmUoJy9h
cGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjdXNvbVNldFdpdGhXZWJL
aXRBbmRTaGFyZWQuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYyMicpOwog
ICAgICAgICAgICAgY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVw
b3NpdG9yeShzaGFyZWQsICc4NjQ1NicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMF0ucmVwb3NpdG9y
aWVzKCkpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNj
ZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29t
U2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0KLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uaXNIaWRkZW4oKSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRC
eU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXN0b21T
ZXRXaXRoT1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5h
Y2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNv
bVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMl0ucmVwb3NpdG9y
aWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFu
ZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNj
ZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0u
aXNIaWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
c1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMF0ucmVwb3NpdG9yaWVz
KCkpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0u
YWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRo
T1NYQW5kV2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdp
dGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMV0uaXNIaWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUo
Z3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhj
dXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0
aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1z
aGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uaXNIaWRk
ZW4oKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBb
c2hhcmVkLCB3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
Ml0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0
V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhXZWJLaXQpLCBmYWxzZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1z
ZXQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1t
ZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKaW5kZXggMzUyYjYxMmY3Njc2MTg1NWU3OGY1MzZiYjNh
MTMwODk1NWFjYjFmNC4uMjZhZjNkMzAxYzVkYTMzNDY2MjE5NDg3YjAzNDc3Y2EyMjRkY2NjNiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVh
c3VyZW1lbnQtc2V0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwpAQCAtMjQzLDEyICsyNDMsMTIg
QEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJp
YygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP21ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjU2LDEyICsyNTYsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVh
c3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZv
clJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBy
ZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdU
aW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3Bs
YXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1i
aWd1b3VzUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTI2OSwxMiArMjY5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0
aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGlt
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5w
bGF0Zm9ybUlkfWEmbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjgyLDEyICsyODIsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChy
ZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
QnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7
cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1iYCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTMxNyw3ICszMTcsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVu
dC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3Jt
PTQ2Jm1ldHJpYz01YCkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTMyNiwzMSArMzI2LDMxIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0
aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGlt
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09
JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgYnVpbGRUaW1lID0g
KyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5z
b3J0KCksCiAgICAgICAgICAgICAgICAgWydjbHVzdGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAn
Y2x1c3RlclN0YXJ0JywKICAgICAgICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFw
c2VkVGltZScsICdlbmRUaW1lJywgJ2Zvcm1hdE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRU
aW1lJywgJ3N0YXR1cyddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVy
Q291bnQnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydmb3Jt
YXRNYXAnXSwgWworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Ns
dXN0ZXJDb3VudCddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2Zvcm1hdE1hcCddLCBbCiAgICAgICAgICAgICAgICAgJ2lkJywgJ21lYW4nLCAnaXRl
cmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1bScsICdtYXJrZWRPdXRsaWVyJywKICAgICAg
ICAgICAgICAgICAncmV2aXNpb25zJywgJ2NvbW1pdFRpbWUnLCAnYnVpbGQnLCAnYnVpbGRUaW1l
JywgJ2J1aWxkVGFnJywgJ2J1aWxkZXInXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9y
dFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKICAgICAgICAgICAgIGFzc2VydCh0eXBlb2YocmVz
cG9uc2VbJ2xhc3RNb2RpZmllZCddKSA9PSAnbnVtYmVyJywgJ2xhc3RNb2RpZmllZCB0aW1lIHNo
b3VsZCBiZSBhIG51bWVyaWMnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmpl
Y3Qua2V5cyhyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXSksIFsnY3VycmVudCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZp
Z3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQnXSk7CiAKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRS
b3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmxlbmd0
aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0
TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgeworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGN1cnJlbnRSb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y3VycmVudFJvd3NbMF0ubGVuZ3RoLCByZXNwb25zZVsnZm9ybWF0TWFwJ10ubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRN
YXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAg
ICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApA
QCAtMzY3LDcgKzM2Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1
aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5
UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRh
YmFzZSgpOwpAQCAtMzgzLDIwICszODMsMjAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgYnVpbGRlcnMgPSByZXN1bHRb
Ml07CiAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3VsdFszXTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1bnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVycy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgbWVhc3VyZW1lbnRJZCA9IHJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBj
b25zdCBidWlsZElkID0gYnVpbGRzWzBdWydpZCddOwogICAgICAgICAgICAgY29uc3QgYnVpbGRl
cklkID0gYnVpbGRlcnNbMF1bJ2lkJ107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQn
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnQgPSByZXNwb25zZVsn
Y29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdpZCcpXSwgbWVhc3Vy
ZW1lbnRJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkJyldLCBidWlsZElkKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVp
bGRlcicpXSwgYnVpbGRlcklkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWFz
dXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50
SWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNl
Wydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4
T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00
MjgsOCArNDI4LDggQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRX
aXRoUmV2aXNpb25bMF1bJ3JldmlzaW9ucyddWydXZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKICAg
ICAgICAgICAgIGNvbnN0IHJldmlzaW9uQnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRo
UmV2aXNpb25bMF1bJ2J1aWxkVGltZSddKSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
dXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3Jt
YXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJy
ZW50Um93c1swXSksIHsKICAgICAgICAgICAgICAgIG1lYW46IDEzLAogICAgICAgICAgICAgICAg
aXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICBzdW06IDY1LApAQCAtNDM5LDcgKzQz
OSw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgIGNvbW1pdFRpbWU6IHJldmlzaW9uVGltZSwKICAgICAgICAgICAgICAgIGJ1
aWxkVGltZTogcmV2aXNpb25CdWlsZFRpbWUsCiAgICAgICAgICAgICAgICBidWlsZFRhZzogJzEy
NCcgfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9y
bWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsK
ICAgICAgICAgICAgICAgICBtZWFuOiAzLAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50
OiA1LAogICAgICAgICAgICAgICAgIHN1bTogMTUsCkBAIC00NjYsMTYgKzQ2NiwxNiBAQCBkZXNj
cmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVt
ZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1l
dHJpY0lkfWApOwogCiAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZp
Z3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dz
Lmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydm
b3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmJ1aWxkVGFnLCAxMjcpOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFd
KS5idWlsZFRhZywgMTI4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dz
Lmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmJ1aWxkVGFnLCAnMTI3Jyk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwg
Y3VycmVudFJvd3NbMV0pLmJ1aWxkVGFnLCAnMTI4Jyk7CiAgICAgICAgIGFzc2VydChmb3JtYXQo
cmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSkuY29tbWl0VGltZSA8IHJlc3Bv
bnNlLnN0YXJ0VGltZSk7CiAgICAgICAgIGFzc2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1h
cCddLCBjdXJyZW50Um93c1sxXSkuY29tbWl0VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAK
ICAgICAgICAgY29uc3QgYmFzZWxpbmVSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11b
J2Jhc2VsaW5lJ107Ci0gICAgICAgIGFzc2VydC5lcXVhbChiYXNlbGluZVJvd3MubGVuZ3RoLCAy
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCdd
LCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFnLCAxMzEpOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRU
YWcsIDEyOSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiYXNlbGluZVJvd3MubGVuZ3Ro
LCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zv
cm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFnLCAnMTMxJyk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxp
bmVSb3dzWzFdKS5idWlsZFRhZywgJzEyOScpOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBv
cmRlciByZXN1bHRzIGJ5IGJ1aWxkIHRpbWUgd2hlbiBjb21taXQgdGltZXMgYXJlIG1pc3Npbmci
LCAoKSA9PiB7CkBAIC01MjIsOCArNTIyLDggQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0
aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3Jt
SWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZp
Z3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVu
dFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJl
c3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJv
d3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFuOiAzLAogICAgICAgICAgICAgICAgaXRlcmF0
aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAtNTMzLDcgKzUzMyw3IEBA
IGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgIGNvbW1pdFRpbWU6ICtEYXRlLlVUQygyMDE3LCAwLCAxOSwgMTUsIDI4LCAxKSwKICAg
ICAgICAgICAgICAgIGJ1aWxkVGltZTogK0RhdGUuVVRDKDIwMTcsIDAsIDE5LCAxNSwgMjgsIDEp
LAogICAgICAgICAgICAgICAgYnVpbGRUYWc6ICcxMDAxJyB9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0p
LCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsn
Zm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgewogICAgICAgICAgICAgICAgIG1lYW46IDcs
CiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICAgc3Vt
OiAzNSwKQEAgLTU2Miw5ICs1NjIsOSBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQv
P3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1g
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMiwgJ3Nob3VsZCBoYXZlIHR3byBjbHVzdGVycycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJy
ZW50JyksCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3Rl
ckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLAogICAg
ICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jaWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCBy
ZXBvcnRXaXRoTmV3UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC01ODAsMTAgKzU4MCwxMCBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQv
P3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1g
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3Rl
cnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3RlckNv
dW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKICAgICAgICAgICAgIGxldCBj
dXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRh
aW4gdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxk
VGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwgW3JlcG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1b
J2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkVGFnJ11dKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIsICdzaG91bGQg
Y29udGFpbiB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLCBbcmVwb3J0V2l0aEFuY2llbnRS
ZXZpc2lvblswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUYWcn
XV0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjAzLDE0ICs2MDMsMTQgQEAgZGVzY3Jp
YmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRm
b3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAg
ICAgICAgfSkudGhlbigobmV3UmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVtb3Rl
LmdldEpTT05XaXRoU3RhdHVzKGAke2NhY2hlUHJlZml4fS5qc29uYCkudGhlbigoY2FjaGVkUmVz
dWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdSZXN1bHQsIGNh
Y2hlZFJlc3VsdCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChuZXdS
ZXN1bHQsIGNhY2hlZFJlc3VsdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRK
U09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0tJHtjYWNoZWRSZXN1bHRbJ3N0YXJ0VGltZSdd
fS5qc29uYCk7CiAgICAgICAgICAgICB9KS50aGVuKChvbGRSZXN1bHQpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25zdCBvbGRidWlsZFRhZ3MgPSBidWlsZFRhZ3Mob2xkUmVzdWx0LCAnY3VycmVu
dCcpOwogICAgICAgICAgICAgICAgIGNvbnN0IG5ld2J1aWxkVGFncyA9IGJ1aWxkVGFncyhuZXdS
ZXN1bHQsICdjdXJyZW50Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG9sZGJ1aWxkVGFncy5s
ZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1c3RlciBzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0d28g
ZGF0YSBwb2ludHMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQobmV3YnVpbGRUYWdzLmxlbmd0
aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRh
IHBvaW50cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob2xkYnVpbGRUYWdz
LnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAyKSwgbmV3YnVpbGRUYWdzLnNsaWNlKDAsIDIp
LAorICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob2xkYnVpbGRUYWdzLnNs
aWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAyKSwgbmV3YnVpbGRUYWdzLnNsaWNlKDAsIDIpLAog
ICAgICAgICAgICAgICAgICAgICAnVHdvIGNvbnNlcWN1dGl2ZSBjbHVzdGVycyBzaG91bGQgc2hh
cmUgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC02
MjksOSArNjI5LDkgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG1hbmlmZXN0ID0gTWFuaWZlc3QuX2RpZEZldGNo
TWFuaWZlc3QoY29udGVudCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBs
YXRmb3JtLmZpbmRCeU5hbWUoJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTWV0cmljLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNv
bnN0IG1ldHJpYyA9IE1ldHJpYy5hbGwoKVswXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1ldHJpYyksIHByaW1hcnlDbHVzdGVyWydsYXN0TW9k
aWZpZWQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3JtLmxh
c3RNb2RpZmllZChtZXRyaWMpLCBwcmltYXJ5Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNjczLDEwICs2NzMsMTAgQEAg
ZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgIGl0KCJz
aG91bGQgYWxsb3cgdG8gcmVwb3J0IGEgYnVpbGQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKICAg
ICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsK
ICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5k
QWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL21l
YXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUwMCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNw
b25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywgMTIsIDUwLCBbCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwgW1sxLCA0LCAzLCAxMiwg
NTAsIFsKICAgICAgICAgICAgICAgICBbJzEnLCAnOScsICcxMC44LjIgMTJDNjAnLCBudWxsLCAw
XSwgWycyJywgJzExJywgJzE0MTk3NycsIG51bGwsIDEzNjAxNDA5MjA5MDBdXSwKICAgICAgICAg
ICAgIDEsIDEzNjIwNDYzMjMzODgsICcxMjMnLCAxLCAxLCAnY3VycmVudCddXSk7CiAgICAgfSk7
CkBAIC03MTEsMTcgKzcxMSwxNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCk7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJlcG9ydEFmdGVyQWRkaW5nQnVp
bGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhDb21taXRzTmVlZHNSb3Vu
ZENvbW1pdFRpbWVBbmRCdWlsZFJlcXVlc3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAKICAgICAgICAgY29uc3QgcmF3V2ViS2l0Q29tbWl0ID0gYXdh
aXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvV2ViS2l0LzE0MTk3N2Ap
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGltZSwg
ZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJh
d1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7
CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1NDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldp
dGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNPUy8xMC44LjIlMjAxMkM2MGApOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09T
Q29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyYXdNYWNPU0NvbW1pdC5j
b21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lKTsKIAogICAgICAgICByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9hbmFseXNpc1Rhc2s9NTAwJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMs
IDEyLCA1MCwgWwogICAgICAgICAgICAgWycxJywgJzknLCAnMTAuOC4yIDEyQzYwJywgbnVsbCwg
ZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbJzInLCAnMTEnLCAnMTQxOTc3JywgbnVsbCwgZXhw
ZWN0ZWRXZWJLaXRDb21taXRUaW1lXV0sCiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAn
MTIzJywgMSwgMSwgJ2N1cnJlbnQnXV0pOwogICAgIH0pOwpAQCAtNzU3LDE0ICs3NTcsMTQgQEAg
ZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoQ29tbWl0c05l
ZWRzUm91bmRDb21taXRUaW1lXSk7CiAKICAgICAgICAgY29uc3QgcmF3V2ViS2l0Q29tbWl0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvV2ViS2l0LzE0MTk3
N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGlt
ZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGlt
ZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1NDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNP
TldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNPUy8xMC44LjIlMjAxMkM2MGApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1h
Y09TQ29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyYXdNYWNPU0NvbW1p
dC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lKTsKIAogICAgICAgICBj
b25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9u
JywgJ0ZyYW1lUmF0ZScpOwogICAgICAgICBjb25zdCBwcmltYXJ5Q2x1c3RlciA9IGF3YWl0IHJl
bW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7
cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1cmF0aW9ucy5jdXJyZW50LCBb
WzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChwcmltYXJ5Q2x1c3Rlci5jb25maWd1cmF0aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1
MCwgZmFsc2UsIFsKICAgICAgICAgICAgIFsxLCAxLCAnMTAuOC4yIDEyQzYwJywgbnVsbCwgZXhw
ZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbMiwgMiwgJzE0MTk3NycsIG51bGwsIGV4cGVjdGVkV2Vi
S2l0Q29tbWl0VGltZV1dLAogICAgICAgICAgICAgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lLCAx
LCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMV1dKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNv
bW1pdHMtdGVzdHMuanMKaW5kZXggMzI0NzMzOTYxODhmNjhjNzM5ZDc0OGFiZjhhODZmZWQ0YTQw
ZmZlMS4uYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2Y2JiNDBjMzBjNGIxODU5YiAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1p
dHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTc4LDE2ICs3OCwxNiBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKIAog
ICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwg
KCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlz
c2luZ1NsYXZlTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQg
cmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZlcyIsICgpID0+IHsKICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
ZW1wdHlSZXBvcnQpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRz
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5s
ZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTUsNyArOTUsNyBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KGVtcHR5UmVwb3J0KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDMsMTEgKzEwMywxMSBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpOwogICAgICAgICB9KS50aGVu
KChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ25hbWUnXSwgc3VidmVyc2lvbkNvbW1p
dC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdWyduYW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTExNSw3ICsxMTUsNyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNl
KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0
cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKQEAgLTEyMywxNCArMTIzLDE0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IGNv
bW1pdHRlcnMgPSByZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3Vi
dmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbidd
LCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToy
MC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsn
bWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRh
WydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJz
WzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1b
J3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9T
dHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVz
c2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVw
b3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2Fj
Y291bnQnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzgsMTAgKzEzOCwxMCBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkludmFsaWRDb21taXQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbicp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2Nv
bW1pdHMnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDksMzIgKzE0OSwz
MiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25U
d29Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Ud29D
b21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25z
dCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNl
LmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycp
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29t
bWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRb
MV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDIpOwogCiAgICAgICAgICAgICBsZXQgcmVw
b3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3Jldmlz
aW9uJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0
cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERh
dGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29t
bWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ3ByZXZpb3VzX2NvbW1pdCddLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25h
bWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNp
b24nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsndGltZSdd
LnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10s
IHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncHJldmlvdXNfY29tbWl0J10sIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9y
J11bJ2FjY291bnQnXSk7CiAKICAgICAgICAgICAgIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25U
d29Db21taXRzLmNvbW1pdHNbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sx
XVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzFdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMt
MDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFd
WydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydwcmV2aW91c19j
b21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQnXSwgcmVwb3J0ZWRE
YXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzFdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3RpbWUnXS50b1N0cmluZygp
LCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwOTo1NDo1Ni4wJykudG9TdHJpbmcoKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCByZXBvcnRlZERh
dGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sx
XVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMV1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3ByZXZpb3VzX2NvbW1pdCddLCBjb21taXRzWzBdWydp
ZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzFdWyduYW1l
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0dGVyc1sxXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTgyLDEwICsxODIs
MTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9u
SW52YWxpZFByZXZpb3VzQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25JbnZhbGlkUHJldmlvdXNDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0Zh
aWxlZFRvRmluZFByZXZpb3VzQ29tbWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRmFpbGVkVG9GaW5kUHJldmlvdXNDb21taXQnKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRz
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdC5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdC5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjAwLDE4ICsyMDAs
MTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2Vs
ZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0dGVycyA9IHJlc3VsdFsxXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBy
ZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
bmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwg
Y29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVw
b3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTIyOCwyMyArMjI4LDIzIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdj
b21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MF1bJ2lkJ10sIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3Nh
Z2UnXSwgZmlyc3REYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGZpcnN0RGF0YVsnYXV0aG9yJ11b
J25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3Vu
dCddLCBmaXJzdERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwotCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXVsnaWQnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXVsnbWVzc2FnZSddLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzFdWydjb21taXR0ZXInXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzBdWydpZCddLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsn
aWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFt
ZSddLCBmaXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsn
YWNjb3VudCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1b
J2lkJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ21l
c3NhZ2UnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sx
XVsnY29tbWl0dGVyJ10sIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU5LDEy
ICsyNTksMTIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRy
dWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpOwogICAgICAgICB9
KS50aGVuKChjb21taXR0ZXJzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1b
J25hbWUnXSwgYXV0aG9yWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnNbMF1bJ2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1
dGhvclsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMiwxNSArMzAy
LDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc2FtZVJlcG9z
aXRvcnlOYW1lSW5Pd25lZENvbW1pdEFuZE1ham9yQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1p
dCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAn
V2ViS2l0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGxldCBvc1dlYktpdCA9IHJlc3Vs
dFswXTsKICAgICAgICAgICAgIGxldCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzFdOwotICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zV2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5Lmlk
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0
b3J5Lm5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3du
ZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zV2ViS2l0Lmlk
LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG51bGwpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMzQzLDcgKzM0Myw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
U2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhPd25lZENvbW1pdHMpLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhPd25lZENv
bW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2ll
cnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsn
bWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0J30pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJv
d3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnSmF2YVNjcmlwdENvcmUgY29tbWl0J30pLApAQCAt
MzUxLDU0ICszNTEsNTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygn
cmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAgICAgICAgICAgICAgICBkYi5z
ZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2YVNjcmlwdENvcmUnfSldKQog
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHQubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQu
bGVuZ3RoLCA2KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0ID0gcmVzdWx0WzBdWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
bm90U3RyaWN0RXF1YWwob3N4Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0g
cmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QganNjQ29tbWl0ID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3Ry
aWN0RXF1YWwoanNjQ29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4UmVwb3NpdG9yeSA9IHJlc3Vs
dFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxs
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNj
UmVwb3NpdG9yeSA9IHJlc3VsdFs1XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChq
c2NSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChq
c2NSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Via2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9z
aXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIs
IG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Via2l0UmVwb3NpdG9yeS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29tbWl0LnJlcG9zaXRvcnksIGpz
Y1JlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeFJlcG9z
aXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCiAg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25l
cnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdC5pZCwgJ293bmVkJzogd2Via2l0Q29tbWl0Lmlk
fSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygn
Y29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0LmlkLCAnb3duZWQnOiBqc2ND
b21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxl
Y3RSb3dzKCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5pZH0pXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdC5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dC5sZW5ndGgsIDMpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENvbW1pdCA9IHJlc3Vs
dFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvd25lckNvbW1pdEZvcldlYktp
dENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJD
b21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0Nv
bW1pdCA9ICByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJD
b21taXRGb3JKU0NDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICB9KTsKICAgICB9KQogCkBAIC00NDgs
NyArNDQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRy
dWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChtdWx0
aXBsZVN5c3RlbVZlcnNpb25Db21taXRzV2l0aE93bmVkQ29tbWl0cykudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBtdWx0aXBsZVN5c3RlbVZlcnNpb25Db21taXRzV2l0aE93bmVkQ29t
bWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVy
cmExNkQzMid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydy
ZXZpc2lvbic6ICdTaWVycmExNkM2Nyd9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydtZXNzYWdlJzogJ1dlYktpdCBDb21taXQnfSksCkBAIC00NTgsNDkgKzQ1
OCw0OSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3Jp
ZXMnLCB7J25hbWUnOiAiV2ViS2l0In0pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3Mo
J3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdKYXZhU2NyaXB0Q29yZSd9KV0pCiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5n
dGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBvc3hDb21taXQwID0gcmVzdWx0WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmlj
dEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxID0gcmVzdWx0WzFd
WzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdDEsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdDEsIG51bGwpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRDb21taXQgPSByZXN1bHRbMl1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwod2Via2l0Q29tbWl0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVh
bCh3ZWJraXRDb21taXQsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NDb21taXQwID0gcmVzdWx0WzNdWzBd
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdDAsIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdDAsIG51bGwpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBq
c2NDb21taXQxID0gcmVzdWx0WzRdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpz
Y0NvbW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0Nv
bW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzVdLmxlbmd0
aCwgMSkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAx
KQogICAgICAgICAgICAgY29uc3Qgb3N4UmVwb3NpdG9yeSA9IHJlc3VsdFs1XVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzZdLmxlbmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dFJlcG9zaXRvcnkgPSByZXN1bHRbNl1bMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbN10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbN10ubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbN11bMF07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9y
eS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnks
IG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDEu
cmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0MS5yZXBvc2l0b3J5LCBqc2NSZXBv
c2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVy
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVy
LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0
b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9y
eS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9z
aXRvcnksIHdlYmtpdFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29tbWl0MS5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5
LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVy
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5
Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKIAogICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsn
b3duZXInOiBvc3hDb21taXQwLmlkLCAnb3duZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRC
eSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRfb3du
ZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3duZWQnOiB3ZWJraXRDb21taXQu
aWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKQEAgLTUwOCwyNSArNTA4LDI1IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25l
cic6IG9zeENvbW1pdDEuaWQsICdvd25lZCc6IGpzY0NvbW1pdDEuaWR9LCB7J3NvcnRCeSc6ICdv
d25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBv
c2l0b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDUpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBv
d25lckNvbW1pdEZvcldlYktpdENvbW1pdDAgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQwLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDAs
IG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDEgPSByZXN1bHRbMV1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21t
aXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1p
dEZvcldlYktpdENvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1p
dDAgPSByZXN1bHRbMl1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21t
aXRGb3JKU0NDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVh
bChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZv
ckpTQ0NvbW1pdDEgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
b3duZXJDb21taXRGb3JKU0NDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RT
dHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC01NDgsMTggKzU0OCwxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9y
UmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRXaXRoRW1wdHlPd25lZENvbW1pdHMpLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhFbXB0eU93bmVk
Q29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29u
c3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmll
cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdF9vd25lcnNoaXBzJywgJ293bmVyJyldKTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBsZXQgY29tbWl0cyA9IHJlc3Vs
dFswXTsKICAgICAgICAgICAgIGxldCByZXBvc2l0b3JpZXMgPSByZXN1bHRbMV07CiAgICAgICAg
ICAgICBsZXQgY29tbWl0X293bmVyc2hpcHMgPSByZXN1bHRbMl07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcmllcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVzWzBdLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3JpZXNbMF0ubmFtZSwgJ09TWCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVzWzBdLmlkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNbMF0ubmFtZSwgJ09TWCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0aCwgMCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01ODcsNyArNTg3LDcgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRD
b21taXRXaXRoVGltZXN0YW1wKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3Rl
bVZlcnNpb25Db21taXRBbmRPd25lZENvbW1pdFdpdGhUaW1lc3RhbXApOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0
U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpA
QCAtNjk5LDExICs2OTksMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRz
J107Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsKIAogICAgICAgICByZXR1cm4gY29tbWl0
czsKICAgICB9CkBAIC03MTIsNyArNzEyLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgIHsKICAgICAgICAgYXdh
aXQgaW5pdGlhbFJlcG9ydENvbW1pdHMoKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgY29t
bWl0c1VwZGF0ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCBleHBl
Y3RlZFN0YXR1cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCBleHBlY3RlZFN0YXR1cyk7CiAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8nKTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdFsnY29tbWl0cyddOwogICAgIH0KQEAgLTcyMCw5ICs3MjAsOSBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgYXN5bmMgZnVuY3Rpb24gdGVzdFdpdGhFeHBlY3RlZEZhaWx1cmUoY29tbWl0c1VwZGF0ZSwg
ZXhwZWN0ZWRGYWlsdXJlTmFtZSkKICAgICB7CiAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2Fp
dCBzZXRVcFRlc3RzV2l0aEV4cGVjdGVkU3RhdHVzKGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFp
bHVyZU5hbWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7CiAgICAgfQogCiAgICAgaXQo
J3Nob3VsZCBmYWlsIHdpdGggIk1pc3NpbmdSZXZpc2lvbiIgaWYgY29tbWl0IHVwZGF0ZSBkb2Vz
IG5vdCBoYXZlIGNvbW1pdCByZXZpc2lvbiBzcGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7CkBAIC03
NDYsMzIgKzc0NiwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21t
aXRzKCk7CiAKICAgICAgICAgbGV0IGNvbW1pdHMgPSBhd2FpdCBkYXRhYmFzZS5zZWxlY3RBbGwo
J2NvbW1pdHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3J0ZWQsIHRy
dWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgdHJ1ZSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCB0cnVlKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ucmVwb3J0ZWQsIHRydWUpOwogCiAg
ICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgY29tbWl0cyBTRVQgY29tbWl0X3Jl
cG9ydGVkPWZhbHNlJyk7CiAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKIAogICAgICAgICBj
b21taXRzID0gYXdhaXQgZGF0YWJhc2Uuc2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBmYWxzZSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hv
dWxkIGJlIGFibGUgdG8gdXBkYXRlIGNvbW1pdHMgbWVzc2FnZSwgdGltZSwgb3JkZXIsIGF1dGhv
ciBhbmQgcHJldmlvdXMgY29tbWl0IiwgYXN5bmMgKCkgPT4gewogICAgICAgICBjb25zdCBjb21t
aXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyhjb21taXRzVXBkYXRlLCAn
T0snKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgJ0JyZWFrcyBidWlsZHMnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksICdDcmFzaGVzIFdl
YktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5tZXNzYWdlLCAnYW5vdGhl
ciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLm1lc3NhZ2UsICdh
bm90aGVyIG1lc3NhZ2UnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0uYXV0aG9y
TmFtZSwgJ0NocmlzIER1bWV6Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLmF1
dGhvck5hbWUsICdaYWxhbiBCdWp0YXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MF0ub3JkZXIsIDIxMDk0OCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLm9yZGVy
LCAyMTA5NDkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0ODg0
MzU0NTc3KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGltZSwgMTQ4NDg4NjIz
MDY0NSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnByZXZpb3VzQ29tbWl0LCBj
b21taXRzWzBdLmlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHks
ICdCcmVha3MgYnVpbGRzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFd
LnRlc3RhYmlsaXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2FnZScpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBE
dW1leicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5hdXRob3JOYW1l
LCAnWmFsYW4gQnVqdGFzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b21taXRzWzBdLm9yZGVyKSwgMjEwOTQ4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbW1pdHNbMV0ub3JkZXIpLCAyMTA5NDkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHNbMV0udGltZSwgMTQ4NDg4NjIzMDY0NSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnByZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsK
ICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5q
cwppbmRleCBkOWEyY2VkNjcxODM4MGZhYjllMGNkNWIwNTcwNDcyMTRiZDEzNGZhLi41YzQ0NWZl
ZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBA
IC0xMDEsNyArMTAxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
CiAgICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBidWlsZGVyIG5hbWUgaXMgbWlzc2lu
ZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4
ODMwNCJ9XSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOSwxOCArMTA5LDE4IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRl
ck5hbWUiOiAic29tZUJ1aWxkZXIiLCAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCJ9
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkVGltZScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRp
bWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVu
IHRoZXJlIGFyZSBubyBidWlsZGVycyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5z
J10sIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RB
bGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xMzQsNTggKzEzNCw1OCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgInJldmlzaW9ucyI6IHt9fV07CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5k
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9y
ZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydw
cm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3QgcmVwb3J0IHdpdGggIk1pc21hdGNoaW5n
Q29tbWl0VGltZSIgaWYgdGltZSBkaWZmZXJlbmNlIGlzIGxhcmdlciB0aGFuIDEgc2Vjb25kJywg
YXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVw
b3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0TWlzbWF0Y2hpbmdDb21taXRU
aW1lKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAx
KTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFRp
bWUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVk
J10sIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3Nl
ZFJ1bnMnXSwgMCk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIG5vdCByZWplY3QgcmVwb3J0
IGlmIHRoZSBjb21taXQgdGltZSBkaWZmZXJlbmNlIGlzIHdpdGhpbiAxIHNlY29uZCInLCBhc3lu
YyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQo
KSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoT25lU2Vjb25kQ29tbWl0VGltZURp
ZmZlcmVuY2UoKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZh
bHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZh
bHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5z
J10sIDEpOwogCiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKICAgICB9KTsKIAogICAgIGl0
KCJzaG91bGQgc3RvcmUgYSByZXBvcnQgZnJvbSBhIHZhbGlkIGJ1aWxkZXIiLCAoKSA9PiB7CiAg
ICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1
bnMnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBv
cnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbnRlbnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICAg
ICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCdd
KTsKIAogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ2J1aWxkZXJQYXNzd29y
ZCddOwogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3Rlc3RzJ107CiAgICAg
ICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDE4ICsxOTcsMTggQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JS
ZXBvcnQocmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
ZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAg
ICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJl
cG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnRbJ3NsYXZl
UGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnRbJ3Rlc3RzJ107CiAgICAgICAg
ICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgcmVwb3J0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudCwgcmVwb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTIxNiwxOSArMjE2LDE5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KGVtcHR5U2xhdmVSZXBvcnQo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5U2xhdmVSZXBvcnQoKV0pOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAg
ICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlTbGF2
ZVJlcG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2Uo
cmVwb3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENv
bnRlbnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250
ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENv
bnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50
LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIzOCw5ICsy
MzgsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwg
ZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRl
ck5hbWUnXSk7CiAgICAgICAgICAgICBhc3NlcnQoISgnYnVpbGRlclBhc3N3b3JkJyBpbiBzdG9y
ZWRDb250ZW50KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjUxLDggKzI1MSw4IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2Vs
ZWN0QWxsKCdidWlsZF9zbGF2ZXMnKTsKICAgICAgICAgfSkudGhlbigoc2xhdmVzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2xhdmVzWzBdWyduYW1lJ10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbGF2ZXMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbGF2ZXNbMF1bJ25hbWUnXSwgZW1wdHlSZXBv
cnQoKVsnc2xhdmVOYW1lJ10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjYyLDggKzI2
Miw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFi
YXNlKCkuc2VsZWN0QWxsKCdidWlsZGVycycpOwogICAgICAgICB9KS50aGVuKChidWlsZGVycykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsn
YnVpbGRlck5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlcnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyc1swXVsn
bmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWlsZGVyTmFtZSddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChi
dWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAx
MjMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10sICcx
MjMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4Myw3ICsyODMsNyBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJl
ciA9IHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAg
ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGlm
IGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIHdpdGgg
ZGlmZmVyZW50IHZhbHVlcyIsIGFzeW5jICgpID0+IHsKQEAgLTI5MSw3ICsyOTEsNyBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9
IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICc0NTYnOwogICAg
ICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21h
dGNoJyk7CiAgICAgfSkKIAogICAgIGl0KCJzaG91bGQgYWNjZXB0IGlmIGEgcmVwb3J0IHNwZWNp
ZmllcyBib3RoIGJ1aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIHdpdGggaWRlbnRpY2FsIHZhbHVl
IiwgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDcgKzI5OSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsK
ICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gcmVwb3J0LmJ1aWxkVGFnOwogICAgICAgICBj
b25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxkIGFkZCB0aGUgcGxhdGZvcm0i
LCAoKSA9PiB7CkBAIC0zMDgsOCArMzA4LDggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnKTsKICAgICAgICAgfSku
dGhlbigocGxhdGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zWzBdWyduYW1l
J10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxh
dGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZv
cm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zMjcsMTQgKzMyNywxNCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSByZXN1bHRbMF07CiAgICAgICAg
ICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgY29uc3QgYnVpbGRD
b21taXRzUmVsYXRpb25zID0gcmVzdWx0WzJdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcmllcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBv
c2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21h
Y09TJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMu
bWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0
J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29t
bWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1
aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1
aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRz
WzFdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNS
ZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2Nv
bW1pdF9idWlsZCddKTsKIAogICAgICAgICAgICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9
OwogICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiByZXBvc2l0b3JpZXMpCkBAIC0z
NDQsOSArMzQ0LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgZm9yIChsZXQgY29tbWl0IG9mIGNvbW1pdHMpCiAgICAgICAgICAgICAgICAgcmVw
b3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9z
aXRvcnknXV1dID0gY29tbWl0OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydX
ZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3NycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3RpbWUnXS50b1N0cmluZygp
LAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lv
blJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11b
J3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0aW1lJ10udG9TdHJpbmcoKSwK
ICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJp
bmcoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzYwLDE2ICszNjAsMTYgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRl
ckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RS
ZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
YnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzgyLDE2
ICszODIsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVp
bGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDIpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtNDE1LDE3ICs0MTUsMTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChmaXJzdFJlcG9y
dCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVw
b3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hpbmdDb21taXRSZXZpc2lvbicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01p
c21hdGNoaW5nQ29tbWl0UmV2aXNpb24nKTsKICAgICAgICAgICAgIGFzc2VydChKU09OLnN0cmlu
Z2lmeShyZXNwb25zZSkuaW5kZXhPZignMTQxOTc3JykgPj0gMCk7CiAgICAgICAgICAgICBhc3Nl
cnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE1MDAwMCcpID49IDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10s
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNz
ZWRSdW5zJ10sIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDg3LDggKzQ4Nyw4IEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICBmdW5jdGlvbiByZXBv
cnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnQpCiAgICAgewogICAgICAg
ICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9u
c2UocmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3BvbnNlOwogICAgICAgICB9KTsKICAgICB9CkBAIC01MTEsNyArNTExLDcgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVw
b3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09m
QWdncmVnYXRpb25zKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0cy5tYXAoKHJvdykgPT4geyBy
ZXR1cm4gcm93WyduYW1lJ107IH0pLnNvcnQoKSwKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGVzdHMubWFwKChyb3cpID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0
KCksCiAgICAgICAgICAgICAgICAgWydDU1MnLCAnRE9NJywgJ0R1bW15QmVuY2htYXJrJywgJ0R1
bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAnVHJhdmVyc2VOb2RlcycsICdhcHBsZS5j
b20nLCAnd2Via2l0Lm9yZyddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC01MjYsMTQgKzUy
NiwxNCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1lJ11dID0gbmV3IEFycmF5
OwogICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1lJ11dLnB1
c2goW3Jvd1snbWV0cmljX25hbWUnXSwgcm93WydhZ2dyZWdhdG9yX25hbWUnXV0pOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNz
WydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYydd
LCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRp
YyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydE
dW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydNb2RpZnlOb2RlcyddLCBbWydU
aW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01l
dHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBsZS5jb20nXSwgW1snVGltZScs
IG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNz
Wyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1sn
RE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJp
YyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRy
aWNzWydEdW1teUJlbmNobWFyayddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlQYWdl
TG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snTW9kaWZ5Tm9kZXMnXSwgW1snVGlt
ZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snYXBwbGUuY29tJ10s
IFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTU0Miw3ICs1NDIsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
cXVlcnkoYFNFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmljcywgdGVzdF9jb25maWd1cmF0
aW9ucwogICAgICAgICAgICAgV0hFUkUgdGVzdF9pZCA9IG1ldHJpY190ZXN0IEFORCBtZXRyaWNf
aWQgPSBjb25maWdfbWV0cmljCiAgICAgICAgICAgICBBTkQgdGVzdF9uYW1lID0gJDEgQU5EIG1l
dHJpY19uYW1lID0gJDJgLCBbdGVzdE5hbWUsIG1ldHJpY05hbWVdKS50aGVuKChyZXN1bHQpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJvd3NbMF07CiAgICAgICAgICAgICB9
KTsKICAgICB9CkBAIC01NjUsMjAgKzU2NSwyMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAg
Y29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydp
ZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwog
ICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVl
OiA1MDAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MTAsIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZh
bHVlOiA1MjAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MzAsIHJlbGF0aXZlX3RpbWU6IG51
bGx9XSk7CiAgICAgICAgICAgICBjb25zdCBzdW0gPSA1MDAgKyA1MTAgKyA1MjAgKyA1MzA7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5p
dGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2Fj
aGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgNTAwICogNTAwICsgNTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVz
dWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1MDAgKiA1MDAgKyA1MTAgKiA1MTAgKyA1MjAgKiA1MjAg
KyA1MzAgKiA1MzApOwogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNG
b3JNZXRyaWMoJ0NTUycsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewog
ICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0IHJ1
bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRl
cmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRl
cmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6
IDAsIHZhbHVlOiAxMDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHty
dW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAxMDIsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IDAs
IHZhbHVlOiAxMDMsIHJlbGF0aXZlX3RpbWU6IG51bGx9LApAQCAtNjAwLDkgKzYwMCw5IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBzdW0g
Kz0gdmFsdWU7CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IHZhbHVlICogdmFsdWU7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10s
IHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3Ro
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSdd
LCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjEzLDE1ICs2MTMsMTUg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29u
c3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcmVzdWx0LnJ1
blsnaWQnXTsKICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWyg1MDAgKyAxMDAp
IC8gMiwgKDUxMCArIDExMCkgLyAyLCAoNTIwICsgMTIwKSAvIDIsICg1MzAgKyAxMzApIC8gMl07
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAg
ICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IGV4
cGVjdGVkVmFsdWVzWzBdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7
cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNb
MV0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBv
cmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1syXSwgcmVsYXRpdmVf
dGltZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91
cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzNdLCByZWxhdGl2ZV90aW1lOiBudWxsfV0p
OwogICAgICAgICAgICAgY29uc3Qgc3VtID0gZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9u
IChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZTsgfSwgMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0
ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1
ZSAqIHZhbHVlOyB9LCAwKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydt
ZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1
ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZh
bHVlOyB9LCAwKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02NDIsMTAgKzY0MiwxMCBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
c3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOwogICAgICAgICAgICAg
ICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6
IE1hdGguZmxvb3IoaSAvIDUpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhw
ZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21l
YW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAzLDEwICs3MDMsMTAgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVj
dGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOwogICAgICAgICAgICAgZXhwZWN0ZWRJdGVyYXRpb25z
LnB1c2goe3J1bjogcnVuSWQsIG9yZGVyOiBpLCBncm91cDogTWF0aC5mbG9vcihpIC8gMiksIHZh
bHVlOiBleHBlY3RlZFZhbHVlLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CiAgICAgICAgIH0KLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRp
b25zKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1
bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2Fj
aGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSdd
LCBzcXVhcmVTdW0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5pdGVy
YXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAg
ICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMgd2l0aG91dCBhbnkgbWV0cmlj
IGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAgLTczNywyNyArNzM3LDI3IEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgYmVu
Y2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVt
bXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBydW4gPSBiZW5jaG1hcmtSZXN1
bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQu
aXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEp
ICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6
IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHty
dW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0
aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsg
MTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1
biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRp
dmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAo
KDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9y
ZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsg
MTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogCiAgICAgICAgIGNvbnN0IHN1
bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90
YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVhcmVTdW0gPSBiZW5jaG1hcmtS
ZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVl
ICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5y
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1h
cmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJl
bmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVu
WydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKIAogICAgICAgICBj
b25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRy
aWMoJ0FTdWJUZXN0JywgJ1RpbWUnKTsKICAgICAgICAgcnVuID0gc29tZVRlc3RSZXN1bHQucnVu
LmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMs
IFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5pdGVyYXRp
b25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiAz
MSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMSwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiAzMiwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgIF0pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIDMx
LjUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUn
XSwgNjMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVhcmVf
c3VtX2NhY2hlJ10sIDMxICogMzEgKyAzMiAqIDMyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCAzMS41KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9j
YWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNr
aXAgc3VidGVzdHMgbWlzc2luZyB0aGUgbWF0Y2hpbmcgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlv
biIsIGFzeW5jICgpID0+IHsKQEAgLTc5MiwyNyArNzkyLDI3IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdh
aXQgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGlt
ZScpOwogCiAgICAgICAgIGxldCBydW4gPSBiZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1
biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRp
dmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3Vs
dC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAx
MikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91
cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwg
e3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVs
YXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3Vw
OiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25z
WzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAy
LCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
YmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwg
dmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwg
e3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVs
YXRpdmVfdGltZTogbnVsbH0pOwogCiAgICAgICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3Vs
dC5pdGVyYXRpb25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDAp
OwogICAgICAgICBjb25zdCBzcXVhcmVTdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5y
ZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1f
Y2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3Vt
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKIAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3Vs
dCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0F1eGlsaWFyeVJlc3Vs
dCcsICdBbGxvY2F0aW9ucycpOwogICAgICAgICBydW4gPSBzb21lVGVzdFJlc3VsdC5ydW4uaWQ7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMs
IFsKICAgICAgICAgICAgIHtydW4sIG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDMxICsg
NDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAge3J1biwgb3JkZXI6IDEsIGdy
b3VwOiBudWxsLCB2YWx1ZTogMzIgKyA0MiwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAg
IF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydtZWFuX2NhY2hl
J10sICgzMSArIDQxICsgMzIgKyA0MikgLyAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVU
ZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDMxICsgNDEgKyAzMiArIDQyKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBNYXRo
LnBvdygzMSArIDQxLCAyKSArIE1hdGgucG93KDMyICsgNDIsIDIpKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSAr
IDMyICsgNDIpIC8gMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3Vs
dC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQxICsgMzIgKyA0Mik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgTWF0aC5w
b3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQyLCAyKSk7CiAgICAgfSk7CiAKICAgICBp
dCgic2hvdWxkIHJlamVjdCBhIHJlcG9ydCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG5v
bi1tYXRjaGluZyBhZ2dyZWdhdG9ycyBpbiBhIHN1YnRlc3QiLCBhc3luYyAoKSA9PiB7CkBAIC04
NDgsNyArODQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfX07CiAKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXBvcnRBZnRl
ckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQW1iaWdp
b3VzQWdncmVnYXRvcnMpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1
ZUluU3VidGVzdCcpOwogICAgIH0pOwogCiAgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFNhbWVTdWJ0
ZXN0TmFtZSgpCkBAIC04OTIsMTYgKzg5MiwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRB
Z2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCkpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgbGV0IG5ld1JlcG9ydCA9IHJlcG9ydFdpdGhTYW1lU3Vi
dGVzdE5hbWUoKTsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZFRhZyA9ICIxMjUiOwogICAg
ICAgICAgICAgbmV3UmVwb3J0LmJ1aWxkVGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIFtuZXdSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMn
KTsKICAgICAgICAgfSkudGhlbigodGVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3Rz
Lmxlbmd0aCwgNik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05MzAsMTcgKzkzMCwxNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdDEnLCAnQ29tYmluZWQnKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSBy
ZXN1bHQucnVuOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50
X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSdd
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA5
KTsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdz
dWl0ZScsICdDb21iaW5lZCcpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3VtX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1
bV9jYWNoZSddLCAyNSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydpdGVy
YXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuWydtZWFuX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1
blsnc3VtX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NjIs
MTMgKzk2MiwxMyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdCcsICdG
cmFtZVJhdGUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRl
cmF0aW9uX2NvdW50X2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
bWVhbl9jYWNoZSddLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNo
ZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIDE2ICsgMjUgKyA5KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ2l0
ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5bJ21lYW5fY2FjaGUnXSwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuWydzdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CiAKICAgICAgICAgICAgIGNvbnN0
IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQu
aXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQu
aXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiA0LCByZWxhdGl2ZV90aW1lOiAwfSwKICAgICAgICAgICAgICAgICB7
cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNSwgcmVsYXRpdmVfdGlt
ZTogMTAwfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBu
dWxsLCB2YWx1ZTogMywgcmVsYXRpdmVfdGltZTogMjA1fV0pOwpAQCAtMTAwNiw3ICsxMDA2LDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENv
bmZpZykgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1syXV0p
LnRoZW4oKCkgPT4gewpAQCAtMTAyMywxNiArMTAyMywxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
cmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdU
aW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKG9yaWdpbmFsQ29uZmlnKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdXSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdU
aW1lJyk7CiAgICAgICAgICAgICB9KS50aGVuKChjb25maWcpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQob3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0
YW5jZW9mIERhdGUpOwogICAgICAgICAgICAgICAgIGFzc2VydChjb25maWdbJ2NvbmZpZ19ydW5z
X2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2Nv
bmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVk
J10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDY5LDcgKzEwNjksNyBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRN
b2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNl
KHJlcG9ydFdpdGhCdWlsZFJlcXVlc3QpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwNzcsMjIgKzEwNzcsMjIgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRk
TW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25z
ZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJvd3MoJ2J1
aWxkcycsIHt0YWc6ICcxMjMnfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0Zm9ybXMnLCB7bmFtZTogJ01v
dW50YWluIExpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFthbm90aGVyUmVwb3J0
V2l0aFNhbWVCdWlsZFJlcXVlc3RdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1Vw
ZGF0ZUJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvVXBkYXRlQnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6
ICcxMjQnfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0Zm9ybXMnLCB7bmFtZTogJ0xpb24nfSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5s
ZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwppbmRleCBj
MDE5YTQyZGIxNzI0MTIxOTMyNTg4MjUwZWI5MzU5MDExMWQ5NGY5Li4xNjI5ZDRiYjBhZjFmZjRi
MmQ2OTNjMWNhNzVkZjcwN2U4MDhiYmNhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwpAQCAtMTEsMzkgKzEx
LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgIGRl
c2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nLCAoKSA9PiB7
CiAgICAgICAgIGl0KCdzaG91bGQgZ2l2ZSBhbiBlbXB0eSBsaXN0IGlmIHRoZXJlIGlzIG5vdCBl
eGlzdGluZyB0ZXN0IGdyb3VwIGF0IGFsbCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
dGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBpbmNsdWRlIGEgdGVzdCBncm91cCB3aXRoICJjYW5j
ZWxlZCIgc3RhdGUgaW4gYXQgbGVhc3Qgb25lIGJ1aWxkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7
CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFi
YXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY2FuY2VsZWQn
XSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMs
IFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdy
b3VwcyB3aXRoIHBlbmRpbmcgbm90aWZpY2F0aW9uJywgYXN5bmMgKCkgPT4gewogICAgICAgICAg
ICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2Nv
bXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAg
ICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gY29udGVudC50ZXN0R3JvdXBzWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5pZCwgNjAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAudGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5oaWRkZW4sIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAubmVlZHNOb3RpZmljYXRpb24sIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQw
MicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHRlc3RHcm91cC5pZCksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQodGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmhpZGRlbiwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbiwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3Jt
KSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMics
ICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBs
aXN0IGhpZGRlbiB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewpAQCAtNTEsMTIgKzUxLDEyIEBA
IGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBs
ZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAgICAgICAgICAgYXdhaXQgZGF0
YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX2hp
ZGRlbiA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBjb25z
dCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rl
c3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCB0ZXN0IGdyb3VwcyB3aXRob3V0IG5lZWRzIG5v
dGlmaWNhdGlvbiBmbGFnJywgYXN5bmMgKCkgPT4gewpAQCAtNjQsMjQgKzY0LDI0IEBAIGRlc2Ny
aWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQg
TW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcs
ICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2Uu
cXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX25lZWRzX25v
dGlmaWNhdGlvbiA9IEZBTFNFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAg
ICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgYSB0ZXN0IGdyb3VwIHRoYXQgaGFz
IHNvbWUgaW5jb21wbGV0ZWQgYnVpbGQgcmVxdWVzdHMnLCBhc3luYyAoKSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCBkYXRhYmFzZSA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAg
IGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdjb21w
bGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1bm5pbmcnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250
ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3Jv
dXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQu
Y29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9h
ZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0
YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
dGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTEzOCwxOCArMTM4LDE4IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNl
cnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnZmFpbGVkJywgJ2Nv
bXBsZXRlZCddLCBmYWxzZSk7CiAgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNl
KCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9u
ZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAg
ICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVkLW1vcmUtcmVxdWVzdHMnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vwc1swXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5v
ayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayh0
ZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3MDInLCAnNzAzJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAn
NDAyJywgJzQwMScsICc0MDInXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQodGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywg
JzcwMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmNv
bW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBzIG1heSBuZWVkIGFkZGl0aW9u
YWwgYnVpbGQgcmVxdWVzdHMnLCBhc3luYyAoKSA9PiB7CkBAIC0xNTgsMzEgKzE1OCwzMSBAQCBk
ZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3
YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3RfZ3Jv
dXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25lZWRfbW9yZV9yZXF1ZXN0cyA9IFRSVUUgV0hFUkUgdGVz
dGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNl
KCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9u
ZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMScpOwogICAg
ICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVkLW1vcmUtcmVxdWVzdHMnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAyKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb25lVGVzdEdyb3VwID0gY29udGVudC50ZXN0R3JvdXBzWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5pZCwgNjAwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAudGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbmVUZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRlc3RHcm91cC5pZCksIDYwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob25lVGVzdEdyb3VwLnRhc2spLCA1
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5uYW1lLCAn
c29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob25lVGVz
dEdyb3VwLmF1dGhvciwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIW9uZVRlc3RHcm91
cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9uZVRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2sob25lVGVzdEdyb3VwLm1heU5lZWRNb3Jl
UmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5wbGF0Zm9y
bSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvbmVUZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob25lVGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEn
LCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRl
c3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5jb21t
aXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKIAogICAgICAgICAgICAgY29u
c3QgYW5vdGhlclRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vwc1sxXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLmlkLCA2MDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAudGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLm5hbWUsICdhbm90aGVyIHRlc3QgZ3JvdXAnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLmF1dGhvciwgJ3dlYmtpdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3Jv
dXAuaWQpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGFu
b3RoZXJUZXN0R3JvdXAudGFzayksIDUwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5vdGhlciB0ZXN0IGdyb3VwJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5hdXRob3IsICd3ZWJraXQn
KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RHcm91cC5oaWRkZW4pOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFhbm90aGVyVGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayhhbm90aGVyVGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVz
dHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0s
IDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5idWls
ZFJlcXVlc3RzLCBbJzcxMCcsJzcxMScsICc3MTInLCAnNzEzJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChhbm90aGVyVGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMics
ICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEn
LCAnNzEyJywgJzcxMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYW5v
dGhlclRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRh
dGUtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMKaW5kZXggZmZmMmFjZjFmYjYz
OWFiM2U5OGEyYjFiN2IzZDQwNmRmMWFjYzdlMS4uYmJmOTMzNjY1MGU1ZWE0MTU3ZGZmYTRkOTYy
ZWJiOTU5MDQ3ZTk0MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5q
cwpAQCAtMzAsMTQgKzMwLDE0IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIHNsYXZlIG5hbWUg
aXMgbWlzc2luZycsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHt9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01p
c3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gc2xhdmVzJywgKCkgPT4g
ewogICAgICAgICBjb25zdCB1cGRhdGUgPSB7c2xhdmVOYW1lOiBlbXB0eVVwZGF0ZS5zbGF2ZU5h
bWUsIHNsYXZlUGFzc3dvcmQ6IGVtcHR5VXBkYXRlLnNsYXZlUGFzc3dvcmR9OwogICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgdXBkYXRlKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00OCw3ICs0OCw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvcnQgPSB7c2xhdmVOYW1lOiBlbXB0eVVwZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6
ICdiYWRQYXNzd29yZCd9OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01
OCw3ICs1OCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVt
cHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC03MywxMCArNzMsMTAgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04Nywx
MiArODcsMTIgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc21h
bGxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJl
dHVybiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsK
ICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWyd0ZXN0J10s
IHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF1bJ3BsYXRmb3JtJ10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25z
WzBdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsndGVzdCdd
LCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVzdCddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBzbWFsbFVwZGF0ZS5jb25maWd1
cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDgs
NyArMTA4LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29uZmlndXJhdGlvbkVudHJ5Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZp
Z3VyYXRpb25FbnRyeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM3LDcgKzEzNyw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3Np
dG9yeUdyb3VwcycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3Vw
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzMsNyArMTczLDcgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZFJlcG9zaXRvcnlEYXRhJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlEYXRhJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yMTAsNyArMjEwLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdEdXBsaWNhdGVSZXBvc2l0b3J5
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
RHVwbGljYXRlUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjIxLDE4
ICsyMjEsMTggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBk
YXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbnMnLCAndGVzdCcpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxl
X3JlcG9zaXRvcnlfZ3JvdXBzJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVz
dWx0OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXVsndGVzdCddLCBN
b2NrRGF0YS5zb21lVGVzdElkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3Vy
YXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10sIE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
ZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10sIE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5
c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSdd
LCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlk
KCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjUzLDggKzI1Myw4IEBAIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9u
cywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNdID0gaW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAg
IGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVwb3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJh
dGlvbnMpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBp
bml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9y
eUdyb3Vwcyk7CiAgICAgICAgIH0pCiAgICAgfSk7CiAKQEAgLTI3NSw4ICsyNzUsOCBAQCBkZXNj
cmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtpbml0aWFsQ29uZmlndXJh
dGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxSZXN1bHQ7CiAgICAgICAg
ICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVzdWx0Owot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZp
Z3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vw
cywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9z
aXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBAIC0yOTAsMTQgKzI5MCwxNCBA
QCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5p
dGlhbFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiBkYi5zZWxlY3RBbGwo
J3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4oKHJlcG9zaXRvcnlHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSdd
LCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlw
dGlvbiddLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBk
YXRlKTsKICAgICAgICAgfSkudGhlbigoKSA9PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3Jl
cG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4oKHJlcG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHkn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlw
dGlvbiddLCAndGhpcyBncm91cCBpcyBhd2Vzb21lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVz
Y3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMzQ0LDM5ICszNDQsMzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cHMg
PSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlUmVwb3Np
dG9yeUdyb3VwLmFsbCgpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZFRvcExldmVsQnlOYW1lKCdXZWJLaXQnKTsKICAgICAgICAgICAgIGNvbnN0IG1hY29zID0g
UmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9u
KCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3Np
dG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3Rv
bVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJv
b3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyks
IGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0
c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5
R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2Vi
S2l0Jyk7CiAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVs
QnlOYW1lKCdtYWNPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHND
dXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lz
dGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygp
LCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5k
ZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBv
c2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTM5NSwyOSArMzk1LDI5IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFs
bCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwo
J3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JyldKTsKICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3Vwcywg
cmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5l
bXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlU
cmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSdd
LCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dl
cmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgICAgIGlu
aXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3JvdXBzOwogCiAgICAgICAgICAgICBjb25zdCByZXBv
c2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXAp
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5
R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lk
J11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBb
cmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgp
LCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lk
J11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwogCiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxl
X3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9y
ZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10g
PSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHMs
IGluaXRpYWxHcm91cHMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKIAogICAgICAgICAgICAgY29uc3QgcmVwb3Np
dG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdy
b3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQo
KSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCldKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzFdWydpZCddXSwg
W01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRp
YWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0Rh
dGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzFdWydpZCddXSwgW01v
Y2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTQzNiwxNyArNDM2LDE3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFs
bCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwo
J3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JyldKTsKICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3Vwcywg
cmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5l
bXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlU
cmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSdd
LCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dl
cmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgICAgIGlu
aXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3JvdXBzOwogCiAgICAgICAgICAgICBjb25zdCByZXBv
c2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXAp
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5
R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lk
J11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBb
cmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgp
LCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lk
J11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwogICAgICAgICAgICAgaW5pdGlh
bFJlcG9zaXRvcmllcyA9IHJlcG9zaXRvcmllczsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBzZWNvbmRVcGRhdGUpOwpAQCAtNDU1LDEzICs0NTUsMTMgQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
cmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3Np
dG9yaWVzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdn
ZXJhYmxlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1b
J25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF1bJ25hbWUnXSwgJ21hYy1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vw
c1sxXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSdd
LCBpbml0aWFsR3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMsIGluaXRpYWxSZXBvc2l0b3JpZXMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMsIGluaXRpYWxSZXBvc2l0b3Jp
ZXMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwpp
bmRleCBhOGIxOTFkNzVmYzFjODAxNjZiYTM2ZTEzNTMzNWIwMTA2MTg4OWY4Li5jMmVlZjVjNWUz
NzkxMjAyYjliNDg0YzJiZjE0ZTQ4Yzg3MjMzZjhmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0
cy5qcwpAQCAtOTUsNiArOTUsOCBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2hB
bmRPd25lZENvbW1pdHMoKQogICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICBjb25z
dCBwYXRjaEZpbGUgPSByZXN1bHRbMF07CiAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbVXBs
b2FkZWRGaWxlLnVwbG9hZEZpbGUocGF0Y2hGaWxlKSwgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdHJpZ2dlcmFibGVDb25maWd1cmF0
aW9uKV0pOworICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICByZXR1cm4gTWFuaWZl
c3QuZmV0Y2godHJ1ZSkudGhlbigoKSA9PiByZXN1bHQpOwogICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICBjb25zdCBwYXRjaEZpbGUgPSByZXN1bHRbMF07CiAgICAgICAgIGNvbnN0
IHNvbWVUZXN0ID0gVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpOwpAQCAtMTIx
LDcgKzEyMyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsK
IAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gcm9vdCBmaWxlIGlzIG1pc3NpbmcnLCAoKSA9
PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVT
cGVjaWZpZWQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMzEsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdzb21lLmRhdCcsICdzb21lIGNvbnRl
bnQnKS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIG1ha2VSZXBvcnQo
cm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RG
b3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM5LDcgKzE0MSw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0
ZSByZXBvcnQuc2xhdmVOYW1lOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0OSw3ICsxNTEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxk
ZXJOYW1lOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZv
cm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZEJ1aWxkZXJOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xNTksNyArMTYxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRC
dWlsZFRhZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRCdWlsZFRhZycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcw
LDcgKzE3Miw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICcxYWJjJzsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51bWJlcicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRCdWlsZE51bWJlcicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTc5LDcgKzE4
MSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSk7CiAgICAgICAgIHJlcG9ydC5i
dWlsZE51bWJlciA9ICc0NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9y
dCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVt
YmVyVGFnTWlzbWF0Y2gnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pOwogCiAgICAgaXQo
J3Nob3VsZCBhY2NlcHQgaWYgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyBleGlzdHMg
d2l0aCBzYW1lIHZhbHVlJywgYXN5bmMgKCkgPT4gewpAQCAtMTg4LDM5ICsxOTAsMzkgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBv
d25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5
SWQoKSk7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAn
cGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3du
ZWQtanNjLTYxNjEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3du
ZWQtanNjLTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0IHJvb3RGaWxlID0gYXdhaXQgYWRkU2xhdmVB
bmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJv
b3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgIHJlcG9ydC5i
dWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNvbnRpbnVlIHdvcmtpbmcgd2l0aCBidWls
ZCBudW1iZXIgaWYgYnVpbGQgdGFnIGlzIG5vdCBwcmVzZW50JywgYXN5bmMgKCkgPT4gewpAQCAt
MjI5LDQwICsyMzEsNDAgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVk
LWpzYy02MTYxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRT
ZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0IHJvb3RG
aWxlID0gYXdhaXQgYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICBjb25zdCBy
ZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQn
XSk7CiAgICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIHJlcG9ydC5idWls
ZE51bWJlciA9ICcxMjMnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsK
IAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gYnVpbGQgdGltZSBpcyBtaXNzaW5nJywgKCkg
PT4gewpAQCAtMjcxLDcgKzI3Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUaW1lOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxk
VGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MSw3
ICsyODMsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXBvcnQuYnVpbGRUaW1lID0gJ1dlZCwgMTAgTWF5IDIwMTcgMDM6MDI6MzAg
R01UJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3Jt
RGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0yOTEsNyArMjkzLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFJlcXVlc3Q7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkv
dXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVp
bGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMzAxLDcgKzMwMyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5idWlsZFJlcXVlc3QgPSAnYWJjJzsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxv
YWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJl
cXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0z
MDksNyArMzExLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSkpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVx
dWVzdFR5cGUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxOSw3ICszMjEsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBk
ZWxldGUgcmVwb3J0LnJlcG9zaXRvcnlMaXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9z
aXRvcnlMaXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjksNyArMzMxLDcgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJ2ErYic7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVw
b3NpdG9yeUxpc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Nyw2NiArMzQ5LDY2
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAg
ICAgICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02
MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUo
KTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJl
cG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCdd
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsn
dXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUu
ZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0Rh
dGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAn
c29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3Qu
ZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRh
dGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhh
c0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBUZW1wb3Jh
cnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZh
U2NyaXB0IENvbnRlbnQgMCcpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAg
ICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0
LmlkKCksIFt7b3duZXJSZXBvc2l0b3J5V3JvbmdLZXk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRv
cnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkv
dXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5
Rm9yUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRLZXlGb3JSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC00MjQsNjYgKzQyNiw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAg
ICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
d2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmls
ZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRT
ZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBh
ZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9
PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWls
ZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRl
ZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBs
b2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdE
YXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1
cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91
cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3Qg
dXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWls
ZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVz
KCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RG
aWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNj
cmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSku
dGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBv
cnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktp
dDInLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6
NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC01MDEsNzkgKzUwMyw3OSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwog
ICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRS
ZXF1ZXN0LmlkKCkpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAg
ICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwog
ICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1
cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwg
J3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290
LmF1dGhvcigpLCAnc29tZVVzZXInKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBk
YXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhh
c0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5n
KCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0
Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QsIHVwbG9h
ZGVkUm9vdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
dXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dCwgdXBsb2FkZWRSb290KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01
ODcsNyArNTg5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJyJhIic7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2Fk
LXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9y
eUxpc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTYwMSw4ICs2MDMsOCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAiQmFk
UmVwb3NpdG9yeU5hbWUiXSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSddLCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydy
ZXBvc2l0b3J5TmFtZSddLCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTYxNiw4ICs2MTgsOCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJL
aXQiLCAibWFjT1MiXSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSddLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSdd
LCAnbWFjT1MnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYzNSwzNCArNjM3LDM0IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAg
ICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhh
c0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmco
KSk7IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1p
dFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQp
LCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsK
ICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKQEAgLTY3MCw0NSArNjcyLDQ1IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
cG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdbIldlYktpdCIsICJTaGFyZWQiXSc7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2Fk
LXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSdd
OwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRv
bih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUo
KSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRS
b290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5k
aW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0
UGF0Y2gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgdXBsb2FkZWRSb290KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB3ZWJraXRQYXRjaCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9h
ZGVkUm9vdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eShzaGFyZWQpLCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03
MjcsODcgKzcyOSw4NyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAo
KSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2gg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1q
c2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENy
ZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQo
KSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRh
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0g
VXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxv
YWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3Qu
ZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5p
ZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBn
cm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRl
c3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0
ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwog
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRl
ZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBs
b2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9v
dC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZp
bGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUs
IGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVw
b3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBs
b2FkZWRGaWxlJ107CiAgICAgICAgICAgICBqc2NSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNp
bmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29y
ZS1Sb290LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmls
ZW5hbWUoKSwgJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlk
KCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVz
dEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRl
c3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290
LCBqc2NSb290XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwg
W3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMK
aW5kZXggYmVkYzU0NzdkNTVhNGM3NDdiMjFkNzA5NDg1NTJlMzU3ZjQ2MmE5NC4uMDJlMWQ4OWZj
YzFkMjJlYTY4NmFjZWQxNjAyMjkyMzIxZmRkZDhkMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxl
LXRlc3RzLmpzCkBAIC03LDE5ICs3LDE4IEBAIGdsb2JhbC5Gb3JtRGF0YSA9IHJlcXVpcmUoJ2Zv
cm0tZGF0YScpOwogCiBjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuanMnKTsKIGNvbnN0IFRlbXBvcmFyeUZpbGUgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy90ZW1wb3JhcnktZmlsZS5qcycpLlRlbXBvcmFyeUZpbGU7Citjb25zdCBwcmVwYXJlU2VydmVy
VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFy
ZVNlcnZlclRlc3Q7CiAKIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAo
KSB7Ci0gICAgdGhpcy50aW1lb3V0KDUwMDApOwotICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7Ci0K
KyAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKICAgICBUZW1wb3JhcnlGaWxlLmluamVjdCgp
OwogCiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIkludmFsaWRBcmd1bWVudHMiIHdoZW4gbmVpdGhl
ciBwYXRoIG5vciBzaGEyNTYgcXVlcnkgaXMgc2V0JywgKCkgPT4gewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUnKS50aGVu
KChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdJbnZhbGlkQXJndW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvJyk7
CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI3LDcgKzI2LDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLzEnKS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgNDA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM1LDcgKzM0LDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlL2ZvbycpLnRoZW4oKGNvbnRl
bnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCA0MDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MDQp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDcsNyArNDYsNyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxl
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHt1cGxv
YWRlZEZpbGVbJ2lkJ119YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ3NvbWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtNjgsMTMgKzY3LDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJldHVybiAiTm90Rm91bmQiIHdoZW4gdGhl
IHNwZWNpZmllZCBTSEEyNTYgaXMgaW52YWxpZCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9
YWJjJykudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZXJlIGlzIG5vIGZpbGUg
bWF0Y2hpbmcgdGhlIHNwZWNpZmllZCBTSEEyNTYgJywgKCkgPT4gewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1
Nj01MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIy
MWNlNmQ4NGI1JykudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC04Niw3ICs4NSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2Fk
ZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKGAvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1Nj0ke3VwbG9hZGVkRmlsZVsnc2hhMjU2J119
YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHVwbG9hZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlLCByZXNwb25zZVsndXBs
b2FkZWRGaWxlJ10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcsMTEgKzk2LDExIEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25z
ZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKTsKLSAgICAgICAgICAgIHJldHVybiBkYi5jb25uZWN0KCkudGhlbigoKSA9PiBkYi5x
dWVyeShgVVBEQVRFIHVwbG9hZGVkX2ZpbGVzIFNFVCBmaWxlX2RlbGV0ZWRfYXQgPSBub3coKSBh
dCB0aW1lIHpvbmUgJ3V0YydgKSk7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoYFVQREFU
RSB1cGxvYWRlZF9maWxlcyBTRVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25l
ICd1dGMnYCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9
JHt1cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3Vu
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAn
Tm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTExNywxNiArMTE2LDE2IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKIAogICAgICAgICAgICAgYXNzZXJ0
KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdldGFnJykpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGhlYWRlcnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snZXRhZyddLCB1cGxvYWRlZEZpbGVb
J3NoYTI1NiddKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmlu
Y2x1ZGVzKCdhY2NlcHQtcmFuZ2VzJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRl
cnNbJ2FjY2VwdC1yYW5nZXMnXSwgJ2J5dGVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaGVhZGVyc1snYWNjZXB0LXJhbmdlcyddLCAnYnl0ZXMnKTsKIAogICAgICAgICAgICAg
YXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdjb250ZW50LWRpc3Bvc2l0aW9u
JykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRp
b24nXSwgYGF0dGFjaG1lbnQ7IGZpbGVuYW1lKj11dGYtOCcnc29tZS5kYXRgKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBh
dHRhY2htZW50OyBmaWxlbmFtZSo9dXRmLTgnJ3NvbWUuZGF0YCk7CiAKICAgICAgICAgICAgIGFz
c2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnY29udGVudC1sZW5ndGgnKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSwgdXBsb2Fk
ZWRGaWxlWydzaXplJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNb
J2NvbnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKIAogICAgICAgICAgICAg
YXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdsYXN0LW1vZGlmaWVkJykpOwog
ICAgICAgICB9KTsKQEAgLTE0NCw3ICsxNDMsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGFzdE1vZGlmaWVkID0gcmVzcG9uc2Uu
aGVhZGVyc1snbGFzdC1tb2RpZmllZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAn
R0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddLCBs
YXN0TW9kaWZpZWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLmhl
YWRlcnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE1Niw5ICsxNTUsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwg
bnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9NS0nfX0pOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhl
YWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdi
eXRlcyA1LTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9u
c2VUZXh0LCAnY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVh
ZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCw5ICsxNjksOSBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAn
R0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9NC05J319KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMg
PSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVu
dC1yYW5nZSddLCAnYnl0ZXMgNC05LzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnIGNvbnRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA0LTkvMTInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICcgY29udGUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NCw5ICsxODMsOSBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUv
JHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTQn
fX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3Qg
aGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJz
Wydjb250ZW50LXJhbmdlJ10sICdieXRlcyA4LTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAndGVudCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOC0xMS8xMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwg
J3RlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5OCw5ICsxOTcsOSBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVk
LWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0
ZXM9LTEwMCd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDAtMTEvMTInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwg
J2J5dGVzIDAtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTIxMCw3ICsyMDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29u
c3QgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQt
ZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRl
cz0xMi0nfX0pCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuZXF1YWwoZXJyb3IsIDQx
NikpOworICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0
MTYpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIyMCw3ICsyMTksNyBAQCBkZXNjcmli
ZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaWQgPSByZXNwb25zZVsndXBsb2FkZWRG
aWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5z
ZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBu
dWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz0yLTEnfX0pCi0gICAgICAgICAgICAgICAg
LnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVy
cm9yKSA9PiBhc3NlcnQuZXF1YWwoZXJyb3IsIDQxNikpOworICAgICAgICAgICAgICAgIC50aGVu
KCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikg
PT4gYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MTYpKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTIzMiwxNSArMjMxLDE1IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsn
aWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRw
UmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChg
L2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAg
ICAgICAge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVz
cG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddfX0pOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5
LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0
LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRl
bnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMjUyLDE1ICsyNTEsMTUgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydp
ZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBS
ZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAv
YXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwKICAgICAgICAgICAg
ICAgICB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcyA9IDktMTAnLCAnSWYtUmFuZ2UnOiByZXNw
b25zZS5oZWFkZXJzWydldGFnJ119fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSdd
LCAnYnl0ZXMgOS0xMC8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzIs
MTMgKzI3MSwxMyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9h
cGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2Fk
ZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHsnUmFu
Z2UnOiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogJ2Zvbyd9KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ3NvbWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0zMDMsNyArMzAyLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5kQnl0ZSAt
IHN0YXJ0Qnl0ZSArIDE7IGkrKykgewogICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IHJl
c3BvbnNlQnVmZmVyW2ldOwogICAgICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYnVmZmVy
W3N0YXJ0Qnl0ZSArIGldOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChhY3R1YWwsIGV4
cGVjdGVkLCBgVGhlIGJ5dGUgYXQgaW5kZXggJHtpfSBzaG91bGQgYmUgaWRlbnRpY2FsLiBFeHBl
Y3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBgVGhlIGJ5dGUgYXQgaW5kZXggJHtp
fSBzaG91bGQgYmUgaWRlbnRpY2FsLiBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0
dWFsfWApOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTMxNSw4ICszMTQsOCBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIHtoZWFkZXJzOiB7J1JhbmdlJzogYGJ5dGVzID0gJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX1g
fSwgcmVzcG9uc2VIYW5kbGVyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgYGJ5dGVzICR7c3RhcnRCeXRlfS0k
e2VuZEJ5dGV9LyR7ZmlsZVNpemV9YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRl
fS8ke2ZpbGVTaXplfWApOwogICAgICAgICAgICAgdmVyaWZ5QnVmZmVyKCk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qcwppbmRleCAxNGU5NDU2ZDJlNjdhNWM3MTAwMTIwYjE1NDY0ODBjMjcx
NmRlYmY0Li5kODliMDJjOGNlZGRlMzg4MzZiZTQzOGQ4MGU2NjViNDdhNmY5Mjg5IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5q
cwpAQCAtNzMsMTMgKzczLDEzIEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhu
YW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKICAgICBhd2FpdCBh
ZGRTbGF2ZUZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOwogICAgIGF3YWl0IHJlbW90
ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICBhd2Fp
dCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNp
b24pOwotICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgYXdhaXQgTWFuaWZlc3QuZmV0
Y2godHJ1ZSk7CiAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5UGF0aChbJ3NvbWUgdGVzdCcs
ICd0ZXN0MSddKTsKICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3Nv
bWUgcGxhdGZvcm0nKTsKICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlk
KCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2Fp
dCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsK
IAotICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAg
ICAgbmFtZTogbmFtZSwKICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAt
MTQwLDIzICsxNDAsMjMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7J2dyb3VwJzogaW5zZXJ0ZWRHcm91cElkLCBtYXlO
ZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3
YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgp
LCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVl
c3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSksIDIpOwogCiAgICAgICAgIGF3YWl0
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycsIHtncm91cDog
aW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRy
dWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgNCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9u
Q291bnQoKSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVl
c3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodXBkYXRlZEdy
b3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSksIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQodXBkYXRlZEdyb3Vwc1swXS5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMo
KSwgdHJ1ZSk7CiAgICAgICAgIGZvciAoY29uc3QgY29tbWl0U2V0IG9mIHVwZGF0ZWRHcm91cHNb
MF0ucmVxdWVzdGVkQ29tbWl0U2V0cygpKSB7CiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVl
c3RzID0gdXBkYXRlZEdyb3Vwc1swXS5yZXF1ZXN0c0ZvckNvbW1pdFNldChjb21taXRTZXQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgIH0KICAgICB9KTsKIApAQCAtMTcwLDEyICsxNzAsMTIgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9hZGQtYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgY29uc3Qg
aW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFs
UmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
Lm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSksIDIp
OwogICAgICAgICBhd2FpdCBncm91cC51cGRhdGVIaWRkZW5GbGFnKHRydWUpOwogCiAgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90QWRkVG9IaWRkZW5UZXN0R3JvdXAnLCBhc3luYyAo
KSA9PiBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVzdHMn
LCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KSkKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRl
LWFuYWx5c2lzLXRhc2stdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCmluZGV4
IDk5NmQyZGQzMmQ3NmJhNTQ3NTNlNjM5ZmY4YWY5YjM1NmYyNzk3ZDguLmE5YzllYzliMzhkNjM2
MzFlOGU4ODBiNDE0NTkwYjU1Y2YzOWEyYjEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2st
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2
aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwpAQCAtMTEzLDcgKzExMyw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBi
cm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHt9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ01pc3NpbmdOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdNaXNzaW5nTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTIxLDcgKzEyMSw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBi
cm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBlbmRSdW46
IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4K
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNp
cy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAg
ICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJ
bnZhbGlkRW5kUnVuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJ
bnZhbGlkRW5kUnVuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzcsNyArMTM3LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJy
b3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVu
OiAiZm9vIiwgZW5kUnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1
bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZp
bGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVu
OiAiZm9vIn0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEwMCwgZW5kUnVuOiAxfSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE2OCw3ICsxNjgsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3Nl
ciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVu
OiAxLCBlbmRSdW46IDEwMH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxp
ZEVuZFJ1bicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0lu
dmFsaWRFbmRSdW4nKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTE4MCw3ICsxODAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25h
bWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVGltZVJhbmdlJyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTIsNyArMTkyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGkn
LCBmdW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAyfSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSdW5Db25maWdNaXNtYXRjaCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNo
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMDQsNyArMjA0
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRo
IGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICBy
ZXR1cm4gTWFuaWZlc3QuZmV0Y2godHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgdGVzdDEgPSBUZXN0LmZpbmRCeVBhdGgoWydTdWl0ZScsICd0ZXN0MSdd
KTsKICAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnc29t
ZSBwbGF0Zm9ybScpOwpAQCAtMjEyLDIwICsyMTIsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBm
dW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiB0ZXN0
UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogICAgICAgICB9KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNo
QnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0pLnRoZW4oKHRhc2spID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdoaScpOwogICAgICAgICAgICAgYXNzZXJ0
KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGlu
Z1JlcXVlc3RzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVz
dDEnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCks
ICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5t
ZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yMzYsNyArMjM2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbk5vVGltZXN0
YW1wKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gTWFuaWZl
c3QuZmV0Y2goKTsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB0ZXN0MSA9IFRlc3QuZmlu
ZEJ5UGF0aChbJ1N1aXRlJywgJ3Rlc3QxJ10pOwogICAgICAgICAgICAgY29uc3QgcGxhdGZvcm0g
PSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CkBAIC0yNDQsMjIgKzI0NCwy
MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29u
ZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7
bmFtZTogJ2hpJywgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5z
WzFdWydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKICAgICAg
ICAgfSkudGhlbigodGFzaykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFt
ZSgpLCAnaGknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwg
J2hpJyk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAg
ICAgIGFzc2VydCghdGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFz
ay5maXhlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBl
KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJl
bCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0
cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRhc2suc3RhcnRUaW1lKCksIDE0NDU5NjAwOTEwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2suZW5kVGltZSgpLCAxNDQ1OTY2ODYxMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rl
c3QxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5zdGFydFRpbWUoKSwg
MTQ0NTk2MDA5MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5lbmRU
aW1lKCksIDE0NDU5NjY4NjEwMDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjcyLDcg
KzI3Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sg
d2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAg
ICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3QxID0gVGVzdC5maW5kQnlQYXRoKFsnU3VpdGUnLCAndGVz
dDEnXSk7CiAgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUo
J3NvbWUgcGxhdGZvcm0nKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsK
ICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBzdGFydElkID0gdGVzdFJ1bnNbMF1bJ2lk
J107CiAgICAgICAgICAgICBlbmRJZCA9IHRlc3RSdW5zWzFdWydpZCddOwogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywg
e25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46IGVuZElkfSk7CkBAIC0yODgs
MTIgKzI4OCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10
YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6
ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46IGVuZElkfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgnYW5hbHlzaXNfdGFza3MnKTsKICAgICAgICAgfSkudGhlbigodGFza3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRhc2tzLmxlbmd0aCwgMSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0zMDQsNyArMzA0LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNo
KCk7CisgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2godHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgdGVzdDEgPSBUZXN0LmZpbmRCeVBhdGgo
WydTdWl0ZScsICd0ZXN0MSddKTsKICAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZv
cm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOwpAQCAtMzEyLDcgKzMxMiw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHBy
aXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZp
Z1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAg
ICAgICAgICBuYW1lOiAnaGknLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1sw
XVsnaWQnXSwKQEAgLTMzMCw4ICszMzAsOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAg
ICAgICAgICAgZm9yIChsZXQgc3RyYXRlZ3kgb2Ygc3RyYXRlZ2llcykKICAgICAgICAgICAgICAg
ICBzdHJhdGVneUlkTWFwW3N0cmF0ZWd5WydpZCddXSA9IHN0cmF0ZWd5OwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc3RyYXRlZ3lJZE1hcFt0YXNrUm93WydzZWdtZW50YXRpb24nXV1bJ25h
bWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlvbiIpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1sndGVzdF9yYW5nZSddXVsnbmFtZSddLCAic3R1ZGVu
dCdzIHQtdGVzdCIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRN
YXBbdGFza1Jvd1snc2VnbWVudGF0aW9uJ11dWyduYW1lJ10sICJ0aW1lIHNlcmllcyBzZWdtZW50
YXRpb24iKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdHJhdGVneUlkTWFwW3Rh
c2tSb3dbJ3Rlc3RfcmFuZ2UnXV1bJ25hbWUnXSwgInN0dWRlbnQncyB0LXRlc3QiKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0MCwxMyArMzQwLDEzIEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBp
JywgZnVuCiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlz
aW9uWzBdKTsKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICAgICAgYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdp
dGhSZXZpc2lvbik7Ci0gICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgIGF3
YWl0IE1hbmlmZXN0LmZldGNoKHRydWUpOwogCiAgICAgICAgIGNvbnN0IHRlc3QxID0gVGVzdC5m
aW5kQnlQYXRoKFsnU3VpdGUnLCAndGVzdDEnXSk7CiAgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9y
bSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKICAgICAgICAgY29uc3Qg
Y29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMn
LCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9y
bS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygn
dGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0g
YXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30p
OwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0z
NjUsMTMgKzM2NSwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBhd2FpdCBh
ZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CiAgICAgICAgIGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdp
dGhSZXZpc2lvbik7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOwotICAgICAgICBh
d2FpdCBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCh0cnVl
KTsKIAogICAgICAgICBjb25zdCB0ZXN0MSA9IFRlc3QuZmluZEJ5UGF0aChbJ1N1aXRlJywgJ3Rl
c3QxJ10pOwogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3Nv
bWUgcGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0
Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClb
MF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1
bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3db
J2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNv
bnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygncmVwb3Np
dG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdlYmtpdElkID0gd2Vi
a2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM4NCwyMSArMzg0LDIxIEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQg
YXBpJywgZnVuCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1
bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKIAogICAgICAgICBUZXN0U2VydmVyLmNsZWFuRGF0YURp
cmVjdG9yeSgpOwotICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICBhd2Fp
dCBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5h
bHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0
cygpKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29t
ZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCku
bGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5i
dWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUg
cGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVz
dCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2Fp
dCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMCk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBh
bmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCB3aGVuIGNvbW1pdCBzZXQgbGlzdCBhbmQgYSBw
b3NpdGl2ZSByZXBldGl0aW9uIGNvdW50IGlzIHNwZWNpZmllZCcsIGFzeW5jICgpID0+IHsKQEAg
LTQyMCwxMyArNDIwLDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAKICAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
V2l0aFJldmlzaW9uKTsKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbik7Ci0gICAgICAg
IGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKHRy
dWUpOwogCiAgICAgICAgIGxldCB0ZXN0MSA9IFRlc3QuZmluZEJ5SWQodGVzdDFJZCk7CiAgICAg
ICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKICAg
ICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29u
ZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06
IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIu
c2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZpc2lv
blNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0
IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07
CkBAIC00MzYsMzggKzQzNiwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1h
bmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAg
ICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCdd
fSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQo
Y29udGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdj
b25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZp
cm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2Vy
dCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCks
IFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScp
OwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKCF0
ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRy
aWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmln
Z2VyYWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBs
YXRmb3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9y
bSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lk
KCksIHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFu
YWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2su
aWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0
ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVz
dDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCks
IHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVz
dCgpLCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzQnVp
bGQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpA
QCAtNDc3LDggKzQ3Nyw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNvbnN0
IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAg
Y29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKICAg
ICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0
SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBv
c2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJl
dmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCks
ICcxOTE2MjMnKTsKICAgICB9KTsKIH0pOwogCkBAIC00OTQsMTMgKzQ5NCwxMyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxl
Z2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9y
dFdpdGhSZXZpc2lvblswXSk7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3Ro
ZXJSZXBvcnRXaXRoUmV2aXNpb24pOwotICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwor
ICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKIAogICAgICAgICBjb25zdCB0ZXN0
MSA9IFRlc3QuZmluZEJ5UGF0aChbJ1N1aXRlJywgJ3Rlc3QxJ10pOwogICAgICAgICBjb25zdCBz
b21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CiAgICAg
ICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZp
Z3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBz
b21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNl
bGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3Np
dG9yeVJvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTog
J1dlYktpdCd9KTsKICAgICAgICAgY29uc3Qgd2Via2l0SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93
LmlkOwpAQCAtNTQyLDEzICs1NDIsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKIAogICAg
ICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsK
LSAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgYXdhaXQgTWFuaWZlc3Qu
ZmV0Y2godHJ1ZSk7CiAKICAgICAgICAgbGV0IHRlc3QxID0gVGVzdC5maW5kQnlJZCh0ZXN0MUlk
KTsKICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3Jt
SWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygn
dGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBw
bGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBh
d2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IG9u
ZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAg
ICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5
MTYyMyd9fTsKQEAgLTU1OCwzOCArNTU4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAg
ICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNb
MV1bJ2lkJ119KTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZl
dGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5h
bWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgp
LCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAg
ICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5j
YXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10p
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVz
dDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwg
J3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwogICAgICAgICBhc3Nl
cnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2Vy
YWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQo
KSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3Jv
dXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCks
IHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxh
dGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlz
aXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQo
KSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVz
dCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNb
MF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmlzQnVp
bGQoKSk7CkBAIC01OTksOCArNTk5LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAg
ICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwog
ICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNl
dCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRG
b3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdl
YmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3Np
dG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2
aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW4g
YW5hbHlzaXMgdGFzayB3aXRoIHRlc3QgZ3JvdXAgYW5kIHJlc3BlY3QgdGhlICJuZWVkc05vdGlm
aWNhdGlvbiIgZmxhZyBpbiB0aGUgaHR0cCByZXF1ZXN0JywgYXN5bmMgKCkgPT4gewpAQCAtNjIy
LDEzICs2MjIsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKIAogICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
UmV2aXNpb24pOwogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKLSAgICAgICAgYXdh
aXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2godHJ1ZSk7
CiAKICAgICAgICAgbGV0IHRlc3QxID0gVGVzdC5maW5kQnlJZCh0ZXN0MUlkKTsKICAgICAgICAg
bGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpOwogICAgICAg
ICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1
cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29t
ZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxl
Y3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0
ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAgICAgY29uc3QgYW5v
dGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9fTsKQEAg
LTYzOCwzOCArNjM4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgICAgICBz
dGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sIG5l
ZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFu
YWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3Vs
dHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29t
ZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCku
bGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5i
dWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUg
cGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVz
dCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2Fp
dCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsK
ICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAg
ICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlk
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5p
ZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdn
ZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91
cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91
cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0o
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3Jt
KCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFz
ay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5h
bHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQub2soIWJ1
aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVl
c3RzWzFdLmlzQnVpbGQoKSk7CkBAIC02NzksNyArNjc5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBm
dW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNv
bW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3Np
dG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1p
dFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcx
OTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnko
d2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVw
b3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNy
ZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAw
OWNkMzdhYjQzNmNiM2E3YmI3Y2I4Zjg0OWJjYTlkZTIyN2MxNDQxLi43NmU0NTY3NmYzODMwNThl
NzVjMmMwMjAzMmZlZWJjMmIyYzcxNDljIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3Rz
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTc1LDcgKzc1LDcgQEAgZnVuY3Rp
b24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkxNjIyIiwg
IjE5MTYyMyJdKQogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gcmVtb3RlLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7Cisg
ICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5UGF0aChbJ3NvbWUgdGVzdCcsICd0ZXN0
MSddKTsKICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21l
IHBsYXRmb3JtJyk7CkBAIC04Myw3ICs4Myw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFz
ayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKICAgICB9KS50
aGVuKChjb25maWdSb3cpID0+IHsKICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3Rf
cnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgIH0pLnRoZW4oKHRlc3RSdW5z
KSA9PiB7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAg
ICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsn
aWQnXSwKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7fSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Is
ICdJbnZhbGlkTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
SW52YWxpZE5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0NSw3ICsxNDUsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCBjb21taXRTZXRzOiBbWzFdXX0pLnRoZW4oKGNvbnRl
bnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTMsNyAr
MTUzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogJ2ZvbycsIGNvbW1pdFNldHM6
IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiAxLCByZXBldGl0aW9uQ291bnQ6IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21t
aXRTZXRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
Q29tbWl0U2V0cycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTY5LDcgKzE2OSw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogMSwgY29t
bWl0U2V0czoge319KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTc3LDcgKzE3Nyw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogMSwgY29tbWl0U2V0czogeydX
ZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogJ2ZvbycsIGNvbW1pdFNldHM6IHsnV2ViS2l0Jzog
W119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTMsNyArMTkzLDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAtNSwgY29tbWl0U2V0czog
eydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291
bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXBl
dGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIwMSw3ICsyMDEsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6
IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlcnJvciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnVHJpZ2dlcmFibGVOb3RGb3VuZEZvclRh
c2snKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIyMCw3ICsy
MjAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRT
ZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52
YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJy
b3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtMjMxLDcgKzIzMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmls
ZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0
YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0czogW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTE2MjInfX0sIHt9XX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJl
dmlzaW9uU2V0cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
J0ludmFsaWRSZXZpc2lvblNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAg
ICB9KTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFz
azogdGFza0lkLCByZXZpc2lvblNldHM6IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkx
NjIyJ319XX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9u
U2V0cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFs
aWRSZXZpc2lvblNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTI1Miw3ICsyNTIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFz
a0lkLCBjb21taXRTZXRzOiB7J0Zvbyc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNjIsNyArMjYyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1l
OiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbJzEnXX19KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNzQsNyArMjc0LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRz
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3Vu
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjg2LDcgKzI4
Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9u
U2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnQW1iaWd1b3VzUmV2aXNpb24n
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdBbWJpZ3VvdXNS
ZXZpc2lvbicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjk4
LDcgKzI5OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJl
dmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RG
b3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1Jldmlz
aW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTMxMCw3ICszMTAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChl
cnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRV
cGxvYWRlZEZpbGUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkVXBsb2FkZWRGaWxlJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0zMjEsNyArMzIxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Is
ICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC0zMzEsNyArMzMxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbJzE5MTYyMicsICcxOTE2
MjMnXSwgJ21hY09TJzogWycxNUEyODQnXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTM0NSw3ICszNDUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdEdXBsaWNhdGVUZXN0R3JvdXBOYW1l
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zNjIsNyArMzYy
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkT3duZXJSZXZp
c2lvbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc4LDcgKzM3OCw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0T3duZXJzaGlwJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0T3duZXJzaGlwJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zOTMsMTcgKzM5MywxNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlk
KCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246ICdv
d25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDEsIHJldmlzaW9uU2V0
c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGdyb3VwSWQgPSBj
b250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1
aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7
CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00MTgsMTQgKzQxOCwxNCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
Y29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVw
b3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0
LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRC
eU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpT
Qywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1q
c2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
NDQwLDE3ICs0NDAsMTcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7W21hY29zLmlkKCldOiB7cmV2
aXNpb246ICcxNUEyODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEn
LCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKICAgICAgICAg
fSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBncm91cElkID0gY29udGVudFsndGVzdEdy
b3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBncm91
cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAg
YXNzZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXJlcXVl
c3RzWzBdLmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1sxXS5pc0J1aWxk
KCkpOwpAQCAtNDY1LDEzICs0NjUsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlND
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsK
ICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAg
ICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIG1hY29zXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIG1hY29z
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTkxOTEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ4MiwyOCArNDgy
LDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVz
dEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50
KCksIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAg
ICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJp
bmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVB
Mjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9z
aXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJr
aXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9y
eUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3Jv
dXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9y
eUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5
R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTUyMSwyNCArNTIxLDI0
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdy
b3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24o
KSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3Rz
KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAK
ICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAg
ICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEu
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5
R3JvdXAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cCwgcmVxdWVzdHNbMV0ucmVw
b3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXAubmFtZSgpLCAnd2Via2l0LW9ubHknKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3Jv
dXAoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNl
dDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0
MSkpOwogICAgICAgICAgICAgfSk7CkBAIC01NTMsMzMgKzU1MywzMyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBv
c2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CiAgICAgICAgICAgICAgICAgY29uc3QgbWFj
b3MgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5u
YW1lKCkgPT0gJ21hY09TJylbMF07CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVx
dWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNl
dDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Vi
a2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVz
KCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1p
dEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJl
cG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91
cCgpLCByZXBvc2l0b3J5R3JvdXApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3Np
dG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
M10ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBA
IC02MDAsMjggKzYwMCwyOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9
IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RH
cm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBd
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dl
YmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwg
W3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzJjZWRhNDVkM2NkNjNjZGU1OGQwZGJmNTc2Nzcx
NGUwM2Q5MDJlNDMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICc1NDcxYThkZGMxZjY2
MTY2M2NjZmQxYTI5YzYzM2JhNTdlODc5NTMzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMmNlZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0
ZTAzZDkwMmU0MycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzU0
NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1N2U4Nzk1MzMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAwID0gcmVx
dWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3Np
dG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRv
cnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVx
dWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cDEsIHJlcG9zaXRvcnlHcm91cDApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXBvc2l0b3J5R3JvdXAwKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDEpKTsKICAg
ICAgICAgICAgIH0pOwpAQCAtNjQyLDMyICs2NDIsMzIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBp
bnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBv
c2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMCA9IHJlcXVl
c3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRv
cnlHcm91cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3VwMC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5
R3JvdXAoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0
cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXBvc2l0b3J5R3JvdXAwLmFjY2Vw
dHMoc2V0MSkpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMSA9IHJl
cXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEsIHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlH
cm91cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwMS5uYW1lKCksICd3ZWJraXQtb25seScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXBvc2l0b3J5R3JvdXAxLmFjY2VwdHMoc2V0MCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAxLmFjY2VwdHMoc2V0MSkp
OwogICAgICAgICAgICAgfSk7CkBAIC02OTEsMjggKzY5MSwyOCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50
KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0
MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9t
Um9vdHMoKSwgW10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5j
dXN0b21Sb290cygpLCBbVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZEZpbGVb
J2lkJ10sIHVwbG9hZGVkRmlsZSldKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNv
bW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCks
IFtVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2Fk
ZWRGaWxlKV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29z
KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXNl
dDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTc0MCw1
MCArNzQwLDUwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0
ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25z
dCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdy
b3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZp
bmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJl
cXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
Ml0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
M10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
Ml0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNd
LmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5p
c1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNU
ZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5p
c0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rl
c3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0u
aXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0u
Y29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCks
IHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQo
KSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0
KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRC
eU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMo
KSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3Np
dG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRT
ZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10u
Y29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtODA1LDYwICs4MDUsNjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJ
ZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAg
IGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQo
KSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3Jt
LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRl
c3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0o
KSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNl
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNU
ZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAg
PSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1
ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmll
cygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygp
KSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0
KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNv
bW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29z
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IHVuZGVmaW5lZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQw
LmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtODgwLDYxICs4ODAsNjEg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElk
J107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNl
cnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNO
b3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQ
bGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0
KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBn
cm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVp
bGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWls
ZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxk
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxk
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxk
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxk
KCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVz
dCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3Qo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0
cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWls
ZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5p
c0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwg
dHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNv
c10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1h
Y29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9y
eShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1p
dFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3Nd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5
KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShq
c2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNl
dDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05NjMsNjggKzk2Myw2OCBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNv
dW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlv
bigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQo
KSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5m
aW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2Up
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVp
bGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRd
LmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAog
ICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAg
ICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCB0cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFj
b3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShq
c2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Vi
a2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1
c3RvbVJvb3RzKCksIFtdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0
MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEwNTcsNzcgKzEwNTcsNzcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQo
KSkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5k
QnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNl
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0
XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAg
ICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFj
b3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgb3duZWRKU0Ms
IHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0
b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIHRydWUpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy05MTkxJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNj
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNj
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNv
bW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRK
U0MsIGpzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFj
b3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVk
LWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTkxOTEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNo
Rm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC0xMTU0LDQ1ICsxMTU0LDQ1IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQg
PSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5m
aW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCks
IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAg
ICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rl
c3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0u
aXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0u
Y29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCks
IHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQo
KSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwg
bWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygp
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3Nd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29z
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1
cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVw
b3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQo
IXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMjE3LDcgKzEy
MTcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTIzMCwyNCArMTIzMCwyNCBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAg
ICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9taXNlLmFs
bChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7
CiAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAg
Y29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29t
bWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3Np
dG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQw
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQx
LnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIzJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGEgdGVz
dCBncm91cCB3aXRoIG5lZWRzLW5vdGlmaWNhdGlvbiBmbGFnIHVuc2V0JywgYXN5bmMgKCkgPT4g
ewpAQCAtMTI1OSwyNCArMTI1OSwyNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3Vw
SWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFz
aywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJ
ZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwg
J290aGVyIHRhc2snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5u
YW1lKCksICdvdGhlciB0YXNrJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayghZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAu
YnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAg
ICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25z
dCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwg
W10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAg
aXQoJ3Nob3VsZCBjcmVhdGUgYSBjdXN0b20gdGVzdCBncm91cCBmb3IgYW4gZXhpc3RpbmcgY3Vz
dG9tIGFuYWx5c2lzIHRhc2snLCAoKSA9PiB7CkBAIC0xMjk2LDQzICsxMjk2LDQ0IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0MicsIHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBs
YXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzLCBy
ZXBldGl0aW9uQ291bnQ6IDJ9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAg
ICAgICAgICBzZWNvbmRSZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Zmlyc3RSZXN1bHRbJ3Rhc2tJZCddLCBzZWNvbmRSZXN1bHRbJ3Rhc2tJZCddKTsKKyAgICAgICAg
ICAgIC8vIHBnIGZ1bnRpb25zIHdpbGwgcmV0dXJuIGFsbCBkYXRhIGFzIHN0cmluZywgc28gd2Ug
bmVlZCBtYWtlIHN1cmUgdGhhdCB3ZSBjb21wYXJlIGFzIGludAorICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGZpcnN0UmVzdWx0Wyd0YXNrSWQnXSksIHBhcnNlSW50KHNl
Y29uZFJlc3VsdFsndGFza0lkJ10pKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChb
QW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0g
cmVzdWx0OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwg
J290aGVyIHRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rh
c2submFtZSgpLCAnb3RoZXIgdGFzaycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIFRlc3RHcm91cC5zb3J0QnlOYW1lKHRlc3RH
cm91cHMpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1swXS5uYW1lKCks
ICd0ZXN0MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMF0ucmVwZXRp
dGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgIGxldCByZXF1
ZXN0cyA9IHRlc3RHcm91cHNbMF0uYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGxldCBzZXQwID0gcmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9v
dHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9t
Um9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzWzFdLm5hbWUoKSwgJ3Rlc3QyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3
ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21S
b290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjMnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHNbMV0ubmFtZSgpLCAndGVzdDInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzWzFdLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIHJlcXVlc3Rz
ID0gdGVzdEdyb3Vwc1sxXS5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICAgICAgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3Rz
KCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJv
b3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0
b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCmluZGV4IDQzYjQwN2Vj
YTlkZDAyOWRhYWFiODQ2MzdhNmRjMTI1NjNkZjE1OTEuLmI1N2EwMjExZTY4N2Y5YTNjNzI3NGM3
NzQ5YjZkNWUxZmZhYWRhMWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1
bi1zdGF0dXMuanMKQEAgLTM5LDEzICszOSwxMyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBp
L3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVp
bGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNo
ZSddLCAxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9u
X2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1b
J21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
Um93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsK
ICAgICAgICAgICAgIGlkID0gcnVuUm93c1swXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CkBAIC01MywxMCArNTMsMTAgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVu
LXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigo
cnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDEx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRf
Y2FjaGUnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2Vk
X291dGxpZXInXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1b
J21lYW5fY2FjaGUnXSwgMTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJv
d3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTY1LDExICs2NSwxMSBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQt
YXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
QnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2Vk
X291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJv
d3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBd
WydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgUmVtb3RlQVBJLmNsZWFyQ29va2llcygpOwpAQCAtNzcsNyArNzcsNyBAQCBkZXNjcmli
ZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTg1LDE4ICs4NSwxOCBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1y
dW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJl
cG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwog
ICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1b
J21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
Um93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBSZW1vdGVBUEkucG9zdEpTT05XaXRoU3RhdHVzKCcvcHJpdmls
ZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMnLCB7dG9rZW46ICdiYWQnfSk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTA1LDIzICsxMDUsMjMgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0
YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQo
cmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
UmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJl
dHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBydW5Sb3dzWzBdWydpZCddLCAnbWFya2VkT3V0
bGllcic6IHRydWV9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwg
dHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBk
YXRlLXJ1bi1zdGF0dXMnLCB7J3J1bic6IHJ1blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVy
JzogZmFsc2V9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZh
bHNlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3Jv
dXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCmluZGV4IDAyMTE2ZWQ4ZDhiYmU5
MjBkYmYxOGQ2MTdlOGY5NTkzMmM3ODM1OTkuLmFiYTBmMjUwYzgzNDUwMDBiMjkwY2JmNTc3N2Nm
ZjU1YWIwODI0ZTYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUt
dGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtNzMsMTMgKzczLDEzIEBAIGFzeW5jIGZ1bmN0aW9uIGNy
ZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2
MjMiXSkKICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0p
OwogICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJl
dmlzaW9uKTsKICAgICBhd2FpdCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3Ro
ZXJSZXBvcnRXaXRoUmV2aXNpb24pOwotICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2godHJ1ZSk7CiAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5
UGF0aChbJ3NvbWUgdGVzdCcsICd0ZXN0MSddKTsKICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRm
b3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKICAgICBjb25zdCBjb25maWdSb3cgPSBh
d2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRl
c3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgY29u
c3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKIAotICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIp
OworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgIGNvbnN0
IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlz
aXMtdGFzaycsIHsKICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgc3RhcnRSdW46IHRlc3RS
dW5zWzBdWydpZCddLApAQCAtMTY1LDIwICsxNjUsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2Vy
dGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29u
c3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlv
blNlbnRBdCgpKTsKIAogICAgICAgICBjb25zdCBub3RpZmljYXRpb25TZW50QXQgPSBuZXcgRGF0
ZTsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3Qt
Z3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbmVlZHNOb3RpZmljYXRpb246IGZhbHNl
LCBub3RpZmljYXRpb25TZW50QXQ6IG5vdGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpfSk7
CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZv
clRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRh
dGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBz
WzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCkudG9JU09TdHJpbmcoKSwgbm90aWZp
Y2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBk
YXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlvblNlbnRBdCgpLnRvSVNP
U3RyaW5nKCksIG5vdGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpKTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgIm5lZWRzX25vdGlmaWNhdGlvbiIgZmll
bGQgdG8gdHJ1ZScsIGFzeW5jICgpID0+IHsKQEAgLTE5MCwxOCArMTkwLDE4IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAg
ICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0
Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOwogICAgICAgICBhc3NlcnQub2soIWdy
b3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91cElk
LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91
cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVl
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmlj
YXRpb24oKSwgdHJ1ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2Vu
dEF0KCkpOwogICAgIH0pOwogCkBAIC0yMTQsMTAgKzIxNCwxMCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3Qg
aW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAgICAgICAgIGFzc2VydC5vaygh
Z3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAgICAgfSk7CkBAIC0yMzEsMjIgKzIzMSwy
MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJ
ZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7
CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3Qt
Z3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1
ZX0pOwogCiAgICAgICAgIGxldCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91
cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKIAogICAg
ICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcs
IHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiBmYWxzZX0pOwog
CiAgICAgICAgIHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vw
cy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVw
ZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0
ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAgICAgfSk7CiAKICAg
ICBpdCgnc2hvdWxkIGNsZWFyICJtYXlfbmVlZF9tb3JlX3JlcXVlc3RzIiB3aGVuIGhpZGluZyBh
IHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CkBAIC0yNTgsMjIgKzI1OCwyMiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAg
ICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3Vs
dFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAKICAgICAgICAg
YXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3Jv
dXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1ZX0pOwogCiAgICAg
ICAgIGxldCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1
bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVl
ZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0
ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRH
cm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKIAogICAgICAgICBhd2FpdCBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5z
ZXJ0ZWRHcm91cElkLCBoaWRkZW46IHRydWV9KTsKIAogICAgICAgICB1cGRhdGVkR3JvdXBzID0g
YXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmlzSGlkZGVuKCksIHRydWUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJl
cXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91
cHNbMF0uaXNIaWRkZW4oKSwgdHJ1ZSk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5q
cwppbmRleCBlMGY4YTI4ZGZlNjEzMTI4OWE5MjYxNjlkMTE4OTE2OTBiZGZhZmIwLi40N2U5Mzhh
MjMzNDk4OTI3NGExYjkwYjdlYWQ3MTQ5YTdkMDk4NGQ5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRl
c3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKQEAgLTI3LDcgKzI3LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge30sIHt1c2VGb3Jt
RGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VG
b3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxlU2l6ZUxpbWl0RXhj
ZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdGaWxl
U2l6ZUxpbWl0RXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9
KTsKQEAgLTUxLDE1ICs1MSwxNSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2Vb
J3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2Fk
ZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlLnNpemUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZS5maWxlbmFtZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkw
NWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZS5zaGEyNTYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUu
aWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNp
emUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlLnNpemUp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29t
ZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1l
LCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdi
MjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTc5LDE2ICs3OSwxNiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlMiA9
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RB
bGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxl
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlMS5zaXpl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZp
bGUxLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lv
biwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUy
NTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2
ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2Fk
ZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh1cGxv
YWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sw
XS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUp
LCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZl
YzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0
YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBs
b2FkZWRGaWxlMS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTA4LDE2ICsx
MDgsMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNwb25zZVsndXBsb2FkZWRGaWxl
J107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdp
ZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmlsZTIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdk
NmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxl
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVk
RmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dz
WzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxl
MS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFt
ZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5m
aWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJl
ZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOSwyNiArMTM5LDI2IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxv
YWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJu
IGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigo
cm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHVwbG9hZGVkRmlsZTEuaWQs
IHVwbG9hZGVkRmlsZTIuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUx
LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmlkLCB1cGxvYWRlZEZpbGUy
LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUxLmlk
LCB1cGxvYWRlZEZpbGUyLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwg
cGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMV0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIuaWQpKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCB1cGxvYWRlZEZp
bGUyLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMi5maWxl
bmFtZSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5N
QiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUs
IHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5z
aXplLCB1cGxvYWRlZEZpbGUyLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uc2l6ZSwgcm93c1sxXS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3
N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNo
YTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwg
cGFyc2VJbnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMi5zaXpl
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaXplLCByb3dzWzFd
LnNpemUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAn
NTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFj
ZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2
LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTIuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1Niwgcm93c1sxXS5zaGEyNTYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZXh0ZW5zaW9uLCAnLmRhdCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDEyICsxNzAsMTIgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycs
ICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0u
c2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLm90aGVyLnRhci5nejUnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50YXIuZ3o1Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAy
NTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEw
MjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLm1pbWUs
ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFyLmd6NScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2
MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk1LDEzICsxOTUsMTMgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxl
cycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHJv
d3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sx
XS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5m
aWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sy
XS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxl
bmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93
c1swXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KQog
ICAgIH0pOwogCkBAIC0yMTcsMTQgKzIxNywxNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZv
cm1EYXRhOiB0cnVlfSk7CiAgICAgICAgIH0KICAgICAgICAgbGV0IHJvd3MgPSBhd2FpdCBkYi5z
ZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgc3BsaXRDb3VudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0
aCwgc3BsaXRDb3VudCk7CiAKICAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgVGVtcG9yYXJ5
RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZU9mU2l6ZUluTUIoJ2xpbWl0LmRhdCcsIGxpbWl0SW5NQiwg
J2EnKTsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZp
bGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSk7CiAgICAgICAgIHJv
d3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgc3BsaXRDb3VudCArIDEpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKICAgICAgICAgY29uc3QgZGVs
ZXRlZEZpbGVzID0gcm93cy5maWx0ZXIoKHJvdykgPT4gcm93WydkZWxldGVkX2F0J10pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoZGVsZXRlZEZpbGVzLmxlbmd0aCwgMTYpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZGVsZXRlZEZpbGVzLmxlbmd0aCwgMTYpOwogICAgIH0pOwogCiAgICAg
aXQoJ3Nob3VsZCBub3QgcHJ1bmUgZmlsZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCcsIGFzeW5j
ICgpID0+IHsKQEAgLTI4MSw3ICsyODEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
bG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3Jt
RGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVk
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdGaWxlU2l6
ZVF1b3RhRXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTMxMiwxMyArMzEyLDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSku
dGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRj
aCcpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLnBh
dGNoJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5k
YXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwg
J290aGVyLnBhdGNoJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5k
ZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJd
LmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MzQ2LDEzICszNDYsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVu
KChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAncm9vdC50YXIuZ3onKTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAncm9vdC50
YXIuZ3onKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzFdLmRlbGV0
ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZmls
ZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zODIs
NyArMzgyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1
cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJyk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0
aW9ucy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L2NvbW1vbi1vcGVyYXRpb25zLmpzCmluZGV4IDU4YjUxMTMxMTliZjYxMGM0N2UyODQ3ZmEwNzMw
N2UxZTVhZjJmNmYuLmU5MDY1YzQ0NDkwN2RlNDI2MmQ2N2ZjZTY0NDRkMTcwYTQ5NDM0YmQgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L2NvbW1vbi1vcGVyYXRpb25zLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzCkBAIC0yNyw2ICsyNyw3IEBA
IGZ1bmN0aW9uIHByZXBhcmVTZXJ2ZXJUZXN0KHRlc3QsIHByaXZpbGVnZWRBUElUeXBlPSdicm93
c2VyJykKICAgICAgICAgaWYgKHR5cGVvZihNb2NrRGF0YSkgIT0gJ3VuZGVmaW5lZCcpCiAgICAg
ICAgICAgICBNb2NrRGF0YS5yZXNldFYzTW9kZWxzKCk7CiAgICAgICAgIGF3YWl0IGRhdGFiYXNl
LmNvbm5lY3Qoe2tlZXBBbGl2ZTogdHJ1ZX0pOworICAgICAgICBhd2FpdCBkYXRhYmFzZS5jbGVh
ckFsbFRhYmxlcygpOwogICAgICAgICBpZiAocHJpdmlsZWdlZEFQSVR5cGUgPT09ICdicm93c2Vy
JykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29uc3QgZW50cnkgPSBhd2FpdCBUZXN0
U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Rmlyc3RSb3coJ2J1aWxkX3NsYXZlcycsIHtuYW1lOiAn
dGVzdCd9KTsKQEAgLTU2LDcgKzU3LDcgQEAgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0VGhyb3dzKGV4
cGVjdGVkRXJyb3IsIHRlc3RGdW5jdGlvbikKICAgICAgICAgICAgIGF3YWl0IHRlc3RGdW5jdGlv
bigpCiAgICAgfSBjYXRjaChlcnJvcikgewogICAgICAgICB0aHJvd25FeGNlcHRpb24gPSB0cnVl
OwotICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3IpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3IpOwogICAgIH0KICAgICBhc3Nl
cnQub2sodGhyb3duRXhjZXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUu
anMKaW5kZXggN2I4NGIyNGJmZTZhODgzN2VlYzc0MjdjODc2MGU0YjIwMWRkYjBjNy4uMjYyYjJm
ZDRlMTcyMGI2MzU2NjhiNjZlMGQ4ZWI4NzVkMDg2MDg5ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVt
cG9yYXJ5LWZpbGUuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgVGVtcG9yYXJ5RmlsZSB7CiAg
ICAgICAgIGxldCBtZWdhYnl0ZVN0cmluZyA9IGNoYXJhY3RlclRvRmlsbDsKICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKQogICAgICAgICAgICAgbWVnYWJ5dGVTdHJpbmcgPSBt
ZWdhYnl0ZVN0cmluZyArIG1lZ2FieXRlU3RyaW5nOwotICAgICAgICBhc3NlcnQuZXF1YWwobWVn
YWJ5dGVTdHJpbmcubGVuZ3RoLCAxMDI0ICogMTAyNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEwMjQgKiAxMDI0KTsKIAogICAgICAgICBsZXQg
Y29udGVudCA9ICcnOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemVJbk1COyBpKysp
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy90ZXN0LXNlcnZlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzCmluZGV4IGY0MDA3MzkzZTRmYWNmMzFhYzVlODYy
NDkzMjYyMjkxZDZhMjg1ZjkuLjVhZTVlNmYxZmI4ZTA4MmZlYTM0MWE3ZTQxOGFiZDkxMTc2MTYw
NmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzCkBAIC0yOSwyNSArMjksNTIgQEAgY2xh
c3MgVGVzdFNlcnZlciB7CiAgICAgICAgIHRoaXMuX2RhdGFiYXNlUG9ydCA9IENvbmZpZy52YWx1
ZSgnZGF0YWJhc2UucG9ydCcpOwogICAgICAgICB0aGlzLl9kYXRhYmFzZSA9IG51bGw7CiAKLSAg
ICAgICAgdGhpcy5fcmVtb3RlID0gbnVsbAorICAgICAgICB0aGlzLl9leGlzdGluZ0h0dHBDb25m
aWcgPSBDb25maWcudmFsdWUoJ3Rlc3RTZXJ2ZXIuaHR0cCcpOworICAgICAgICB0aGlzLl9leGlz
dGluZ0RhdGFiYXNlQ29uZmlnID0gQ29uZmlnLnZhbHVlKCd0ZXN0U2VydmVyLmRhdGFiYXNlJyk7
CisKKyAgICAgICAgdGhpcy5fcmVtb3RlID0gbnVsbDsKICAgICB9CiAKICAgICBzdGFydCgpCiAg
ICAgewotICAgICAgICBsZXQgdGVzdENvbmZpZ0NvbnRlbnQgPSB0aGlzLnRlc3RDb25maWcoKTsK
LSAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLl90ZXN0Q29uZmlnUGF0aCwgSlNPTi5zdHJp
bmdpZnkodGVzdENvbmZpZ0NvbnRlbnQsIG51bGwsICcgICAgJykpOworICAgICAgICBpZiAodGhp
cy5fZXhpc3RpbmdIdHRwQ29uZmlnKQorICAgICAgICAgICAgdGhpcy5fdXNlRXhpc2l0aW5nSHR0
cFNlcnZlcih0aGlzLl9leGlzdGluZ0h0dHBDb25maWcpOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIGxldCB0ZXN0Q29uZmlnQ29udGVudCA9IHRoaXMudGVzdENvbmZpZygpOworICAgICAg
ICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLl90ZXN0Q29uZmlnUGF0aCwgSlNPTi5zdHJpbmdp
ZnkodGVzdENvbmZpZ0NvbnRlbnQsIG51bGwsICcgICAgJykpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBpZiAodGhpcy5fZXhpc3RpbmdEYXRhYmFzZUNvbmZpZykKKyAgICAgICAgICAg
IHRoaXMuX3VzZUV4aXN0aW5nRGF0YWJhc2VTZXJ2ZXIodGhpcy5fZXhpc3RpbmdEYXRhYmFzZUNv
bmZpZyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5fZW5zdXJlVGVzdERhdGFi
YXNlKCk7CisgICAgICAgICAgICB0aGlzLl9lbnN1cmVEYXRhRGlyZWN0b3J5KCk7CisgICAgICAg
IH0KIAotICAgICAgICB0aGlzLl9lbnN1cmVUZXN0RGF0YWJhc2UoKTsKLSAgICAgICAgdGhpcy5f
ZW5zdXJlRGF0YURpcmVjdG9yeSgpOworICAgICAgICBpZiAoIXRoaXMuX2V4aXN0aW5nSHR0cENv
bmZpZykKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEFwYWNoZSgpOworICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpOworICAgIH0KIAotICAgICAgICByZXR1cm4gdGhp
cy5fc3RhcnRBcGFjaGUoKTsKKyAgICBfdXNlRXhpc2l0aW5nSHR0cFNlcnZlcihzZXJ2ZXIpIHsK
KyAgICAgICAgdGhpcy5fc2VydmVyID0gc2VydmVyOworICAgICAgICB0aGlzLl9yZW1vdGUgPSBu
ZXcgUmVtb3RlQVBJKHRoaXMuX3NlcnZlcik7CisgICAgfQorCisgICAgX3VzZUV4aXN0aW5nRGF0
YWJhc2VTZXJ2ZXIoc2VydmVyX2NvbmZpZykgeworICAgICAgICB0aGlzLl9kYXRhYmFzZVVzZXIg
PXNlcnZlcl9jb25maWdbJ3VzZXJuYW1lJ107CisgICAgICAgIHRoaXMuX2RhdGFiYXNlSG9zdCA9
c2VydmVyX2NvbmZpZ1snaG9zdCddOworICAgICAgICB0aGlzLl9kYXRhYmFzZVBvcnQgPXNlcnZl
cl9jb25maWdbJ3BvcnQnXTsKKyAgICAgICAgdGhpcy5fZGF0YWJhc2VQYXNzd29yZCA9IHNlcnZl
cl9jb25maWdbJ3Bhc3N3b3JkJ107CiAgICAgfQogCiAgICAgc3RvcCgpCiAgICAgewotICAgICAg
ICB0aGlzLl9yZXN0b3JlRGF0YURpcmVjdG9yeSgpOwotCi0gICAgICAgIHJldHVybiB0aGlzLl9z
dG9wQXBhY2hlKCk7CisgICAgICAgIGlmICghdGhpcy5fZXhpc3RpbmdEYXRhYmFzZUNvbmZpZykK
KyAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVEYXRhRGlyZWN0b3J5KCk7CisgICAgICAgIGlmICgh
dGhpcy5fZXhpc3RpbmdIdHRwQ29uZmlnKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3BB
cGFjaGUoKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTsKICAgICB9CiAK
ICAgICByZW1vdGVBUEkoKQpAQCAtNjAsMzYgKzg3LDQ0IEBAIGNsYXNzIFRlc3RTZXJ2ZXIgewog
ICAgIHsKICAgICAgICAgYXNzZXJ0KHRoaXMuX2RhdGFiYXNlTmFtZSk7CiAgICAgICAgIGlmICgh
dGhpcy5fZGF0YWJhc2UpCi0gICAgICAgICAgICB0aGlzLl9kYXRhYmFzZSA9IG5ldyBEYXRhYmFz
ZSh0aGlzLl9kYXRhYmFzZU5hbWUpOworICAgICAgICAgICAgdGhpcy5fZGF0YWJhc2UgPSBuZXcg
RGF0YWJhc2UodGhpcy5fZGF0YWJhc2VOYW1lLCB0aGlzLl9kYXRhYmFzZVVzZXIsIHRoaXMuX2Rh
dGFiYXNlUGFzc3dvcmQsIHRoaXMuX2RhdGFiYXNlSG9zdCwgdGhpcy5fZGF0YWJhc2VQb3J0KTsK
ICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFiYXNlOwogICAgIH0KIAorICAgIHNlcnZlckNvbmZp
ZygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2VydmVyOworICAgIH0KKwogICAgIHRl
c3RDb25maWcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICdzaXRlVGl0
bGUnOiAnVGVzdCBEYXNoYm9hcmQnLAotICAgICAgICAgICAgJ2RlYnVnJzogdHJ1ZSwKLSAgICAg
ICAgICAgICdqc29uQ2FjaGVNYXhBZ2UnOiA2MDAsCi0gICAgICAgICAgICAnZGF0YURpcmVjdG9y
eSc6IENvbmZpZy52YWx1ZSgnZGF0YURpcmVjdG9yeScpLAotICAgICAgICAgICAgJ2RhdGFiYXNl
JzogewotICAgICAgICAgICAgICAgICdob3N0JzogQ29uZmlnLnZhbHVlKCdkYXRhYmFzZS5ob3N0
JyksCi0gICAgICAgICAgICAgICAgJ3BvcnQnOiBDb25maWcudmFsdWUoJ2RhdGFiYXNlLnBvcnQn
KSwKLSAgICAgICAgICAgICAgICAndXNlcm5hbWUnOiBDb25maWcudmFsdWUoJ2RhdGFiYXNlLnVz
ZXJuYW1lJyksCi0gICAgICAgICAgICAgICAgJ3Bhc3N3b3JkJzogQ29uZmlnLnZhbHVlKCdkYXRh
YmFzZS5wYXNzd29yZCcpLAotICAgICAgICAgICAgICAgICduYW1lJzogQ29uZmlnLnZhbHVlKCd0
ZXN0RGF0YWJhc2VOYW1lJyksCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgJ3VwbG9hZEZp
bGVMaW1pdEluTUInOiAyLAotICAgICAgICAgICAgJ3VwbG9hZFVzZXJRdW90YUluTUInOiA1LAot
ICAgICAgICAgICAgJ3VwbG9hZFRvdGFsUXVvdGFJbk1CJzogNywKLSAgICAgICAgICAgICd1cGxv
YWREaXJlY3RvcnknOiBDb25maWcudmFsdWUoJ2RhdGFEaXJlY3RvcnknKSArICcvdXBsb2FkZWQn
LAotICAgICAgICAgICAgJ3VuaXZlcnNhbFNsYXZlUGFzc3dvcmQnOiBudWxsLAotICAgICAgICAg
ICAgJ21haW50ZW5hbmNlTW9kZSc6IGZhbHNlLAotICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6
IFsyMDAwLCAxLCAxLCAwLCAwXSwKLSAgICAgICAgICAgICdjbHVzdGVyU2l6ZSc6IFswLCAyLCAw
XSwKLSAgICAgICAgICAgICdkZWZhdWx0RGFzaGJvYXJkJzogW1tdXSwKLSAgICAgICAgICAgICdk
YXNoYm9hcmRzJzoge30sCi0gICAgICAgICAgICAnc3VtbWFyeVBhZ2VzJzogW10KLSAgICAgICAg
fQorICAgICAgICBpZiAodGhpcy5fZXhpc3RpbmdIdHRwQ29uZmlnKQorICAgICAgICAgICAgcmV0
dXJuIENvbmZpZy5hbGwoKTsKKyAgICAgICAgZWxzZSAKKyAgICAgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICAgICAgJ3NpdGVUaXRsZSc6ICdUZXN0IERhc2hib2FyZCcsCisgICAgICAgICAg
ICAgICAgJ2RlYnVnJzogdHJ1ZSwKKyAgICAgICAgICAgICAgICAnanNvbkNhY2hlTWF4QWdlJzog
NjAwLAorICAgICAgICAgICAgICAgICdkYXRhRGlyZWN0b3J5JzogQ29uZmlnLnZhbHVlKCdkYXRh
RGlyZWN0b3J5JyksCisgICAgICAgICAgICAgICAgJ2RhdGFiYXNlJzogeworICAgICAgICAgICAg
ICAgICAgICAnaG9zdCc6IENvbmZpZy52YWx1ZSgnZGF0YWJhc2UuaG9zdCcpLAorICAgICAgICAg
ICAgICAgICAgICAncG9ydCc6IENvbmZpZy52YWx1ZSgnZGF0YWJhc2UucG9ydCcpLAorICAgICAg
ICAgICAgICAgICAgICAndXNlcm5hbWUnOiBDb25maWcudmFsdWUoJ2RhdGFiYXNlLnVzZXJuYW1l
JyksCisgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZCc6IENvbmZpZy52YWx1ZSgnZGF0YWJh
c2UucGFzc3dvcmQnKSwKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiBDb25maWcudmFsdWUo
J3Rlc3REYXRhYmFzZU5hbWUnKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICd1cGxvYWRGaWxlTGltaXRJbk1CJzogMiwKKyAgICAgICAgICAgICAgICAndXBsb2FkVXNlclF1
b3RhSW5NQic6IDUsCisgICAgICAgICAgICAgICAgJ3VwbG9hZFRvdGFsUXVvdGFJbk1CJzogNywK
KyAgICAgICAgICAgICAgICAndXBsb2FkRGlyZWN0b3J5JzogQ29uZmlnLnZhbHVlKCdkYXRhRGly
ZWN0b3J5JykgKyAnL3VwbG9hZGVkJywKKyAgICAgICAgICAgICAgICAndW5pdmVyc2FsU2xhdmVQ
YXNzd29yZCc6IG51bGwsCisgICAgICAgICAgICAgICAgJ21haW50ZW5hbmNlTW9kZSc6IGZhbHNl
LAorICAgICAgICAgICAgICAgICdjbHVzdGVyU3RhcnQnOiBbMjAwMCwgMSwgMSwgMCwgMF0sCisg
ICAgICAgICAgICAgICAgJ2NsdXN0ZXJTaXplJzogWzAsIDIsIDBdLAorICAgICAgICAgICAgICAg
ICdkZWZhdWx0RGFzaGJvYXJkJzogW1tdXSwKKyAgICAgICAgICAgICAgICAnZGFzaGJvYXJkcyc6
IHt9LAorICAgICAgICAgICAgICAgICdzdW1tYXJ5UGFnZXMnOiBbXQorICAgICAgICAgICAgfQog
ICAgIH0KIAogICAgIF9lbnN1cmVEYXRhRGlyZWN0b3J5KCkKQEAgLTExNCw2ICsxNDksOCBAQCBj
bGFzcyBUZXN0U2VydmVyIHsKIAogICAgIGNsZWFuRGF0YURpcmVjdG9yeSgpCiAgICAgeworICAg
ICAgICBpZiAodGhpcy5fZXhpc3RpbmdEYXRhYmFzZUNvbmZpZykKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgbGV0IGZpbGVMaXN0ID0gZnMucmVhZGRpclN5bmModGhpcy5fZGF0YURpcmVj
dG9yeSk7CiAgICAgICAgIGZvciAobGV0IGZpbGVuYW1lIG9mIGZpbGVMaXN0KSB7CiAgICAgICAg
ICAgICBpZiAoZmlsZW5hbWUgIT0gJ3VwbG9hZGVkJykKQEAgLTE0NywxMSArMTg0LDEzIEBAIGNs
YXNzIFRlc3RTZXJ2ZXIgewogICAgICAgICAgICAgICAgIHtzdGRpbzogWydpZ25vcmUnLCAnaWdu
b3JlJywgJ2lnbm9yZSddfSk7CiAgICAgICAgIH0KICAgICB9Ci0KICAgICBfZXhlY3V0ZVBnc3Fs
Q29tbWFuZChjb21tYW5kLCBhcmdzLCBvcHRpb25zKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlz
Ll9wZ3NxbERpcmVjdG9yeSkKICAgICAgICAgICAgIHRoaXMuX3Bnc3FsRGlyZWN0b3J5ID0gdGhp
cy5fZGV0ZXJtaW5lUGdzcWxEaXJlY3RvcnkoKTsKKyAgICAgICAgb3B0aW9ucy5lbnYgPSB7Cisg
ICAgICAgICAgICBQR1BBU1NXT1JEOiBDb25maWcudmFsdWUoJ2RhdGFiYXNlLnBhc3N3b3JkJyks
CisgICAgICAgIH0KICAgICAgICAgY2hpbGRQcm9jZXNzLmV4ZWNGaWxlU3luYyhwYXRoLnJlc29s
dmUodGhpcy5fcGdzcWxEaXJlY3RvcnksIGNvbW1hbmQpLAogICAgICAgICAgICAgW3RoaXMuX2Rh
dGFiYXNlTmFtZSwgJy0taG9zdCcsIHRoaXMuX2RhdGFiYXNlSG9zdCwgJy0tcG9ydCcsIHRoaXMu
X2RhdGFiYXNlUG9ydF0uY29uY2F0KGFyZ3MgfHwgW10pLCBvcHRpb25zKTsKICAgICB9CkBAIC0x
NTksNiArMTk4LDkgQEAgY2xhc3MgVGVzdFNlcnZlciB7CiAgICAgX2RldGVybWluZVBnc3FsRGly
ZWN0b3J5KCkKICAgICB7CiAgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsZXQgcHNxbExvY2F0
b24gPSBDb25maWcudmFsdWUoJ3BzcWxQYXRoJyk7CisgICAgICAgICAgICBpZiAocHNxbExvY2F0
b24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHBzcWxMb2NhdG9uOwogICAgICAgICAgICAgbGV0
IGluaXRkYkxvY2F0aW9uID0gY2hpbGRQcm9jZXNzLmV4ZWNGaWxlU3luYygnd2hpY2gnLCBbJ2lu
aXRkYiddKS50b1N0cmluZygpOwogICAgICAgICAgICAgcmV0dXJuIHBhdGguZGlybmFtZShpbml0
ZGJMb2NhdGlvbik7CiAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CkBAIC0yNTEsOCArMjkzLDEw
IEBAIGNsYXNzIFRlc3RTZXJ2ZXIgewogCiAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgdGhpcy50aW1lb3V0KDEwMDAwKTsKLSAgICAgICAgICAgIHNlbGYuaW5p
dERhdGFiYXNlKCk7Ci0gICAgICAgICAgICBzZWxmLmNsZWFuRGF0YURpcmVjdG9yeSgpOworICAg
ICAgICAgICAgaWYgKCFzZWxmLl9leGlzdGluZ0RhdGFiYXNlQ29uZmlnKSB7CisgICAgICAgICAg
ICAgICAgc2VsZi5pbml0RGF0YWJhc2UoKTsKKyAgICAgICAgICAgICAgICBzZWxmLmNsZWFuRGF0
YURpcmVjdG9yeSgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgb3JpZ2luYWxSZW1vdGUg
PSBnbG9iYWwuUmVtb3RlQVBJOwogICAgICAgICAgICAgZ2xvYmFsLlJlbW90ZUFQSSA9IHNlbGYu
X3JlbW90ZTsKICAgICAgICAgICAgIHNlbGYuX3JlbW90ZS5jbGVhckNvb2tpZXMoKTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRi
b3QtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IDYwNGRhNzM0
ZGEwY2UzYjBjZWMwYjA5NWFmZjkwMTVjZGQ5NzcxZDkuLmQ4Y2MxNDZiZjk2YWQ4NWVjYjYxODhh
YTE3ZTRhMjljMjYxNmRmODcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2Vy
YWJsZS10ZXN0cy5qcwpAQCAtMTEsOCArMTEsOCBAQCBjb25zdCBNb2NrTG9nZ2VyID0gcmVxdWly
ZSgnLi9yZXNvdXJjZXMvbW9jay1sb2dnZXIuanMnKS5Nb2NrTG9nZ2VyOwogCiBmdW5jdGlvbiBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0LCBtZXRob2QsIHVybCwgY29udGVudCkKIHsK
LSAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3QudXJsLCB1cmwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1l
dGhvZCwgbWV0aG9kKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7
CiAgICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnQpOwogfQogCkBAIC0yOSw3ICsyOSw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICBsZXQgc3luY1By
b21pc2U7CiAgICAgICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGIsIFsnY29t
cGxldGVkJywgJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgICAg
IHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0Nv
bmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0g
bmV3IE1vY2tMb2dnZXI7CkBAIC00MCw0NSArNDAsNDUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxk
cyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGRE
YXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRh
LCB7J2lkJzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6Ci0gICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1
QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogNzAyLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTEnfX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRh
LCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKKyAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKS50
cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVs
ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTg2LDcgKzg2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKTsKICAgICAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYiwgWydjb21wbGV0ZWQnLCAncnVubmluZycsICdw
ZW5kaW5nJywgJ3BlbmRpbmcnXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNo
KHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0
IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7
CiAgICAgICAgICAgICAgICAgbGV0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwpAQCAtOTcsMzgg
Kzk3LDM4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsn
YnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTEzNiw3ICsxMzYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAg
ICAgICAgICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFk
ZE1vY2tEYXRhKGRiLCBbJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcn
XSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gTW9ja0Rh
dGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCk7CiAgICAgICAgICAgICAgICAg
Y29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CkBAIC0xNDcsNzAgKzE0Nyw3MCBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUg
YnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6
IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
VXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hG
b3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMo
KS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzM4
LDcgKzMzOCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAg
ICAgICBsZXQgc3luY1Byb21pc2U7CiAgICAgICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9j
a0RhdGEoZGIsIFsncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2godHJ1ZSk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgY29uZmlnID0gTW9ja0RhdGEubW9j
a1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCk7CiAgICAgICAgICAgICAgICAgbGV0IGxv
Z2dlciA9IG5ldyBNb2NrTG9nZ2VyOwpAQCAtMzQ5LDYyICszNDksNjIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
N10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRS
ZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0
aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVu
Z3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTQxMiw3ICs0MTIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpOwogICAgICAgICAgICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tEYXRhLmFkZE1vY2tEYXRhKGRiLCBbJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywg
J3BlbmRpbmcnXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0
LmZldGNoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CkBAIC00MjMsNzAgKzQyMyw3
MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtN
b2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1
aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1Qn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXIt
MScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2
MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZl
KE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWls
ZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10u
cmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0
YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1i
dWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
ZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMTIzKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC00OTQsNyArNDk0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKICAgICAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
RGF0YS5hZGRNb2NrRGF0YShkYiwgWydzY2hlZHVsZWQnLCAncGVuZGluZycsICdwZW5kaW5nJywg
J3BlbmRpbmcnXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0
LmZldGNoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IGNvbmZpZyA9
IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAg
ICAgICAgICAgbGV0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwpAQCAtNTA1LDUwICs1MDUsNTAg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6
IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRj
aEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVy
cygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1OSw3ICs1NTks
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYiwgWydjb21wbGV0ZWQnLCAncGVuZGlu
ZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuYWRk
QW5vdGhlck1vY2tUZXN0R3JvdXAoZGIsIFsncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcn
LCAncGVuZGluZyddKQogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlm
ZXN0LmZldGNoKHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1
aWxkZXJzKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7
CkBAIC01NzAsODYgKzU3MCw4NiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVp
bGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92
Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6
ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6
ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAg
ICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21l
LWJ1aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRh
LmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MTAs
IGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWls
ZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQ
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVx
dWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhU
d29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSku
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5u
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTY2MCw3ICs2NjAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYiwgWydydW5uaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pLAogICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmFkZEFub3RoZXJNb2NrVGVzdEdyb3VwKGRiLCBbJ3J1bm5pbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnXSkKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgICAgIHJl
dHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhUd29CdWlsZGVycygpOwogICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBN
b2NrTG9nZ2VyOwpAQCAtNjcxLDkxICs2NzEsOTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxk
UmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0
aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVp
bGRlci0yJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0y
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5Mjcz
NicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9y
Y2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
ZGF0YSwgeydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAn
NzExJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAg
ICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
cmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzExLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5i
dWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAxLCBi
dWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5
XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRh
Lm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDEyNCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWls
ZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDEyNCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEn
LCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApAQCAtNzc2LDYwICs3NzYsNjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ubWV0aG9k
LCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDAn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAw
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAg
ICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWls
ZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4gc2V0VGltZW91dChyZXNvbHZlLCAxMCkpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgICAgICAgICAgcmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAg
ICAgcmVxdWVzdHNbNF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQ
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3lu
Y0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC04NDMsNyArODQzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGIsIFsnY29t
cGxldGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pLAogICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLmFkZEFub3RoZXJNb2NrVGVzdEdyb3VwKGRiLCBbJ2NvbXBsZXRlZCcsICdw
ZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKQogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RT
eW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKICAgICAgICAgICAgICAgICBjb25zdCBsb2dn
ZXIgPSBuZXcgTW9ja0xvZ2dlcjsKQEAgLTg1NCwyNyArODU0LDI3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAg
ICAgICAgICAgICAgICB7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksCiAgICAgICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAgICAgICAgICAg
ICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEw
fSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtODgzLDIwICs4
ODMsMjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCiAgICAgICAgICAg
ICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKICAgICAgICAg
ICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtOTA3
LDcgKzkwNyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAg
ICAgICBsZXQgc3luY1Byb21pc2U7CiAgICAgICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9j
a0RhdGEoZGIsIFsnZmFpbGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAg
ICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1v
Y2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAgICAgICAgICAgY29u
c3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CkBAIC05MTgsNTggKzkxOCw1OCBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6
IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdm
YWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5
bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTk3Nyw3ICs5NzcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgbGV0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRiLCBbJ3NjaGVkdWxlZCcsICdwZW5kaW5nJywg
J3BlbmRpbmcnLCAncGVuZGluZyddKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICByZXR1
cm4gTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0
Y2godHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRl
cigpOwogICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwpAQCAt
OTg4LDQyICs5ODgsNDIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIApAQCAtMTAzNCw3ICsxMDM0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoZGIsIFsncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKSwK
ICAgICAgICAgICAgICAgICBNb2NrRGF0YS5hZGRBbm90aGVyTW9ja1Rlc3RHcm91cChkYiwgWydw
ZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10sICdybml3YScpLAogICAg
ICAgICAgICAgXSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0
LmZldGNoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKICAgICAg
ICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKQEAgLTEwNDUsMjMgKzEw
NDUsMjMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNv
bWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKIAot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcxMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2sn
OiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcx
MCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAg
ICAgICAgfSk7CkBAIC0xMDY5LDcgKzEwNjksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBpdCgnc2hvdWxkIHNraXAgdXBkYXRpbmcg
YSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCB3aG9zZSB0ZXN0IGdyb3VwIGhhcyBjb21wbGV0ZWQg
YW5kIG5vdCBsaXN0ZWQgaW4gYSB0cmlnZ2VyYWJsZScsIGFzeW5jICgpID0+IHsKICAgICAgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdj
b21wbGV0ZWQnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsK
LSAgICAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICBhd2FpdCBN
YW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRh
Lm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKTsKICAgICAgICAg
ICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgY29uc3Qgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwpAQCAt
MTA3OSw3NiArMTA3OSw3NiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAg
ICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMn
OiBbTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
IDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAg
ICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAg
ICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29t
cGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgcmV1c2UgdGhlIHJvb3RzIGZyb20gYSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVz
dCB3aXRoIHRoZSBzYW1lIGNvbW1pdCBzZXQnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2VydmVyLmRh
dGFiYXNlKCkpOwotICAgICAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAg
ICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKHRydWUpOwogICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigp
OwogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAg
ICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3
b3JkJ307CkBAIC0xMTU4LDgzICsxMTU4LDgzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJh
YmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgw
MCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFu
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgbGV0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGxldCBhbm90
aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJDb21taXRT
ZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29t
bWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAg
ICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRj
aEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAg
YnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBh
bm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBk
ZWZlciBzY2hlZHVsaW5nIGEgYnVpbGQgcmVxdWVzdCBpZiB0aGVyZSBpcyBhICJydW5uaW5nIiBi
dWlsZCByZXF1ZXN0IHdpdGggc2FtZSBjb21taXQgc2V0LCBidXQgc2hvdWxkIHNjaGVkdWxlIHRo
ZSBidWlsZCByZXF1ZXN0IGlmICJydW5uaW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2FtZSBjb21t
aXQgc2V0IGZhaWxzIGxhdGVyIG9uJywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQg
TW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLCAgWydydW5uaW5nJywgJ3NjaGVkdWxlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsKLSAgICAgICAgICAgIGF3
YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCh0
cnVlKTsKICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0Nv
bmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKTsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dl
ciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6
ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwpAQCAtMTI0NCwxMjEgKzEyNDQs
MTIyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRS
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5v
dGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVh
bHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KHsnYnVpbGRzJzogW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0p
XX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZl
KHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQgc3luY1Byb21p
c2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShN
b2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVyKCkudHJp
Z2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFu
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
e30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
cmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9y
Y2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogOTAwLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6Ci0gICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2
MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ3drLXBhdGNoJzogJ2h0dHA6Ly9sb2NhbGhvc3Q6
ODE4MC9hcGkvdXBsb2FkZWQtZmlsZS8xMDAudHh0JywKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdQT1NU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicp
OworICAgICAgICAgICAgY29uc3Qgc2VydmVyQ29uZmlnID0gVGVzdFNlcnZlci5zZXJ2ZXJDb25m
aWcoKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogJzkwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiBgJHtzZXJ2ZXJDb25maWcuc2NoZW1lfTov
LyR7c2VydmVyQ29uZmlnLmhvc3R9OiR7c2VydmVyQ29uZmlnLnBvcnR9L2FwaS91cGxvYWRlZC1m
aWxlLzEwMC50eHRgLAogICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlkJzogJzkwMCcs
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHJldXNlIHRoZSByb290IHdoZW4gYSBidWlsZCBy
ZXF1ZXN0IHdpdGggc2FtZSBjb21taXQgc2V0IGlzIGF2YWlhbGJsZSBidXQgdGhlIGJ1aWxkIHJl
cXVlc3QgaGFzIGJlZW4gc2NoZWR1bGVkJywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdh
aXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRh
YmFzZSgpKTsKLSAgICAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAg
ICBhd2FpdCBNYW5pZmVzdC5mZXRjaCh0cnVlKTsKICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKTsK
ICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAg
Y29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29y
ZCd9OwpAQCAtMTM2OCw3OCArMTM2OSw3OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwog
ICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDAp
OwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
KCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChh
bm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhl
ckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1p
dFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0Rh
dGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAx
fSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA5MDAsIGJ1aWxkZXJJZDogM30pXX0pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3
YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3lu
Y0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7
CiAgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMv
MTI0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHVwZGF0ZSBidWls
ZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIgdHJpZ2dlcmFibGUnLCBhc3luYyAoKSA9PiB7CkBAIC0x
NTMxLDI1ICsxNTMyLDI1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgbGV0IG1hY29zOwogICAgICAgICAgICAgbGV0IHdlYmtpdDsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYikudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOwogICAg
ICAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3Ro
LCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUu
YWxsKClbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUo
KSwgJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUu
ZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3Vy
YXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGdy
b3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFibGUu
cmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1l
KCksICd3ZWJraXQtc3ZuJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91
cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LXN2bicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0LCBtYWNvc10pOwogCiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gTW9j
a0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKICAgICAgICAgICAg
ICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsKQEAgLTE1ODQsMjIgKzE1ODUsMjIgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5h
bGwoKS5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRC
eUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAgICAgICAgICAgICAgICAgbGV0IHBsYXRmb3Jt
ID0gUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSk7CiAgICAgICAg
ICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3Vy
YXRpb24odGVzdCwgcGxhdGZvcm0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmln
Z2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQtd2Via2l0Jyk7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0
QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ0N1c3RvbSBSb290cycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmll
cygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29z
XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
MF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ0N1c3RvbSBSb290cycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmll
cygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVz
KCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVp
bGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0gWyBdOwpA
QCAtMTYxMSwxMyArMTYxMiwxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZl
dGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
Y29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmln
Z2VyYWJsZS5hbGwoKVswXS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5k
LXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzFdLnJl
cG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5u
YW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwog
ICAgICAgICAgICAgfSkKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNjMyLDEyICsxNjMzLDEy
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgY29uc3QgZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dl
cmFibGUuZ2V0QnVpbGRlck5hbWVUb0lETWFwKCk7CiAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAg
ICAgICAgICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1hcFByb21pc2UudGhlbigoYnVpbGRlck5hbWVU
b0lETWFwKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9J
RE1hcFsic29tZSBidWlsZGVyIl0sIDEpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEiXSwgMikKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIgMiJdLCAzKQotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbIm90aGVyIGJ1aWxk
ZXIiXSwgNCkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFw
WyJzb21lIHRlc3RlciJdLCA1KQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVy
TmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYpCisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIl0sIDEpCisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZS1i
dWlsZGVyLTEiXSwgMikKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRl
ck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIgMiJdLCAzKQorICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbIm90aGVyIGJ1aWxkZXIiXSwgNCkKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21l
IHRlc3RlciJdLCA1KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVy
TmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYpCiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMK
aW5kZXggN2IyZTUxN2MzMWYwNTU5YTEyMTNjMTEyYzQ5ZDRhYWRiZDI2NzFkMy4uNzBkMzVmYWU3
Yzc2NjUxMDNiNTQwMzA5MDNiZDA5ZjQ1MjcxZGIzNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVp
bGQtZmV0Y2hlci10ZXN0cy5qcwpAQCAtMTEwLDEzICsxMTAsMTMgQEAgZGVzY3JpYmUoJ09TQnVp
bGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgZGVzY3JpYmUoJ09TQnVpbGRlckZldGNoZXIu
X2NvbXB1dGVPcmRlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBjYWxjdWxhdGUgdGhl
IHJpZ2h0IG9yZGVyIGZvciBhIGdpdmVuIHZhbGlkIHJldmlzaW9uJywgKCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCdTaWVycmExNkQzMicpLCAxNjAz
MDAzMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIo
JzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVy
Ll9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMyMTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMXonKSwgMTYwMzAzMjEyNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNmQzMjFaJyks
IDE2MDMwMzIxMjYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVP
cmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAw
MzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9y
ZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMy
MScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVy
Ll9jb21wdXRlT3JkZXIoJzE2RDMyMXonKSwgMTYwMzAzMjEyNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIx
MjYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRl
cignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEyLjMgU2llcnJhMTZEMzInKSwgMTYw
MzAwMzIwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgYXNzZXJ0
aW9uIGVycm9yIHdoZW4gZ2l2ZW4gYSBpbnZhbGlkIHJldmlzaW9uJywgKCkgPT4gewpAQCAtMTQx
LDEzICsxNDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9taXNlID0gZmV0Y2hlci5fY29tbWl0c0Zv
ckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQxJ10sICdeXFwuKiQnKTsKIAogICAgICAg
ICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdidWlsZDEnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRSZXN1bHRzID0g
e2FsbFJldmlzaW9uczogWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwgY29tbWl0c1dp
dGhUZXN0YWJpbGl0eToge319OwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZSgnMTZEMzIxXG4xNkUzMjF6XG5cbjE2RjMyMScpOwogICAgICAg
ICAgICAgY29uc3QgYnVpbGRJbmZvID0gYXdhaXQgZmV0Y2hDb21taXRzUHJvbWlzZTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZXhwZWN0ZWRSZXN1bHRzLCBidWlsZEluZm8pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChleHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5m
byk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgdGhlIGNvbW1hbmQg
b3V0cHV0IGFzIEpTT04gZm9ybWF0JywgYXN5bmMgKCkgPT4gewpAQCAtMTU3LDEzICsxNTcsMTMg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBj
b25zdCBmZXRjaENvbW1pdHNQcm9taXNlID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1
aWxkcyhbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52
b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3Mu
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9j
a1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3Vi
cHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAg
ICAgICAgICAgICBjb25zdCBvdXRwdXRPYmplY3QgPSB7YWxsUmV2aXNpb25zOiBbIjE2RDMyMSIs
ICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0aFRlc3RhYmlsaXR5OiB7IjE2RDMyMSI6
ICJQYW5pYyJ9fTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3V0cHV0T2JqZWN0KSk7CiAgICAgICAgICAgICBj
b25zdCBidWlsZEluZm8gPSBhd2FpdCBmZXRjaENvbW1pdHNQcm9taXNlOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdXRwdXRPYmplY3QsIGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dE9iamVjdCwgYnVpbGRJbmZvKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE3Myw5ICsxNzMsOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9n
Z2VyOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwg
bnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCBy
ZXN1bHRzID0gZmV0Y2hlci5fY29tbWl0c1dpdGhpblJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoi
LCAiMTZGMzIxIl0sICJPU1giLCAxNjA0MDAwMDAwLCAxNjA2MDAwMDAwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYs
IHJldmlzaW9uOiAnMTZFMzIxeid9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
dWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNTAzMjEwMCwgcmV2aXNpb246
ICcxNkYzMjEnfSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7
cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXon
fSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBv
c2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAsIHJldmlzaW9uOiAnMTZGMzIxJ30pOwog
CiAgICAgICAgIH0pOwogCkBAIC0xODMsOCArMTgzLDggQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRj
aGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xv
Z2dlcjsKICAgICAgICAgICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30s
IG51bGwsIG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOwogICAgICAgICAgICAgY29uc3Qg
cmVzdWx0cyA9IGZldGNoZXIuX2NvbW1pdHNXaXRoaW5SYW5nZShbIjE2RDMyMSIsICIxNkUzMjF6
IiwgIjE2RjMyMSJdLCAiT1NYIiwgMTYwNDAwMDAwMCwgMTYwNTAwMDAwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2
LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lv
bjogJzE2RTMyMXonfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTYsMjQgKzE5Niwy
NCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIuX2FkZE93bmVkQ29tbWl0c0Zv
ckJ1aWxkKFtvc3hDb21taXQsIGFub3RoZXJPU1hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbiddKTsKIAogICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9u
UHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1
YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQp
KTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5yZXNldCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzMiddKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNz
Lmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMyJ10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdl
YktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBhZGRvd25lZENvbW1pdFByb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0c1swXVsncmVwb3NpdG9yeSddLCBvc3hDb21taXRbJ3JlcG9zaXRvcnknXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMF1bJ3JldmlzaW9uJ10sIG9zeENvbW1p
dFsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRz
WzBdWydvd25lZENvbW1pdHMnXSwgb3duZWRDb21taXRXaXRoV2ViS2l0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1sxXVsncmVwb3NpdG9yeSddLCBhbm90aGVyT1NYQ29t
bWl0WydyZXBvc2l0b3J5J10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRz
WzFdWydyZXZpc2lvbiddLCBhbm90aGVyT1NYQ29tbWl0WydyZXZpc2lvbiddKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMV1bJ293bmVkQ29tbWl0cyddLCBhbm90
aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRzWzBdWydyZXBvc2l0b3J5J10sIG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0c1swXVsncmV2aXNpb24n
XSwgb3N4Q29tbWl0WydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29tbWl0cyddLCBvd25lZENvbW1pdFdpdGhXZWJL
aXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzFdWydyZXBv
c2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9zaXRvcnknXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ3JldmlzaW9uJ10sIGFub3RoZXJPU1hD
b21taXRbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJL
aXQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMjQsMTUgKzIyNCwxNSBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1
aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKQogCiAg
ICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsK
ICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZWplY3QoJ0Zh
aWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGFk
ZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgICAgICB9
LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChlcnJvcl9v
dXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0LCAn
RmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0Jyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvcl9vdXRwdXQsICdGYWlsZWQgZ2V0dGluZyBvd25lZC1jb21taXQn
KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAg
LTI0NSwxNSArMjQ1LDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRk
T3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21p
c2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9j
ZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLnJlc29sdmUoJ3siV2ViS2l0Ijp7IlJhbmRvbUtleSI6ICJSYW5kb21WYWx1ZSJ9fScp
OwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUsICdBc3NlcnRpb25FcnJvciBbRVJSX0FT
U0VSVElPTl0nKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
X291dHB1dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3InKTsKICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KQpAQCAtMjYyLDggKzI2Miw5IEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hl
ci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcycsICgpID0+IHsKICAgICAgICAgY29uc3QgaW52
b2NhdGlvbnMgPSBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uczsKIAotICAgICAgICBiZWZvcmVF
YWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5jb25u
ZWN0KHtrZWVwQWxpdmU6IHRydWV9KTsKKyAgICAgICAgYmVmb3JlRWFjaChhc3luYyBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuY29ubmVjdCh7
a2VlcEFsaXZlOiB0cnVlfSk7CisgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuY2xlYXJBbGxUYWJsZXMoKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgYWZ0ZXJFYWNoKGZ1
bmN0aW9uICgpIHsKQEAgLTI5MCw0MCArMjkxLDQwIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hl
cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocGFyc2VJbnQocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pKSwgMTYwMzAwNjgwMCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9s
YXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2
MDQwMDMzMDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJ
bnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0
Y2hBdmFpbGFibGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9j
YXRpb25Qcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWls
ZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJy
YTE2RDY4XG5TaWVycmExNkQ2OVxuJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJw
cm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmEx
NkUzM1xuU2llcnJhMTZFMzNoXG5TaWVycmExNkUzNCcpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2Nh
dGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2Vi
S2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293
bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CkBAIC0zMzEsMjkgKzMzMiwyOSBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBmZXRjaFJlcG9ydEFuZFVw
ZGF0ZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9u
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1
aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAg
ICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZENjhcblNp
ZXJyYTE2RDY5XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVz
ZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2RTMzXG5TaWVy
cmExNkUzM2hcblNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJw
cm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRo
V2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewpAQCAtMzcwLDM0ICszNzEsMzQgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZF
MzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzNCA9
IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3Np
dG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5WzBdWydvd25lciddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNj
UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25l
ciddLCAxMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjku
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlb
MF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0
MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAz
MzA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNo
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMz
MDgpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0
WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSks
IDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAw
MDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDIzLDQwICs0MjQsNDAgQEAgZGVz
Y3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRv
PTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNn
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgICAgICBjb25z
dCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZl
dGNoZXIuX2ZldGNoQXZhaWxhYmxlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdh
aXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0
JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUo
SlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0
aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcydd
KTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9j
ZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUz
M2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAn
Zm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293
bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25l
ZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKQEAgLTQ2NCwyOSArNDY1LDI5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJv
bWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAg
IGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsK
ICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93
bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1sw
XS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zvcics
ICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENv
bW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3Mu
cmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShh
bm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0
J10pOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRz
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNTAzLDM0ICs1MDQsMzQg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgICAgICBj
b25zdCBvc3hDb21taXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1b
J293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVw
b3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChq
c2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNo
WzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFsw
XVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsn
cmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAw
MzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
NTU1LDQxICs1NTYsNDEgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7
CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkw
MCcpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKIAogICAgICAgICAgICAg
Y29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFu
ZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3Mud2FpdEZv
ckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxs
IG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICBhd2FpdCBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktp
dCkpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52
b2NhdGlvbigpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNP
Ti5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgYXdhaXQgTW9j
a1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdp
dGhXZWJLaXQpKTsKICAgICAgICAgICAgIGF3YWl0ICBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0
JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCdd
KTsKIAogICAgICAgICAgICAgYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwogCkBA
IC02MDEsNDMgKzYwMiw0MyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IGF3YWl0IGRiLnNlbGVjdFJv
d3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzaCd9KTsKICAgICAgICAgICAg
IGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsn
cmV2aXNpb24nOiAnU2llcnJhMTZFMzQnfSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NS
ZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjgubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVyJ10sIDE2MDMw
MDY4MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWyd0ZXN0
YWJpbGl0eSddLCAiUGFuaWMiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hD
b21taXQxNkQ2OC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXInXSksIDE2MDMwMDY4
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWyd0
ZXN0YWJpbGl0eSddLCAiUGFuaWMiKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsndGVzdGFiaWxpdHknXSwgIlNwaW4gQ1BVIik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3Np
dG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4
Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsndGVzdGFiaWxpdHknXSwgIlNwaW4gQ1BV
Iik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMS5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydyZXBvc2l0b3J5
J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsnb3Jk
ZXInXSwgMTYwNDAwMzEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZF
MzFbMF1bJ3Rlc3RhYmlsaXR5J10sICJXZWJLaXQgY3Jhc2hlcyIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMxLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMxWzBd
WydvcmRlciddKSwgMTYwNDAwMzEwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZFMzFbMF1bJ3Rlc3RhYmlsaXR5J10sICJXZWJLaXQgY3Jhc2hlcyIpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10s
IDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXIn
XSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsK
IAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2
MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAg
ICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCByZXBvcnQgY29tbWl0cyB3aXRob3V0IG93bmVkLWNvbW1pdHMgaWYgIm93bmVk
Q29tbWl0Q29tbWFuZCIgaXMgbm90IHNwZWNpZmllZCBpbiBjb25maWcnLCBhc3luYyAoKSA9PiB7
CkBAIC02NTksMjUgKzY2MCwyNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnkn
OiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdy
ZXBvcnRlZCc6IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYw
MzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAx
NjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0
MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcp
OwogCiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3Vi
cHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBv
cnRBbmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygp
OwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JT
aWVycmFEKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2Fp
dEZvckludm9jYXRpb24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1
bHQgPSBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC02OTQsMzAgKzY5NSwz
MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBv
c3hDb21taXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNj
UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlb
MF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2
RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2
RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zy
b209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAw
MzQwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVwb3J0IGNvbW1pdHMg
d2l0aGluIHNwZWNpZmllZCByZXZpc2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsKQEAgLTczOCwy
NSArNzM5LDI1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2
aXNpb24nOiAnU2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzog
dHJ1ZX0pXSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2
MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDAp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89
MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAg
ICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQ
cm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogCiAgICAgICAg
ICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsK
IAogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4
eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3Ry
aW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0
IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTc3MywzMCArNzc0LDMwIEBAIGRlc2Ny
aWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2
RTM0ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3Np
dG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlb
MF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXIn
XSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZF
MzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNo
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydv
cmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29y
ZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAw
NjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAz
MDA2OTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAw
MDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1cGRhdGUgY29tbWl0cyB3aXRoaW4gc3Bl
Y2lmaWVkIHJldmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpAQCAtODE3LDI5ICs4MTgsMjkg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdT
aWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0cnVlfSldKTsK
IAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0
bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAg
ICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAw
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgIGNvbnN0
IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBm
ZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogCiAgICAgICAgICAgICBhd2FpdCB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAgICAgICAg
YXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAg
ICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNG
b3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoQXZhaWxhYmxl
QnVpbGRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQuY29tbWl0c1Rv
VXBkYXRlLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
LmNvbW1pdHNUb1VwZGF0ZS5sZW5ndGgsIDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIHVzZSAibGFzdC1yZXBvcnRlZCIgb3JkZXIgKyAxIGFzICJtaW5PcmRlciInLCBhc3lu
YyAoKSA9PiB7CkBAIC04NTMsMTUgKzg1NCwxNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXIn
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsn
cmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZEMTAwJywgJ29yZGVyJzogMTYw
MzAxMDAwMCwgJ3JlcG9ydGVkJzogdHJ1ZX0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
MTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDMwMTAwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDAnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDMwMTAwMDApOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2Nh
dGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAg
ICAgICAgY29uc3QgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFu
ZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9t
aXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBi
dWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5n
aWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZl
dGNoQW5kUmVwb3J0UHJvbWlzZTsKQEAgLTg3NiwxOSArODc3LDE5IEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZE
NjkgPSByZXN1bHRzWzJdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAwYSA9IHJl
c3VsdHNbM107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxl
bmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgs
IDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxl
bmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5n
dGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxl
bmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwYVswXVsn
cmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZE
MTAwYVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZEMTAwYS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDEwMGFbMF1bJ29y
ZGVyJ10pLCAxNjAzMDEwMDAxKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwYScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAz
MDEwMDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwYScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwg
MTYwMzAxMDAwMSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXNlIG1pblJl
dmlzaW9uIGluIHRoZSBjb25maWcgaWYgdGhlcmUgaXMgbm8gY29tbWl0JywgYXN5bmMgKCkgPT4g
ewpAQCAtOTAxLDEzICs5MDIsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQn
OiAxMCwgJ25hbWUnOiAnT1NYJ30pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVw
b3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMCk7CiAKICAgICAgICAgICAg
IGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21p
c2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBh
d2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAg
ICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAt
OTI0LDIzICs5MjUsMjMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDAgPSByZXN1bHRzWzNdOwogICAgICAg
ICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAxID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwWzBdWydvcmRlciddLCAxNjAzMDEwMDAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDAubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDBbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSksIDE2MDMwMTAwMDApOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDFbMF1bJ29yZGVyJ10sIDE2MDMw
MTAxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEw
MVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddKSwgMTYwMzAxMDEwMCk7CiAKICAg
ICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5
OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RDEwMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDEwMTAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZEMTAxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAwKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBzdG9wIHJlcG9ydGluZyBpZiBhbnkgY3VzdG9tIGNvbW1hbmQg
ZmFpbHMnLCAoKSA9PiB7CkBAIC05NjMsNjAgKzk2NCw2MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZl
dGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAw
MzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52
b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRB
bmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRp
b25Qcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZE
NjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvcklu
dm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRz
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlamVjdCgnQ29tbWFuZCBmYWlsZWQnKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmV0Y2hBbmRSZXBvcnRQcm9taXNlLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxlZCcpOworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0LCAnQ29tbWFuZCBmYWlsZWQnKTsKICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVw
b3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMw
Nyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkKICAgICB9KQpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1z
eW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpz
CmluZGV4IDcxYTFkNTM5ZWI2MmZlZjJhZWI3Y2UwYzE5NjQwYjE2NGMyZmNmMTAuLjY5YTkxZjVl
NjExMzA2ZWFkYjhmMjEyN2I4OGQwNWRlYWI5NWIxMGIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlv
bi10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rv
b2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKQEAgLTE0NSw4ICsxNDUsOCBA
QCBjb25zdCBjb25maWdXaXRoVHdvVGVzdGVycyA9IHsKIAogZnVuY3Rpb24gYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRlbnRUb1Jlc29sdmUpCiB7Ci0g
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9kLCBtZXRob2QpOwotICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5tZXRo
b2QsIG1ldGhvZCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOwog
ICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50VG9SZXNvbHZlKTsKIH0KIApAQCAtMjY1LDIzICsy
NjUsMjMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVlc3RJZDogc2Vj
b25kVGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBi
dWlsZFJlcXVlc3RJZDogZmlyc3RUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0pKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdhbm90aGVyIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzog
WwogICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVy
SWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVz
dElkOiBzZWNvbmRUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0pLApAQCAtMjkyLDQ1ICsyOTIs
NDUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
IAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYW5vdGhl
clRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogCiAg
ICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDQsMzYgKzM0NCwzNiBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBjb25zdCB0YXNr
SWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICBsZXQgd2Vi
a2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAg
IGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgbGV0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgbGV0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBz
eW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2Vy
YWJsZS5zeW5jT25jZSgpKTsKQEAgLTM4MSwzMiArMzgxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9h
ZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1
ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1i
dWlsZHMnfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLAogICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDog
MX0pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVt
YmVyOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0J1aWxkaW5nIFdlYktp
dCd9KSk7CkBAIC00MTUsMzkgKzQxNSwzOSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKIAogICAgICAgICBsZXQgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0J1aWxkaW5nIFdlYktpdCcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpA
QCAtNDU2LDI2ICs0NTYsMjYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2Ny
aXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDog
MSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGls
aW5nIFdURid9KSk7CkBAIC00ODQsODAgKzQ4NCw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcg
V1RGJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQ
YXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5k
YXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICBhd2FpdCB1cGxvYWRS
b290KGJ1aWxkUmVxdWVzdC5pZCgpLCBmaXJzdEJ1aWxkTnVtYmVyKTsKKyAgICAgICAgYXdhaXQg
dXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIGZpcnN0QnVpbGROdW1iZXIp
OwogCiAgICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IGZpcnN0QnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBp
bGluZyBXVEYnKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwog
ICAgICAgICBsZXQgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwpAQCAtNTY2LDMyICs1NjYsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVt
YmVyfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1i
dWlsZHMnLCAnT0snKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRh
LCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdi
dWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEw
KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTYw
Myw4MyArNjAzLDgzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
CiAgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJl
cikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBm
aXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRj
aC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKLSAgICAgICAgYXdhaXQgdXBsb2Fk
Um9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICBhd2FpdCB1cGxvYWRS
b290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogCiAgICAgICAgIHRl
c3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1i
ZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
Zmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290
XSk7CiAgICAgfSk7CiAKQEAgLTY5NCwzNCArNjk0LDM0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAg
ICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtNzI5LDMyICs3
MjksMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAn
L2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAg
ICB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2Fk
ZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVl
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcyd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC03NjMsNzYgKzc2Myw3NiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCks
IDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVl
c3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53
ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC04NDEsMzIgKzg0MSwzMiBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1l
KCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYy
MicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpA
QCAtODc4LDgwICs4NzgsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAg
ICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAg
ICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsK
KyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0
LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAg
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJr
aXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTk2NywzNCArOTY3LDM0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9
IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBj
b21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRj
aCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtMTAwMiwzMiArMTAwMiwzMiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21l
dGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIy
JywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0Jyks
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVp
bGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ3BsYXRmb3Jt
LW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
ZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAg
ICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5i
dWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBA
IC0xMDM2LDc2ICsxMDM2LDc2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9v
dChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJv
b3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0g
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTEx
MTQsMzIgKzExMTQsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIp
LAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAx
fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQ
T1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzIn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAg
ICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdi
dWlsZC13ayc6IHRydWUsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBA
IC0xMTUxLDgwICsxMTUxLDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7
CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndl
YmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Vi
a2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
NC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC0xMjQxLDIyICsxMjQxLDIyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJ
ZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LmlkKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdC5pZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVl
c3QuaWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KDEsIDQ1KTsKQEAgLTEyNjUs
MzkgKzEyNjUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAg
ICAgICAgICAgIGNvbnN0IHJvb3RzID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RG
aWxlcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvb3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGZpcnN0Um9vdCA9IHJvb3RzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyb290
c1swXS5maWxlbmFtZSgpLCAncm9vdDQ1LmRhdCcpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyUm9vdHMgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlclJvb3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlclJvb3RzWzBdLmZpbGVuYW1lKCksICdyb290NDYuZGF0Jyk7CiAgICAgICAgICAg
ICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmln
Z2VyYWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRz
JzogWwpAQCAtMTMwNywxMyArMTMwNywxMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi10ZXN0cycsICdP
SycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lk
JzogJzMnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAg
ICAgICAgICAgICAgICAgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICczJywnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItdGVzdHMnLCAn
cm9vdHMnOiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290LnVybCgpfV0pfX0pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIFsKICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwKICAgICAgICAg
ICAgIF0pOwpAQCAtMTMyMSw3ICsxMzIxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAg
ICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTM0MywzNiArMTM0MywzNiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBjcmVh
dGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7
CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
aWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKSwgdXBsb2FkUm9vdCgxLCAxMjMpXSk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAt
MTM4MywxMyArMTM4MywxMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAt
MTQwMSwyNCArMTQwMSwyNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKIAog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMSk7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMDAyKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEwMDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTQzMiw0OSArMTQzMiw0OSBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3Jv
dXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAg
ICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lmlk
KCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnb3RoZXIg
YnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IDMxMn0pKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicsIDIpLApAQCAtMTQ4MywyOCArMTQ4MywyOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXFldXN0cyA9IHRlc3RHcm91
cHNbMF0uYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxZXVzdHNb
MF0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0c1swXS5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNM
YWJlbCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0
c1swXS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhlciBidWlsZGVyJywgMzEy
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0u
c3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnb3RoZXIg
YnVpbGRlcicsIDMxMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
ZXVzdHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
ZXVzdHNbMV0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0c1sx
XS5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1sxXS5z
dGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXFldXN0c1sxXS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXFldXN0c1sxXS5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0u
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gYXNzZXJ0VGVzdEJ1aWxk
SGFzRmFpbGVkKHJlcXVlc3QpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
KCFyZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdGYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGFzc2VydFRlc3RCdWlsZEhhc0ZhaWxlZChidWlsZFJlcWV1c3RzWzJdKTsK
QEAgLTE1MjQsMzYgKzE1MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwpAQCAtMTU2MSwzMiArMTU2MSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywg
MiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMn
LCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwg
eydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
MScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6
IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJK
YXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMX0pKTsKQEAgLTE1OTUsODUgKzE1OTUsODUgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpT
QyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdS
dW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRT
ZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAg
ICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMykudGhlbigo
KSA9PiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5
OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1
LTEwVDAyOjU0OjA5LjY2NicpKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNl
SW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKS50aGVuKCgpID0+IHVwbG9hZFJvb3QocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywg
b3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5
LjY2NicpKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJl
cG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJv
b3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAg
ICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRK
U0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwpAQCAtMTY4MiwzMiArMTY4MiwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcics
IDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRz
JywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEs
IHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMn
OiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5Ijoi
SmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTE3
MTksOTUgKzE3MTksOTUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBj
b25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAg
ICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2Fk
Um9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChv
dGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywg
b3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5
LjY2NicpKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCkpLCAxMjQpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChwYXJzZUludChvdGhl
ckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93
bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42
NjYnKSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCBv
dGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
V2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0
IG90aGVySlNDUm9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckpTQ1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckpTQ1Jv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290LCBvdGhl
ckpTQ1Jvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xODI0LDM2ICsxODI0LDM2IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdGFz
a0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAg
ICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3du
ZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTE4NjEsMzIgKzE4NjEsMzIg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92
Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3dr
JzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9u
Ijoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJl
dmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJ
ZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVz
dElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC0x
ODk1LDEyNiArMTg5NSwxMjYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9h
ZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2Fk
Um9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAg
ICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NS
ZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3Qg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxk
UmVxdWVzdC5pZCgpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBv
c2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwor
ICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkp
LCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2
YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAg
ICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVk
SlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9
IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSgob3duZWRKU0MpKTsKICAgICAgICAgICAgIGFz
c2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dl
YmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90
aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTIwMjMsMzIgKzIw
MjMsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZp
c2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3du
ZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwg
ewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0yMDYwLDE0MSArMjA2MCwxNDEgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAg
ICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NS
ZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3Qg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChq
c2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJv
b3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVx
dWVzdC5pZCgpLCAxMjQpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQo
b3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
ICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBv
d25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5
SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jv
b3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7Ci0gICAgICAgICAgICByZXR1cm4gdXBs
b2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAn
V2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEw
VDAyOjU0OjA5LjY2NicpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQo
b3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQn
LCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6
MDkuNjY2Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRS
b290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25z
dCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGNv
bnN0IG90aGVySlNDUm9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckpTQ1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgp
LCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckpT
Q1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290LCBv
dGhlckpTQ1Jvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwppbmRleCAzMGJkMjVm
MGFjZDAxN2U0NWY4YTgwODFmY2VlMWI4ZDA5N2Y2ODgxLi43ZGZlZTE3ZDhiMWY3N2JiZGYzNGQz
OTYyY2I2N2ZhZmU5YTA3ZTZhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgQnVp
bGRib3RCdWlsZEVudHJ5IHsKIAogICAgIGluaXRpYWxpemUoc3luY2VyLCByYXdEYXRhKQogICAg
IHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwgcmF3RGF0YVsnYnVp
bGRlcmlkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3luY2VyLmJ1aWxkZXJJRCgp
LCByYXdEYXRhWydidWlsZGVyaWQnXSk7CiAKICAgICAgICAgdGhpcy5fc3luY2VyID0gc3luY2Vy
OwogICAgICAgICB0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVzdElkID0gcmF3RGF0YVsnYnVpbGRy
ZXF1ZXN0aWQnXTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsK
IAogICAgIGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVkZWQocmVxdWVzdCkKICAgICB7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmlkKCksIHRoaXMuX2J1aWxkUmVxdWVzdElk
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QuaWQoKSwgdGhpcy5fYnVpbGRS
ZXF1ZXN0SWQpOwogICAgICAgICBpZiAoIXJlcXVlc3QpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bDsKICAgICAgICAgaWYgKHRoaXMuaXNQZW5kaW5nKCkpIHsKQEAgLTExNyw3ICsxMTcsNyBAQCBj
bGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gdGhpcy5fcHJv
cGVydGllc0ZvckJ1aWxkUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXApOwogCiAg
ICAgICAgIGFzc2VydChwcm9wZXJ0aWVzWydmb3JjZXNjaGVkdWxlciddLCBgZm9yY2VzY2hlZHVs
ZXIgd2FzIG5vdCBzcGVjaWZpZWQgaW4gYnVpbGRib3QgcHJvcGVydGllcyBmb3IgYnVpbGQgcmVx
dWVzdCAke25ld1JlcXVlc3QuaWQoKX0gb24gcGxhdGZvcm0gIiR7bmV3UmVxdWVzdC5wbGF0Zm9y
bSgpLm5hbWUoKX0iIGZvciBidWlsZGVyICIke3RoaXMuYnVpbGRlck5hbWUoKX0iYCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCghdGhpcy5fc2xhdmVQcm9wZXJ0eU5hbWUsICFzbGF2ZU5hbWUpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoIXRoaXMuX3NsYXZlUHJvcGVydHlOYW1lLCAhc2xh
dmVOYW1lKTsKICAgICAgICAgaWYgKHRoaXMuX3NsYXZlUHJvcGVydHlOYW1lKQogICAgICAgICAg
ICAgcHJvcGVydGllc1t0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZV0gPSBzbGF2ZU5hbWU7CiAKQEAg
LTMzNyw3ICszMzcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICAgICAgYXNzZXJ0
KGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50IG11c3Qg
c3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNlZCB0byBzdG9yZSB0aGUgYnVpbGQg
cmVxdWVzdCBJRCcpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEg
ZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoY29uZmlnLnJlcG9zaXRvcnlHcm91cHMpLCAnb2JqZWN0
JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBu
YW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7CiAKICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3Vw
cyA9IHt9OwogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gY29uZmlnLnJlcG9zaXRvcnlHcm91
cHMpCkBAIC00MTYsNyArNDE2LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCiAgICAgc3Rh
dGljIF9wYXJzZVJlcG9zaXRvcnlHcm91cChuYW1lLCBncm91cCkKICAgICB7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVzKSwgJ29iamVjdCcsCisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVzKSwgJ29iamVjdCcs
CiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3Qgc3BlY2lm
eSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzYCk7CiAgICAgICAgIGFzc2VydCghKCdkZXNj
cmlwdGlvbicgaW4gZ3JvdXApIHx8IHR5cGVvZihncm91cFsnZGVzY3JpcHRpb24nXSkgPT0gJ3N0
cmluZycsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgaGF2ZSBhbiBp
bnZhbGlkIGRlc2NyaXB0aW9uYCk7CkBAIC00MzEsNyArNDMxLDcgQEAgY2xhc3MgQnVpbGRib3RT
eW5jZXIgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZFRv
cExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0
b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5IG5hbWVg
KTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5hbWVdID0gcmVwb3Np
dG9yeTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yob3B0aW9ucyksICdvYmplY3Qn
LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVjaWZpZXMgYSBub24tZGljdGlvbmFyeSB2YWx1ZWAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihvcHRpb25zKSwgJ29iamVj
dCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBhIG5vbi1kaWN0aW9uYXJ5IHZhbHVl
YCk7CiAgICAgICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwgdHJ1ZSwgZmFsc2VdLmluY2x1ZGVz
KG9wdGlvbnMuYWNjZXB0c1BhdGNoKSwKICAgICAgICAgICAgICAgICBgIiR7cmVwb3NpdG9yeU5h
bWV9IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1ZTogJHtKU09OLnN0cmluZ2lm
eShvcHRpb25zLmFjY2VwdHNQYXRjaCl9YCk7CiAgICAgICAgICAgICBpZiAob3B0aW9ucy5hY2Nl
cHRzUGF0Y2gpCkBAIC00NDEsNyArNDQxLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAg
ICAgICB9CiAgICAgICAgIGFzc2VydChwYXJzZWRSZXBvc2l0b3J5TGlzdC5sZW5ndGgsIGBSZXBv
c2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5IGFueSByZXBvc2l0b3J5YCk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC50ZXN0UHJvcGVydGllcyksICdv
YmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSB0ZXN0IGNv
bmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0eXBlb2YoZ3JvdXAudGVzdFByb3BlcnRpZXMpLCAnb2JqZWN0JywgYFJlcG9zaXRv
cnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRo
IGFuIGludmFsaWQgdHlwZWApOwogCiAgICAgICAgIGNvbnN0IHJlc29sdmVSZXBvc2l0b3J5ID0g
KHJlcG9zaXRvcnlOYW1lKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gcmVw
b3NpdG9yeUJ5TmFtZVtyZXBvc2l0b3J5TmFtZV07CkBAIC00NzAsNyArNDcwLDcgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICB9KTsKICAgICAgICAgYXNzZXJ0KCFncm91cC5hY2Nl
cHRzUm9vdHMgPT0gIXNwZWNpZmllc1Jvb3RzLAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3Jv
dXAgIiR7bmFtZX0iIGFjY2VwdHMgcm9vdHMgYnV0IGRvZXMgbm90IHNwZWNpZnkgcm9vdHMgaW4g
dGVzdFByb3BlcnRpZXNgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJlcG9zaXRvcnlM
aXN0Lmxlbmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXplLAorICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9yaWVzLnNpemUs
CiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3QgdXNlIHNv
bWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVzdGluZ2ApOwogCiAgICAgICAgIGxl
dCBidWlsZFByb3BlcnRpZXNUZW1wbGF0ZSA9IG51bGw7CkBAIC01MDQsNyArNTA0LDcgQEAgY2xh
c3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgYXNzZXJ0KHBhdGNoQWNjZXB0aW5nUmVw
b3NpdG9yeUxpc3Quc2l6ZSB8fCBoYXNPd25lZFJldmlzaW9ucywgYFJlcG9zaXRvcnkgZ3JvdXAg
IiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYnV0IGRvZXMg
bm90IGFjY2VwdCBhbnkgcGF0Y2hlcyBvciBuZWVkIHRvIGJ1aWxkIG93bmVkIGNvbXBvbmVudHNg
KTsKICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9yeSBvZiBwYXRjaFJlcG9zaXRvcmll
cykKICAgICAgICAgICAgICAgICBhc3NlcnQocmV2aXNpb25SZXBvc2l0b3JpZXMuaGFzKHJlcG9z
aXRvcnkpLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgcGF0Y2ggZm9y
ICIke3JlcG9zaXRvcnkubmFtZSgpfSIgYnV0IGRvZXMgbm90IHNwZWNpZnkgYSByZXZpc2lvbmAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Qu
c2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNpemUsIHBhdGNoUmVwb3NpdG9yaWVz
LnNpemUsCiAgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMg
bm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIGJ1aWxkaW5nIGEgcGF0
Y2hgKTsKICAgICAgICAgfQogCkBAIC01NjQsMTIgKzU2NCwxMiBAQCBjbGFzcyBCdWlsZGJvdFN5
bmNlciB7CiAKICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgY2FzZSAn
cHJvcGVydGllcyc6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBk
aWN0aW9uYXJ5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZih2
YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5
Jyk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbJ3Byb3BlcnRpZXMnXSkKICAgICAgICAg
ICAgICAgICAgICAgY29uZmlnWydwcm9wZXJ0aWVzJ10gPSB7fTsKICAgICAgICAgICAgICAgICBj
b25zdCBwcm9wZXJ0aWVzID0gY29uZmlnWydwcm9wZXJ0aWVzJ107CiAgICAgICAgICAgICAgICAg
Zm9yIChjb25zdCBuYW1lIGluIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0eXBlb2YodmFsdWVbbmFtZV0pLCAnc3RyaW5nJywgYEJ1aWxkIHByb3BlcnRpZXMgIiR7
bmFtZX0iIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAiJHt0eXBlb2YodmFs
dWUpfSJgKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZih2
YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVydGllcyAiJHtuYW1lfSIgc3BlY2lm
aWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5cGVvZih2YWx1ZSl9ImApOwogICAg
ICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0gdmFsdWVbbmFtZV07CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTgwLDcgKzU4MCw3IEBAIGNs
YXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBjb25maWdbbmFtZV0gPSB2YWx1
ZS5zbGljZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAnYnVp
bGRlcic6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVv
Zih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQgYmUgb2Ygc3RyaW5nIHR5cGVgKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmlu
ZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlwZWApOwogICAgICAgICAgICAgICAg
IGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSAnYnVpbGRlcklEJzoKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA0MGRlMGE1Njk3Yzg3
Y2ViMDk4MzU4NzJkN2UyZTA4NTMzOWJiM2MzLi4yOWMxZTUwOGNmZWQ2NTY0YzVjMjM5ZjA2MDU5
ODRlOGU0MTk2ZjMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC0xNDcsNyArMTQ3LDcgQEAgY2xh
c3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBhc3NlcnQodHJpZ2dlcmFibGUgaW5zdGFuY2VvZiBUcmln
Z2VyYWJsZSwgJ011c3Qgc3BlY2lmeSBhIHZhbGlkIHRyaWdnZXJhYmxlJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0aGlzLl9uYW1lLCAnTXVzdCBzcGVj
aWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhpcy5fbmFtZSwgJ011c3Qgc3BlY2lm
eSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsKICAgICAgICAgICAgIGNvbnN0IHJl
cG9zaXRvcnlHcm91cCA9IHJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCk7CiAgICAgICAgICAgICBp
ZiAoIXJlcG9zaXRvcnlHcm91cCkgewogICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5lcnJv
cihgQnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZG9lcyBub3Qgc3BlY2lmeSBhIHJlcG9z
aXRvcnkgZ3JvdXAuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQu
YCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvY29uZmln
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2NvbmZpZy5qcwppbmRleCBm
NzU0Y2ZjNTkxZjc0ZjMyZTY2YjhjN2ZhOTlhM2ZkYmYwYTJmNjI5Li42NGQ3MzU2NGZkYTkzMGMy
YzI5YzIwZjQxODU0YTRhYzY2YzJhY2Y5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvY29uZmlnLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9jb25maWcuanMKQEAgLTI4LDYgKzI4LDEyIEBAIHZhciBDb25maWcgPSBuZXcgKGNs
YXNzIENvbmZpZyB7CiAgICAgICAgIHJldHVybiBjb250ZW50OwogICAgIH0KIAorICAgIGFsbCgp
IHsKKyAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50KQorICAgICAgICAgICAgdGhpcy5fY29udGVu
dCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuX2NvbmZpZ1BhdGgpKTsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7CisgICAgfQorCiAgICAgcGF0aChrZXkpIHsgcmV0dXJu
IHBhdGgucmVzb2x2ZSh0aGlzLl9yb290RGlyZWN0b3J5LCB0aGlzLnZhbHVlKGtleSkpOyB9CiAg
ICAgc2VydmVyUm9vdCgpIHsgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLl9yb290RGlyZWN0b3J5
LCAncHVibGljJyk7IH0KICAgICBwYXRoRnJvbVJvb3QocmVsYXRpdmVQYXRoRnJvbVJvb3QpIHsg
cmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLl9yb290RGlyZWN0b3J5LCByZWxhdGl2ZVBhdGhGcm9t
Um9vdCk7IH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9k
YXRhYmFzZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9kYXRhYmFzZS5q
cwppbmRleCA5MDdlNGQ3ZDlhYjFhODNhMzE1Zjk3YmE1ODBkN2Y1NjFkM2Q5NTlhLi4zYmZhNzNl
MjY4MTczYTZjNGQ0YzFkZDYwODNjOTRiNjRlNjMxMjA2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCkBAIC00LDEwICs0LDE0IEBAIGNvbnN0IHBn
ID0gcmVxdWlyZSgncGcnKTsKIGNvbnN0IGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnLmpzJyk7
CiAKIGNsYXNzIERhdGFiYXNlIHsKLSAgICBjb25zdHJ1Y3RvcihkYXRhYmFzZU5hbWUpCisgICAg
Y29uc3RydWN0b3IoZGF0YWJhc2VOYW1lLCB1c2VybmFtZSwgcGFzc3dvcmQsIGhvc3QsIHBvcnQp
CiAgICAgewogICAgICAgICB0aGlzLl9jbGllbnQgPSBudWxsOwogICAgICAgICB0aGlzLl9kYXRh
YmFzZU5hbWUgPSBkYXRhYmFzZU5hbWUgfHwgY29uZmlnLnZhbHVlKCdkYXRhYmFzZS5uYW1lJyk7
CisgICAgICAgIHRoaXMuX3VzZXJuYW1lID0gdXNlcm5hbWUgfHwgY29uZmlnLnZhbHVlKCdkYXRh
YmFzZS51c2VybmFtZScpOworICAgICAgICB0aGlzLl9wYXNzd29yZCA9IHBhc3N3b3JkIHx8IGNv
bmZpZy52YWx1ZSgnZGF0YWJhc2UucGFzc3dvcmQnKTsKKyAgICAgICAgdGhpcy5faG9zdCA9IGhv
c3QgfHwgY29uZmlnLnZhbHVlKCdkYXRhYmFzZS5ob3N0Jyk7CisgICAgICAgIHRoaXMuX3BvcnQg
PSBwb3J0IHx8IGNvbmZpZy52YWx1ZSgnZGF0YWJhc2UuaG9zdCcpOwogICAgIH0KIAogICAgIF9w
cmVwYXJlU1NMQ29uZmlnKCkKQEAgLTMyLDE0ICszNiw4IEBAIGNsYXNzIERhdGFiYXNlIHsKICAg
ICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NsaWVudCA9PT0gbnVsbCk7CiAKLSAg
ICAgICAgbGV0IHVzZXJuYW1lID0gY29uZmlnLnZhbHVlKCdkYXRhYmFzZS51c2VybmFtZScpOwot
ICAgICAgICBsZXQgcGFzc3dvcmQgPSBjb25maWcudmFsdWUoJ2RhdGFiYXNlLnBhc3N3b3JkJyk7
Ci0gICAgICAgIGxldCBob3N0ID0gY29uZmlnLnZhbHVlKCdkYXRhYmFzZS5ob3N0Jyk7Ci0gICAg
ICAgIGxldCBwb3J0ID0gY29uZmlnLnZhbHVlKCdkYXRhYmFzZS5wb3J0Jyk7Ci0KICAgICAgICAg
Ly8gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBlc2NhcGluZyBzdHJpbmdzIHNpbmNlIHRoZXkgYXJl
IG9ubHkgc2V0IGJ5IHNvbWVvbmUgd2hvIGNhbiB3cml0ZSB0byBjb25maWcuanNvbi4KLSAgICAg
ICAgbGV0IGNvbm5lY3Rpb25TdHJpbmcgPSBgdGNwOi8vJHt1c2VybmFtZX06JHtwYXNzd29yZH1A
JHtob3N0fToke3BvcnR9LyR7dGhpcy5fZGF0YWJhc2VOYW1lfSR7dGhpcy5fcHJlcGFyZVNTTENv
bmZpZygpfWA7Ci0KKyAgICAgICAgbGV0IGNvbm5lY3Rpb25TdHJpbmcgPSBgdGNwOi8vJHt0aGlz
Ll91c2VybmFtZX06JHt0aGlzLl9wYXNzd29yZH1AJHt0aGlzLl9ob3N0fToke3RoaXMuX3BvcnR9
LyR7dGhpcy5fZGF0YWJhc2VOYW1lfSR7dGhpcy5fcHJlcGFyZVNTTENvbmZpZygpfWA7CiAgICAg
ICAgIGxldCBjbGllbnQgPSBuZXcgcGcuQ2xpZW50KGNvbm5lY3Rpb25TdHJpbmcpOwogICAgICAg
ICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMua2VlcEFsaXZlKQogICAgICAgICAgICAgY2xpZW50
Lm9uKCdkcmFpbicsIHRoaXMuZGlzY29ubmVjdC5iaW5kKHRoaXMpKTsKQEAgLTEyNyw2ICsxMjUs
NDUgQEAgY2xhc3MgRGF0YWJhc2UgewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBnZXRBbGxT
ZXFOYW1lcygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5xdWVyeShgU0VMRUNUIGMucmVs
bmFtZSBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxraW5kID0gJ1MnO2AKKyAgICAgICAgKS50
aGVuKChyZXN1bHRzKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0c1sncm93cyddLm1h
cChyb3cgPT4gcm93WydyZWxuYW1lJ10pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBnZXRB
bGxUYWJsZU5hbWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KGBTRUxFQ1Qg
KgorICAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX3RhYmxlcworICAgICAgICAgICAgV0hF
UkUgc2NoZW1hbmFtZSAhPSAncGdfY2F0YWxvZycgQU5EIAorICAgICAgICAgICAgc2NoZW1hbmFt
ZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJztgCisgICAgICAgICkudGhlbigocmVzdWx0cykgPT4g
eworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHNbJ3Jvd3MnXS5tYXAocm93ID0+IHJvd1sndGFi
bGVuYW1lJ10pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjbGVhclRhYmxlKHRhYmxlbmFt
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KGBUUlVOQ0FURSAke3RhYmxlbmFt
ZX0gQ0FTQ0FERTtgKTsKKyAgICB9CisKKyAgICBjbGVhckFsbFRhYmxlcygpCisgICAgeworICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgdGhpcy5nZXRBbGxUYWJsZU5h
bWVzKCkudGhlbih0YWJsZW5hbWVzID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5x
dWVyeShgVFJVTkNBVEUgJHsodGFibGVuYW1lcy5qb2luKCcsJykpfSBDQVNDQURFO2ApOworICAg
ICAgICAgICAgfSksCisgICAgICAgICAgICAvLyBSZXNldCBhbGwgdGhlIHNlcSB0byByZXN0YXJ0
IGZyb20gMCB0byBtZWV0IHVuaXR0ZXN0IGFzc3VtcHRpb24KKyAgICAgICAgICAgIHRoaXMuZ2V0
QWxsU2VxTmFtZXMoKS50aGVuKHNlcU5hbWVzID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoc2VxTmFtZXMubWFwKHNlcU5hbWUgPT4geworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5xdWVyeShgQUxURVIgU0VRVUVOQ0UgJHtzZXFOYW1lfSBSRVNUQVJUYCk7
CisgICAgICAgICAgICAgICAgfSkpOworICAgICAgICAgICAgfSkKKyAgICAgICAgXSk7IAorICAg
IH0KKwogICAgIGluc2VydCh0YWJsZSwgcGFyYW1ldGVycykKICAgICB7CiAgICAgICAgIGxldCBj
b2x1bW5OYW1lcyA9IFtdOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qcwppbmRleCA5OTM0MDc5ZDZiM2FhNDlkODdlZTQzZGE1
OTUxYTdkYzEwMmMwOWZjLi4yZDZmNTBhOTU3MzBkY2Q2NmM0NzQ1ODMxYmI4ZWI3ZWI3ZjIzYTZi
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQt
ZmV0Y2hlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVp
bGQtZmV0Y2hlci5qcwpAQCAtMTIxLDcgKzEyMSw3IEBAIGNsYXNzIE9TQnVpbGRGZXRjaGVyIHsK
ICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBHb3QgJHtPYmplY3Qua2V5cygob3du
ZWRDb21taXRzKSkubGVuZ3RofSBvd25lZCBjb21taXRzIGZvciAiJHtjb21taXRbJ3JldmlzaW9u
J119ImApOwogICAgICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnlOYW1lIGluIG93bmVk
Q29tbWl0cykgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lZENvbW1pdCA9IG93bmVk
Q29tbWl0c1tyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoT2JqZWN0LmtleXMob3duZWRDb21taXQpLCBbJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG93bmVkQ29tbWl0
KSwgWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZihvd25l
ZENvbW1pdFsncmV2aXNpb24nXSkgPT0gJ3N0cmluZycpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICBjb21taXRbJ293bmVkQ29tbWl0cyddID0gb3duZWRDb21taXRzOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKaW5kZXggYWY2YWEzNjhl
ZjUwYmI4NzgzMTc2N2Y2YWI3NTYzMWMyODFkZTBjNy4uNDc3Mzc2NjYwNjYwYjgwNmQ0MTExOTky
MDdmOTQyOGRjYTQ0NzI2MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL3JlbW90ZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMv
cmVtb3RlLmpzCkBAIC0zMSwxNCArMzEsMTQgQEAgY2xhc3MgTm9kZVJlbW90ZUFQSSBleHRlbmRz
IENvbW1vblJlbW90ZUFQSSB7CiAgICAgY29uZmlndXJlKHNlcnZlcikKICAgICB7CiAgICAgICAg
IGFzc2VydChzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cCcgfHwgc2VydmVyLnNjaGVtZSA9PT0gJ2h0
dHBzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yoc2VydmVyLmhvc3QpLCAnc3RyaW5n
JywgJ2hvc3Qgc2hvdWxkIGJlIGEgc3RyaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0eXBlb2Yoc2VydmVyLmhvc3QpLCAnc3RyaW5nJywgJ2hvc3Qgc2hvdWxkIGJlIGEgc3RyaW5n
Jyk7CiAgICAgICAgIGFzc2VydCghc2VydmVyLnBvcnQgfHwgdHlwZW9mKHNlcnZlci5wb3J0KSA9
PSAnbnVtYmVyJywgJ3BvcnQgc2hvdWxkIGJlIGEgbnVtYmVyJyk7CiAKICAgICAgICAgbGV0IGF1
dGggPSBudWxsOwogICAgICAgICBpZiAoc2VydmVyLmF1dGgpIHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgpLCAnb2JqZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEg
ZGljdGlvbmFyeSB3aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBrZXlzJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnVzZXJuYW1lKSwgJ3N0cmluZycs
ICdhdXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHVzZXJuYW1lJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnBhc3N3b3JkKSwgJ3N0cmluZycsICdhdXRo
IHNob3VsZCBjb250YWluIGEgc3RyaW5nIHBhc3N3b3JkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoKSwgJ29iamVjdCcsICdhdXRoIHNob3VsZCBi
ZSBhIGRpY3Rpb25hcnkgd2l0aCB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXMga2V5cycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC51c2VybmFtZSks
ICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBhIHN0cmluZyB1c2VybmFtZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC5wYXNzd29yZCks
ICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBhIHN0cmluZyBwYXNzd29yZCcpOwogICAg
ICAgICAgICAgYXV0aCA9IHsKICAgICAgICAgICAgICAgICB1c2VybmFtZTogc2VydmVyLmF1dGgu
dXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHNlcnZlci5hdXRoLnBhc3N3b3Jk
LApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3NldHVwLWRhdGFi
YXNlLnB5IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3NldHVwLWRhdGFiYXNlLnB5
CmluZGV4IGJkMjY4ZTFjZWM3NTliYTMxMTRkYzM3MWY4MDkyZDNjZThkN2FmYmUuLjZmMTM3MzI1
MTYzMDI0NjJkNTIwMzY5NDNkNTE5N2MwZGRlN2QzNTEgMTAwNzU1Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9zZXR1cC1kYXRhYmFzZS5weQorKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvc2V0dXAtZGF0YWJhc2UucHkKQEAgLTE4LDcgKzE4LDkgQEAgZGVm
IG1haW4oKToKIAogICAgIGRhdGFiYXNlX2NvbmZpZyA9IGxvYWRfZGF0YWJhc2VfY29uZmlnKCkK
IAotICAgIGRhdGFiYXNlX25hbWUgPSBkYXRhYmFzZV9jb25maWdbJ25hbWUnXQorICAgIGRhdGFi
YXNlX25hbWVzID0gW2RhdGFiYXNlX2NvbmZpZ1snbmFtZSddXQorICAgIGlmICd0ZXN0X2RiJyBp
biBkYXRhYmFzZV9jb25maWc6CisgICAgICAgIGRhdGFiYXNlX25hbWVzLmFwcGVuZChkYXRhYmFz
ZV9jb25maWdbJ3Rlc3RfZGInXSkKICAgICB1c2VybmFtZSA9IGRhdGFiYXNlX2NvbmZpZ1sndXNl
cm5hbWUnXQogICAgIHBhc3N3b3JkID0gZGF0YWJhc2VfY29uZmlnWydwYXNzd29yZCddCiAKQEAg
LTQzLDE4ICs0NSwyMCBAQCBkZWYgbWFpbigpOgogCiAgICAgZG9uZSA9IEZhbHNlCiAgICAgdHJ5
OgotICAgICAgICBwcmludCAiQ3JlYXRpbmcgZGF0YWJhc2U6ICVzIiAlIGRhdGFiYXNlX25hbWUK
LSAgICAgICAgZXhlY3V0ZV9wc3FsX2NvbW1hbmQocHNxbF9kaXIsICdjcmVhdGVkYicsIFtkYXRh
YmFzZV9uYW1lLCAnLS1ob3N0JywgJ2xvY2FsaG9zdCddKQorICAgICAgICBmb3IgaSBpbiByYW5n
ZShsZW4oZGF0YWJhc2VfbmFtZXMpKToKKyAgICAgICAgICAgIGRhdGFiYXNlX25hbWUgPSBkYXRh
YmFzZV9uYW1lc1tpXQorICAgICAgICAgICAgcHJpbnQgIkNyZWF0aW5nIGRhdGFiYXNlOiAlcyIg
JSBkYXRhYmFzZV9uYW1lCisgICAgICAgICAgICBleGVjdXRlX3BzcWxfY29tbWFuZChwc3FsX2Rp
ciwgJ2NyZWF0ZWRiJywgW2RhdGFiYXNlX25hbWUsICctLWhvc3QnLCAnbG9jYWxob3N0J10pCiAK
LSAgICAgICAgcHJpbnQgIkNyZWF0aW5nIHVzZXI6ICVzIiAlIHVzZXJuYW1lCi0gICAgICAgIGV4
ZWN1dGVfcHNxbF9jb21tYW5kKHBzcWxfZGlyLCAncHNxbCcsIFtkYXRhYmFzZV9uYW1lLCAnLS1o
b3N0JywgJ2xvY2FsaG9zdCcsICctLWNvbW1hbmQnLAotICAgICAgICAgICAgImNyZWF0ZSByb2xl
IFwiJXNcIiB3aXRoIG5vc3VwZXJ1c2VyIGxvZ2luIGVuY3J5cHRlZCBwYXNzd29yZCAnJXMnOyIg
JSAodXNlcm5hbWUsIHBhc3N3b3JkKV0pCisgICAgICAgICAgICAjIENyZWF0IHVzZXIgb25seSBv
bmUgdGltZQorICAgICAgICAgICAgaWYgaSA9PSAwOgorICAgICAgICAgICAgICAgIHByaW50ICJD
cmVhdGluZyB1c2VyOiAlcyIgJSB1c2VybmFtZQorICAgICAgICAgICAgICAgIGV4ZWN1dGVfcHNx
bF9jb21tYW5kKHBzcWxfZGlyLCAncHNxbCcsIFtkYXRhYmFzZV9uYW1lLCAnLS1ob3N0JywgJ2xv
Y2FsaG9zdCcsICctLWNvbW1hbmQnLCAiY3JlYXRlIHJvbGUgXCIlc1wiIHdpdGggbm9zdXBlcnVz
ZXIgbG9naW4gZW5jcnlwdGVkIHBhc3N3b3JkICclcyc7IiAlICh1c2VybmFtZSwgcGFzc3dvcmQp
XSkKIAotICAgICAgICBwcmludCAiR3JhbnRpbmcgYWxsIGFjY2VzcyBvbiAlcyB0byAlcyIgJSAo
ZGF0YWJhc2VfbmFtZSwgdXNlcm5hbWUpCi0gICAgICAgIGV4ZWN1dGVfcHNxbF9jb21tYW5kKHBz
cWxfZGlyLCAncHNxbCcsIFtkYXRhYmFzZV9uYW1lLCAnLS1ob3N0JywgJ2xvY2FsaG9zdCcsICct
LWNvbW1hbmQnLAotICAgICAgICAgICAgJ2dyYW50IGFsbCBwcml2aWxlZ2VzIG9uIGRhdGFiYXNl
ICIlcyIgdG8gIiVzIjsnICUgKGRhdGFiYXNlX25hbWUsIHVzZXJuYW1lKV0pCisgICAgICAgICAg
ICBwcmludCAiR3JhbnRpbmcgYWxsIGFjY2VzcyBvbiAlcyB0byAlcyIgJSAoZGF0YWJhc2VfbmFt
ZSwgdXNlcm5hbWUpCisgICAgICAgICAgICBleGVjdXRlX3BzcWxfY29tbWFuZChwc3FsX2Rpciwg
J3BzcWwnLCBbZGF0YWJhc2VfbmFtZSwgJy0taG9zdCcsICdsb2NhbGhvc3QnLCAnLS1jb21tYW5k
JywgJ2dyYW50IGFsbCBwcml2aWxlZ2VzIG9uIGRhdGFiYXNlICIlcyIgdG8gIiVzIjsnICUgKGRh
dGFiYXNlX25hbWUsIHVzZXJuYW1lKV0pCiAKLSAgICAgICAgcHJpbnQgIlN1Y2Nlc3NmdWxseSBj
b25maWd1cmVkIHBvc3RncmVzIGRhdGFiYXNlICVzIGF0ICVzIiAlIChkYXRhYmFzZV9uYW1lLCBk
YXRhYmFzZV9kaXIpCisgICAgICAgICAgICBwcmludCAiU3VjY2Vzc2Z1bGx5IGNvbmZpZ3VyZWQg
cG9zdGdyZXMgZGF0YWJhc2UgJXMgYXQgJXMiICUgKGRhdGFiYXNlX25hbWUsIGRhdGFiYXNlX2Rp
cikKIAogICAgICAgICBkb25lID0gVHJ1ZQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0
aW9uOgpAQCAtNjgsNyArNzIsOSBAQCBkZWYgbWFpbigpOgogZGVmIGxvYWRfZGF0YWJhc2VfY29u
ZmlnKCk6CiAgICAgY29uZmlnX2pzb25fcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpv
aW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uL2NvbmZpZy5qc29uJykpCiAgICAgd2l0
aCBvcGVuKGNvbmZpZ19qc29uX3BhdGgpIGFzIGNvbmZpZ19qc29uX2ZpbGU6Ci0gICAgICAgIGRh
dGFiYXNlX2NvbmZpZyA9IGpzb24ubG9hZChjb25maWdfanNvbl9maWxlKS5nZXQoJ2RhdGFiYXNl
JykKKyAgICAgICAgY29uZmlnX2pzb24gPSBqc29uLmxvYWQoY29uZmlnX2pzb25fZmlsZSkKKyAg
ICAgICAgZGF0YWJhc2VfY29uZmlnID0gY29uZmlnX2pzb24uZ2V0KCdkYXRhYmFzZScpCisgICAg
ICAgIGRhdGFiYXNlX2NvbmZpZ1sndGVzdF9kYiddID0gY29uZmlnX2pzb24uZ2V0KCd0ZXN0RGF0
YWJhc2VOYW1lJykKIAogICAgIGlmIGRhdGFiYXNlX2NvbmZpZy5nZXQoJ2hvc3QnKSAhPSAnbG9j
YWxob3N0JzoKICAgICAgICAgc3lzLmV4aXQoJ0Nhbm5vdCBzZXR1cCBhIGRhdGFiYXNlIG9uIGEg
cmVtb3RlIG1hY2hpbmUnKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422307</attachid>
            <date>2021-03-04 16:16:32 -0800</date>
            <delta_ts>2021-03-04 18:49:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210304161628.patch</filename>
            <type>text/plain</type>
            <size>876914</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi5mMDhjOTgwYWFl
YTVmM2E0NTA2ZGNiZGU0OTMzZWE5YTdkZWU2MWUzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAyMS0wMi0yNiAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzZXJ2ZXIgdGVzdCBydW4gd2l0aCBuZXcg
bm9kZSB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjI0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanM6IEFkZCBhIGZvcmNlIGxvYWQgdG8g
bWFrZSBzdXJlIHVuaXQgdGVzdCBhbHdheXMgZ2V0IHRoZSBuZXdlc3QgZGF0YSBldmVuIHdpdGgg
YW4gZXhpc3Rpbmcgc2VydmVyCisgICAgICAgIChNYW5pZmVzdC5hc3luYyBmZXRjaCk6CisgICAg
ICAgIChNYW5pZmVzdC5hc3luYyBmZXRjaFJhd1Jlc3BvbnNlKToKKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL3JlcG9zaXRvcnkuanM6CisgICAgICAgIChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwpOiBtYWtlIHN1cmUgdGhlIHNvcnQgaXMgc3RhYmxlIGV2ZW4g
dGhlIG5hbWUgaXMgc2FtZQorICAgICAgICAoUmVwb3NpdG9yeSk6CisgICAgICAgICogc2VydmVy
LXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIu
cmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChh
c3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpz
OgorICAgICAgICAoYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQpOgorICAgICAgICAo
cmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUu
dGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAg
ICAgICAgKHJldHVybi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJl
ZF9oZXJlLnRoZW4pOgorICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzOgorICAgICAgICAoc2V0IHRoZW4pOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6CisgICAg
ICAgIChlbXB0eVJlcG9ydC50aGVuKToKKyAgICAgICAgKGFzeW5jIGluaXRpYWxSZXBvcnRDb21t
aXRzKToKKyAgICAgICAgKGFzeW5jIHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0dXMpOgorICAg
ICAgICAoYXN5bmMgdGVzdFdpdGhFeHBlY3RlZEZhaWx1cmUpOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAoZW1wdHlSZXBvcnQudGhlbik6Cisg
ICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdy
b3Vwcy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10
ZXN0cy5qczoKKyAgICAgICAgKHVwZGF0ZS50aGVuKToKKyAgICAgICAgKHRoZW4ucmVzcG9uc2Uu
ZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAodGhlbi5k
Yi5zZWxlY3RBbGwuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuLk1h
bmlmZXN0LmZldGNoLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJv
b3QtdGVzdHMuanM6CisgICAgICAgIChhc3luYyBjb25zdCk6CisgICAgICAgICogc2VydmVyLXRl
c3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2
ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5q
czoKKyAgICAgICAgKGFzeW5jIGNyZWF0ZUFuYWx5c2lzVGFzayk6CisgICAgICAgIChjb25zdC5j
b21taXRTZXQub2YudXBkYXRlZEdyb3Vwcy4wLnJlcXVlc3RlZENvbW1pdFNldHMpOgorICAgICAg
ICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0
cy5qczoKKyAgICAgICAgKGFzeW5jIGNvbnN0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChjcmVhdGVB
bmFseXNpc1Rhc2spOgorICAgICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lzVGFzay5zdHJpbmdf
YXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHJldHVybi5hZGRUcmlnZ2VyYWJsZUFuZENy
ZWF0ZVRhc2suc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChzdHJpbmdfYXBw
ZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
dXBhdGUtcnVuLXN0YXR1cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChhc3luYyBjcmVhdGVBbmFs
eXNpc1Rhc2spOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQt
ZmlsZS10ZXN0cy5qczoKKyAgICAgICAgKFRlc3RTZXJ2ZXIudGVzdENvbmZpZy51cGxvYWRGaWxl
TGltaXRJbk1CLjEudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21t
b24tb3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93cyk6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoKKyAgICAgICAgKFRl
bXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgIChh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50
aGVuKToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAgICAgKHJldHVybi5Nb2NrRGF0YS5h
ZGRNb2NrRGF0YS5kYi50aGVuKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRoZW4p
OgorICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczoK
KyAgICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9qcy9i
dWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90eXBl
LmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5idWls
ZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAgICAgICAgKEJ1aWxkYm90QnVpbGRF
bnRyeSk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0
KToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKToKKyAgICAgICAgKEJ1aWxk
Ym90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6CisgICAgICAgIChCdWlsZGJvdFN5bmNl
ci5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlcik6Cisg
ICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWls
ZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAgICog
dG9vbHMvanMvY29uZmlnLmpzOgorICAgICAgICAoQ29uZmlnLm5ldy5Db25maWcucHJvdG90eXBl
LmFsbCk6CisgICAgICAgICogdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qczoKKyAgICAgICAg
KHByb3RvdHlwZS5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQpOgorICAgICAgICAqIHRvb2xzL2pz
L3JlbW90ZS5qczoKKyAgICAgICAgKE5vZGVSZW1vdGVBUEkucHJvdG90eXBlLmNvbmZpZ3VyZSk6
CisKIDIwMjEtMDItMTggIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IGEgYnVnIHRoYXQgYSBzeW5jaW5nIHNjcmlwdCBtYXkgdHJ5IHRvIHJldXNlIGEgZGVs
ZXRlIHJvb3QuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9jb21taXQtc2V0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvY29tbWl0LXNldC5qcwppbmRleCAwNDIyOWUxZTAwYjI5ZDc4MzU2OTg5ZjQ5OWYw
NTg5NWVkMzJkZDM2Li4wMzgzMjVhNGQ2NmZjOTcwNDlkZjI1YmYyZWFlMjJjNmQwNWZhYzE4IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21t
aXQtc2V0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L2NvbW1pdC1zZXQuanMKQEAgLTkyLDggKzkyLDggQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMg
RGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIGNvbW1pdCA/IGNvbW1pdC5yZXZpc2lv
bigpIDogbnVsbDsKICAgICB9CiAKLSAgICBwYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkg
eyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRvcnkpOyB9Ci0g
ICAgcm9vdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9y
eVRvUm9vdE1hcC5nZXQocmVwb3NpdG9yeSk7IH0KKyAgICBwYXRjaEZvclJlcG9zaXRvcnkocmVw
b3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuaGFzKHJlcG9zaXRv
cnkpID8gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRvcnkpIDogbnVsbDsg
fQorICAgIHJvb3RGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9z
aXRvcnlUb1BhdGNoTWFwLmhhcyhyZXBvc2l0b3J5KSA/IHRoaXMuX3JlcG9zaXRvcnlUb1Jvb3RN
YXAuZ2V0KHJlcG9zaXRvcnkpIDogbnVsbDsgfQogICAgIHJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlSZXF1aXJlc0J1aWxkTWFw
LmdldChyZXBvc2l0b3J5KSB8fCBmYWxzZTsgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHJldHVybiBhIERhdGUgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMKaW5kZXggZjE4OTI5OGE0N2I0NThk
Y2FiN2I3YmE5ZjM1NWZlYjlmNGVjODBjYS4uZTU2YzgxMjBjMjM0MGJiMTRlNmMxYmY3NjUxODVm
NDU2YmMxYjAwMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvZGF0YS1tb2RlbC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIERhdGFN
b2RlbE9iamVjdCB7CiAgICAgc3RhdGljIGZpbmRCeUlkKGlkKQogICAgIHsKICAgICAgICAgdmFy
IGlkTWFwID0gdGhpcy5uYW1lZFN0YXRpY01hcCgnaWQnKTsKLSAgICAgICAgcmV0dXJuIGlkTWFw
ID8gaWRNYXBbaWRdIDogbnVsbDsKKyAgICAgICAgcmV0dXJuIGlkTWFwID8gKGlkTWFwLmhhc093
blByb3BlcnR5KGlkKSA/IGlkTWFwW2lkXSA6IG51bGwpIDogbnVsbDsKICAgICB9CiAKICAgICBz
dGF0aWMgbGlzdEZvclN0YXRpY01hcChuYW1lKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMKaW5kZXggOTMxOTg5OWRk
Y2Y2MDI3NTlkMDI0ODA5MDM1OTU3ZmUwNjNmMWE0Yi4uMDEyZjgyY2VkZTM4NDhhMTZmMWI4NGJl
MTI4ZTNiMzljNjIyMzIyZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNz
IFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICBvd25lZFJlcG9zaXRvcmll
cygpCiAgICAgewogICAgICAgICBjb25zdCBvd25lcnNoaXBzID0gdGhpcy5uYW1lZFN0YXRpY01h
cCgncmVwb3NpdG9yeU93bmVyc2hpcHMnKTsKLSAgICAgICAgcmV0dXJuIG93bmVyc2hpcHMgPyBv
d25lcnNoaXBzW3RoaXMuaWQoKV0gOiBudWxsOworICAgICAgICByZXR1cm4gb3duZXJzaGlwcyA/
IChvd25lcnNoaXBzLmhhc093blByb3BlcnR5KHRoaXMuaWQoKSkgPyBvd25lcnNoaXBzW3RoaXMu
aWQoKV0gOiBudWxsKSA6IG51bGw7CiAgICAgfQogCiAgICAgc3RhdGljIHNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwocmVwb3NpdG9yaWVzKQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBS
ZXBvc2l0b3J5IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAxOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKGEubmFtZSgpIDwgYi5uYW1lKCkpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoYS5pZCgpKSAtIHBhcnNlSW50KGIuaWQo
KSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGIuX2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRm
b3Jtcy10ZXN0cy5qcwppbmRleCAxMTJiMDkxNWZmOGY5OTQyNWVlNjg0NjUzYzI5NTQyYTQ3OTk5
YmM0Li4zYmRlZGVjN2I5YzJjMWJmN2Y0YTM5MGM2Yjc4Y2JkYzc3MjMwZTMzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXBsYXRmb3Jtcy10ZXN0cy5qcwpAQCAtNDUsMTkgKzQ1LDE5IEBAIGRlc2NyaWJlKCIvYWRtaW4v
cGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgncGxhdGZvcm1zJywgJ25hbWUnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7
CiAgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5rIE1v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSddLCAnVHJ1bmsgTW91
bnRhaW4gTGlvbicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZFBsYXRmb3Jtc1sxXVsnaWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkUGxhdGZvcm1zWzJdWydp
ZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgncGxhdGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1BsYXRmb3JtcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1BsYXRmb3Jtcy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1sw
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxh
dGZvcm1zWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdQbGF0Zm9ybXMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobmV3UGxhdGZv
cm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC02OSwxNSArNjksMTUgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBvbGRUZXN0UnVucyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9s
ZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10s
ICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
Ml1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9z
dW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RS
dW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKICAgICAgICAgICAg
ICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9p
ZCddLCAnZGVzdGluYXRpb24nOiBvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1faWQnXX0pOwpAQCAt
ODUsMjAgKzg1LDIwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgbmV3VGVzdFJ1bnMgPSByZXN1
bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVucy5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xk
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sxXVsn
cnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydwbGF0
Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMl1bJ3J1
bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzNdWydydW5f
aWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3Jt
X25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1
bl9jb25maWcnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sw
XVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNr
cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5f
c3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1
bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRm
b3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0
UnVuc1szXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUn
XSwgMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydy
dW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmlnJ10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTE0LDEzICsxMTQsMTMgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9y
bXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JD
b25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkQ29uZmlncyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9u
YW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10s
IHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENv
bmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJl
cG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSdd
LCAnY3VycmVudCcpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZENvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX2lkJ119KTsKQEAgLTEyOCwxMyArMTI4LDEzIEBAIGRlc2NyaWJlKCIvYWRt
aW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5
KHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxh
dGZvcm0nXV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IG5ld0NvbmZpZ3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdDb25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmln
c1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRl
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5cGUn
XSwgJ2Jhc2VsaW5lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsn
cGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1
cnJlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsncGxh
dGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5
cGUnXSwgJ2Jhc2VsaW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29u
Zmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAn
RnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sx
XVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVw
cm9jZXNzLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwppbmRleCAyZmY1M2NiZjg4YWMy
NGIwZTkyMTZiMGE3MmU0ZTM3MDkyMjdhODgxLi5iMDhhZjlmZGY5YzZiNDMwNTAyOTBkYzc1YTIz
NDVhNzI2NTFmOGU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpz
CkBAIC00OCwxMCArNDgsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVS
ZXBvcnRXaXRoUmV2aXNpb25zKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ1dl
YktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVwb3NpdG9yaWVzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSZXBzaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXS5vd25lciA9PSAxID8gcmVwb3Np
dG9yaWVzWzFdLmlkIDogcmVwb3NpdG9yaWVzWzBdLmlkOwogICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzIxMzIxNCcsICdyZXBvc2l0b3J5
Jzogd2Via2l0UmVwc2l0b3J5SWR9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBA
IC02NSwyNyArNjUsMjcgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBv
cnRbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0pOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkcyA9IHJlc3VsdFsw
XTsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzWzBdWyd0YWcnXSwgMTk4Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10s
ICcxOTg2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgcmVwb3J0SWQgPSByZXBvcnRzWzBdWydpZCddOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZyddLCAxOTg2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgJzE5ODYnKTsK
ICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9i
dWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9
KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAw
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKGAvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JHtyZXBvcnRJZH1gKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdi
dWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRzWzBdWyd0YWcnXSwgMTk4Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzWzBd
Wyd0YWcnXSwgJzE5ODYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk1LDEwICs5NSwx
MCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFswXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3QgPSByZXBvcnRzWzBdOwogICAg
ICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxk
ID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpA
QCAtMTA2LDE0ICsxMDYsMTQgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBuZXdQb3J0ID0gcmVwb3J0c1swXTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Wydj
b21taXR0ZWRfYXQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQb3J0Wydjb21taXR0ZWRfYXQn
XSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1
aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG9yaWdpbmFsUmVwcm90WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKICAgICAgICAg
ICAgIG9yaWdpbmFsUmVwcm90WydidWlsZCddID0gbnVsbDsKICAgICAgICAgICAgIG5ld1BvcnRb
J2J1aWxkJ10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvcmlnaW5hbFJl
cHJvdCwgbmV3UG9ydCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9yaWdp
bmFsUmVwcm90LCBuZXdQb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggODNmYmU1OTdmZTc5YTNhMWJmODA1MGFjODM3
N2JkZDg2NDc0NGU2Ni4uY2RlNWVkZjJiYjFmMjdkNWQzOTcxNWNiMzZhZWY2MGNiZTUxMmIwOSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVp
bGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTEzLDcgKzEzLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hv
dWxkIHJldHVybiAiVHJpZ2dlcmFibGVOb3RGb3VuZCIgd2hlbiB0aGUgZGF0YWJhc2UgaXMgZW1w
dHknLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JykudGhlbigoY29udGVudCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnVHJpZ2dlcmFi
bGVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0
YXR1cyddLCAnVHJpZ2dlcmFibGVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMjEsMTEgKzIxLDExIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVp
bGRfdHJpZ2dlcmFibGVzJywge25hbWU6ICdidWlsZC13ZWJraXQnfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2J1
aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMywzNiArMzMsMzYgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBN
b2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwg
WydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBs
b2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25l
cjogIjkzMTE2IiwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsx
XS5pZCwgNDA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICAgICAge2NvbW1pdDogJzIwMTcnLCBjb21taXRPd25lcjogIjk2MzM2IiwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1pdE93bmVyOiBu
dWxsLCBpZDogODc4MzIsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246ICcxMC4xMSAxNUEyODQn
LCB0aW1lOiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogOTMxMTYsIHJlcG9zaXRvcnk6ICcxMScs
IHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTogMTQ0NTk0NTgxNjg3OH0pCi0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMx
MTYnLCBpZDogJzE3OTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2Mt
NjE2MScsIHRpbWU6IDE0NTY5NjA3OTUzMDB9KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDk2MzM2LCBy
ZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9
KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtj
b21taXRPd25lcjogJzk2MzM2JywgaWQ6IDIwMTcsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lv
bjogJ293bmVkLWpzYy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1p
dE93bmVyOiBudWxsLCBpZDogJzg3ODMyJywgcmVwb3NpdG9yeTogJzknLCByZXZpc2lvbjogJzEw
LjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTMxMTYn
LCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4
Nzh9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMl0sIHtjb21taXRPd25lcjogJzkzMTE2JywgaWQ6ICcxNzk3JywgcmVwb3NpdG9yeTogJzIx
MycsIHJldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCB0aW1lOiAxNDU2OTYwNzk1MzAwfSkKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzNdLCB7
Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTYzMzYnLCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lv
bjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9KQorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtjb21taXRPd25lcjogJzk2MzM2
JywgaWQ6ICcyMDE3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkx
OTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwogICAgICAgICAg
ICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAg
ICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV1bJ2NyZWF0ZWRBdCddID0gMDsKICAgICAg
ICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXVsnY3JlYXRlZEF0J10gPSAwOwogICAg
ICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdWydjcmVhdGVkQXQnXSA9IDA7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXSwg
e2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5
R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5
MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3Rh
dHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDog
MH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJs
ZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3Jt
OiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0MDQnLCBz
dGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVp
bGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgw
JywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcy
MDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0
U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1
cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUn
LCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIw
MDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVy
OiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlw
dGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0
b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6
ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywg
c3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRB
dDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcx
MDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1
JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVz
OiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBu
dWxsLCBjcmVhdGVkQXQ6IDB9KTsKICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAsMzAgKzcw
LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRz
JywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMs
ICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3lu
Yy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC0x
MDEsNTMgKzEwMSw1MyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVu
Z3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5p
ZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5p
ZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
cmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAot
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAx
MDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
JzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAg
IGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0IGlmIHNhbWUgY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVy
LmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Vi
a2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0
LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdj
b21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDMp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAg
ICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29t
bWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNv
bW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAn
ODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMx
MTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
LCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgNzA4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwp
OwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7NzA4OiB7CiAgICAgICAgICAgICBzdGF0dXM6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiA3MDR9fTsKQEAgLTE1
OSwyOSArMTU5LDI5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5z
b3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVz
JywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQw
Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAg
ICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBj
b21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3Jywg
Y29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5
MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0p
OwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcx
MDEnfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OwogICAgIH0pOwogCiAgICAgaXQoJ3JldXNlIHJvb3RzIGZyb20gZXhpc3RpbmcgYnVpbGQgcmVx
dWVzdHMgaWYgdGhlIGNvbW1pdHMgc2V0cyBhcmUgZXF1YWwgZXhjZXB0IHRoZSBleGlzdGVuY2Ug
b2YgY3VzdG9tIHJvb3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTk1LDMyICsxOTUsMzIgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0pOwog
ICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2
MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5j
dXN0b21Sb290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5jdXN0b21Sb290cywgWycxMDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAg
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RS
ZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICAgICAg
c3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29y
ZCcsCkBAIC0yMjgsMjcgKzIyOCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVz
dHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5pZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31d
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3Rz
LCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0
b21Sb290cywgWycxMDQnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRo
ICJDYW5ub3RSZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byByZXVzZSBpcyBkZWxldGVk
JywgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDMxICsyOTksMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVp
bGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5xdWVyeShgQ1JFQVRFIFRSSUdHRVIgZW11bGF0ZV9maWxlX3B1cmdlIEFGVEVSIFVQ
REFURSBPRiBjb21taXRzZXRfcm9vdF9maWxlIE9OIGNvbW1pdF9zZXRfaXRlbXMKICAgICAgICAg
ICAgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBlbXVsYXRlX2ZpbGVfcHVyZ2UoKTtg
KTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkLCA2MDApOwotCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVs
bCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgIHN0YXR1
czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51
cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1
c2VEZWxldGVkUm9vdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAg
ICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zMzcsMjkgKzMzNiwyOSBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9j
a0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgp
LCBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBmYWxzZSk7CiAgICAgICAg
IGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVz
QnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0
dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMg
PSB7OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxk
UmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07Cisg
ICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAg
ICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnTm9NYXRjaGluZ0NvbW1pdFNldEl0ZW0nLCAoKSA9
PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1y
ZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMt
c2xhdmUnLApAQCAtMzc0LDMwICszNzMsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDEsIGNvbW1pdDogMTExMTY4fSkKICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICcxMTExNjgnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
OF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAw
OiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1c2VSb290V2l0aE5vbk1hdGNoaW5nQ29tbWl0
U2V0cycsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCkBAIC00MTAsMzAgKzQwOSwzMCBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRk
TW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ3J1bm5p
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycs
ICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncnVu
bmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVs
bH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAncnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDog
ewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAgIGF3YWl0IGFzc2Vy
dFRocm93cygnQ2FuT25seVJldXNlQ29tcGxldGVkQnVpbGRSZXF1ZXN0JywgKCkgPT4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywK
ICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAgLTQ0NSwyNyArNDQ0
LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWls
ZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRl
bnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdz
dGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0
OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDog
dHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewogICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogOTk5fX07CkBAIC00ODEsNTUgKzQ4MCw1NSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsn
YnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9h
ZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAg
ICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLmlkLCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnOScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lv
biwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXVsxXS5pZCwgOTMxMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9u
LCAnMTkyNzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2
NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwg
NDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5v
cmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZv
cm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwg
JzIwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJzknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNpb24sICcx
MC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcxMScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdHMnXVsyXS5pZCksIDk2MzM2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9uLCAnMTky
NzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVz
dCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5v
cmRlciksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0
U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAn
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIpLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNTM3LDU1ICs1MzYsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0P3VzZUxlZ2FjeUlkUmVzb2x1dGlvbj10cnVlJyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10u
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzFdLmlkKSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAg
ICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnks
ICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11b
MV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgWydzb21lIHRlc3Qn
XSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCBbJ3NvbWUgdGVz
dCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0uaWQsIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsIFsnc29tZSB0
ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9y
bScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgWydzb21l
IHRlc3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnbWFjT1MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNp
b24sICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0u
cmV2aXNpb24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0u
cmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3
MDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBw
bGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZv
cm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21lIHRlc3QnXSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3NvbWUg
dGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3Jk
ZXIpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRl
c3QsIFsnc29tZSB0ZXN0J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTk1LDcgKzU5
NCw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxk
UmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsK
ICAgICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTYwMyw5NCArNjAyLDk0IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBs
YXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRm
b3JtKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwg
NzA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA5MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgp
LCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwNSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwNSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwg
MSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBp
bnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3Rz
WzFdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgOTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwg
cGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVx
dWVzdHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzA3KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElk
KCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29t
bWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFy
dGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCks
ICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoMjEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlw
dENvcmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKIAogICAgICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1p
dFNldCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAu
MTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgY29u
c3QgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2
aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1
ODE2ODc4KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1
NjUwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQu
cmV2aXNpb24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtz
ZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKIAogICAgICAgICAgICAg
Y29uc3QgZmlyc3RTSkNDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24o
KSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0U0pD
Q29tbWl0LnRpbWUoKSwgMTQ1Njk2MDc5NTMwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0U0pDQ29tbWl0LnRpbWUoKSwgMTQ1Njk2
MDc5NTMwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFNKQ0NvbW1pdCA9IHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMwODM3MTAw
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lv
bigpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgr
c2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTY5OCw3ICs2OTcsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93
bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IGF3
YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC03
MDgsMzMgKzcwNywzMyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3RzWzBdOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgNzA0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVyKCksIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCkpLCA5MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lm9yZGVy
KCkpLCAwKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKSBpbnN0
YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5oYXNTdGFydGVkKCkp
OwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CiAKICAgICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgY29uc3QganNjID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCgyMTMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3Jl
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlwdENv
cmUnKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
OTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMoKS5zb3J0KChvbmUsIGFub3RoZXIpID0+IG9uZS5p
ZCgpIDwgYW5vdGhlci5pZCgpKSwgW29zeCwgd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEy
ODQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBw
YXJzZUludChvbmUuaWQoKSkgLSBwYXJzZUludChhbm90aGVyLmlkKCkpKSwgW29zeCwgd2Via2l0
XSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCkuYWNj
ZXB0cyhjb21taXRTZXQpKTsKICAgICB9KTsKIApAQCAtNzQ0LDcgKzc0Myw3IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAg
ICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgICAgIGFz
c2VydCh0ZXN0KTsKQEAgLTc1Miw3OSArNzUxLDc5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZv
cm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxh
dGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHBs
YXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50
ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgp
KSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFd
LnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1p
dFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzRmluaXNo
ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmlzUGVuZGluZygp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkp
LCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3Jk
ZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0
U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0KCks
IHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZv
cm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnBsYXRm
b3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFydGVkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5nKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNP
UycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycp
OwogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAg
ICAgICAgICAgbGV0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOwogCiAgICAgICAgICAgICBs
ZXQgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRD
b21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1
QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4x
MSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gp
LCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
CiAKICAgICAgICAgICAgIGxldCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LnJldmlz
aW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNvbmRDb21t
aXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgbGV0IGZpcnN0
V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7
CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRXZWJLaXRDb21taXQgPSBzZWNvbmRDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK3NlY29uZFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtODM0LDcgKzgzMyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODQ0LDcg
Kzg0Myw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1
aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODU0LDcgKzg1Myw3IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVz
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsK
QEAgLTg3Niw3ICs4NzUsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9
KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVz
dHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1swXS5pc1BlbmRpbmcoKSk7CkBAIC04OTksMzIgKzg5OCwzMiBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIo
KSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3
MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3Vw
SWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpLCA3MTIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCksIDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgNzEzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCks
IDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5v
cmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5p
ZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgp
KSwgNzEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSksIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDcx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLmlkKCkpLCA3MTIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0u
dGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgNzEzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLnRlc3RH
cm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtOTM3LDMwICs5MzYsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJh
YmxlLmFsbCgpLmZpbmQoKHRyaWdnZXJhYmxlKSA9PiB0cmlnZ2VyYWJsZS5uYW1lKCkgPT0gJ2J1
aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLnJlcG9z
aXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
Z3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJs
ZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwog
ICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlH
cm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzNdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCAxNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgMTcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlk
KCksIDE3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVw
b3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s3XS5pZCgpLCAxNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3Np
dG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9y
eUdyb3VwKCksIGdyb3Vwc1sxXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkpLCAxNzAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNV0uaWQoKSksIDE3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgMTcwMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCAxNzAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcxLDMyICs5NzAsMzIgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3
MTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzFdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uaWQoKSwgNzEyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJd
LnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLmlkKCksIDcxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5v
cmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlk
KCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0
R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbN10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzBdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5v
cmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpKSwgNzEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIo
KSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbM10uaWQoKSksIDcxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAz
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVd
LmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgp
KSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzZdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcw
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s3XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwMDgsMzYgKzEwMDcsMzYgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAn
cGFzc3dvcmQnLAogICAgICAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRl
cwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkLCA3MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjYW5jZWxlZCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAn
MjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0s
ICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bMV0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10u
b3JkZXIsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2Fu
Y2VsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFd
LmlkKSwgNzAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0u
cGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsK
KworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLm9y
ZGVyKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
Ml0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVz
dHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICAgICAg
fSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ1Nob3VsZCBub3QgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAxNTE5
MTBiYWViMjU1NjAyNmI5MmYwYTMxYmQxOTA1NjhiZmFiNzEzLi4yODU2OWYwNjM3MzA0ZTNhNjJj
Zjc3MDA5MjM5M2Y3ZjBlNzM2NTk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTExOSwyMiAr
MTE5LDIyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0LCBzdWJtaXR0
ZWQpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJt
aXR0ZWRbJ3JldmlzaW9uJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwobmV3IERhdGUoY29tbWl0
Wyd0aW1lJ10pLnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2UnXSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0dGVkWydhdXRob3In
XVsnbmFtZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9yRW1haWwnXSwg
c3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFsncmV2aXNpb24nXSwgc3VibWl0dGVkWydyZXZpc2lvbiddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ldyBEYXRlKGNvbW1pdFsndGltZSddKS50b0lTT1N0cmluZygp
LCBzdWJtaXR0ZWRbJ3RpbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRb
J21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ25hbWUnXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvckVtYWlsJ10sIHN1Ym1p
dHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIGlmKHN1Ym1pdHRlZFsncHJldmlv
dXNDb21taXQnXSkgewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFsncHJldmlvdXNDb21t
aXQnXSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOwogICAgICAgICB9CiAgICAgfQogCiAg
ICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vJywgKCkgPT4gewogICAgICAg
ICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8g
bWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQnKS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Niw4ICsxNDYsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE1
NSwxOCArMTU1LDE4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMn
XTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21t
aXRzWzBdLCBzdWJtaXR0ZWRDb21taXRzWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRzWzFdLCBzdWJtaXR0ZWRDb21taXRzWzFdKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRz
WzJdLCBzdWJtaXR0ZWRDb21taXRzWzJdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1syXVsncHJldmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMl1bJ3ByZXZpb3VzQ29tbWl0J10s
IGNvbW1pdHNbMV1bJ2lkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0x
NzQsMTkgKzE3NCwxOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYLycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRzJ107CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN5c3RlbVZlcnNpb25Db21taXRz
Wydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCBzdWJtaXR0ZWRDb21taXRzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzRdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbM11bJ3JldmlzaW9u
J10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzFdWydy
ZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1s1XVsncmV2
aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCBzdWJtaXR0ZWRDb21taXRzLmxl
bmd0aCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3Jl
dmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRD
b21taXRzWzRdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbM11bJ3Jldmlz
aW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21t
aXRzWzFdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1s1XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUo
Jy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb2xkZXN0JywgKCkgPT4gewogICAgICAgICBpdCgi
c2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hp
bmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0JykudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMDIsOCArMjAyLDggQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dl
YktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjE0LDggKzIxNCw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
L29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yMjcsOSArMjI3LDkgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzVdWydyZXZpc2lvbiddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cydd
WzVdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTIzNyw3ICsyMzcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXRlc3QnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9s
YXRlc3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5v
dEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI0NSw4ICsyNDUs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
bGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNTcsOCArMjU3LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwpAQCAtMjcwLDkgKzI3MCw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhdGVzdCcpOwogICAgICAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lz
dGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI4NCwxMyArMjg0LDEzIEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgZGIucXVlcnkoYERF
TEVURSBGUk9NIHRlc3RzIFdIRVJFIHRlc3RfbmFtZSA9ICdBLVRlc3QnYCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IHBsYXRmb3JtcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAg
IGNvbnN0IHRlc3RfbWV0cmljcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdF9tZXRyaWNzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0ZXN0cycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgYXNzZXJ0KHRl
c3RfbWV0cmljc1swXS5pZCAhPSB0ZXN0c1swXS5pZCk7CiAKQEAgLTMwMiw3ICszMDIsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2Fw
aS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXN0LXJlcG9ydGVkJywgKCkgPT4gewogICAgICAgICBp
dCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0
Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcp
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzE0LDggKzMxNCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCkBAIC0zMjMsOCArMzIzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0MCw4ICszNDAsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQp
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMzUz
LDkgKzM1Myw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3Rl
bVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzcyLDMxICszNzIsMzEgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjcmdG89MzcwJyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQg
PSByZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNp
b24sICdTaWVycmExNkM2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXQucmV2aXNpb24sICdTaWVycmExNkM2OCcpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzcwJnRvPTM2NycpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0yMDAmdG89Mjk5Jyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2OSZ0bz00MzInKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVz
dWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3Vs
dHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1Np
ZXJyYTE2RDMyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5y
ZXZpc2lvbiwgJ1NpZXJyYTE2RDMyJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vPGNvbW1p
dD4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8yMTA5NDknKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVw
b3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQx
Niw3ICs0MTYsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21t
aXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NTAnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAg
ICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAg
IHJldmlzaW9uOiAnMjEwOTUwJywKQEAgLTQ0Nyw4ICs0NDcsOCBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8y
MTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00NTgsOCArNDU4LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OT9wcmVmaXgtbWF0Y2g9ZmFsc2UnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29t
bWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7
CiAKQEAgLTQ2OCw4ICs0NjgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3Qg
cmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5
P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1Nh
bWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVsxXSk7CiAgICAgICAgIH0pOwogCkBAIC00NzgsNyArNDc4LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmlndW91c1JldmlzaW9uUHJl
Zml4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J0FtYmlndW91c1JldmlzaW9uUHJlZml4Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJz
aG91bGQgbm90IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gdGhlcmUgaXMg
YSBjb21taXQgcmV2aXNpb24gZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCByZXZpc2lvbiBwcmVm
aXgiLCBhc3luYyAoKSA9PiB7CkBAIC00ODYsOCArNDg2LDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNPbmVQcmVm
aXhPZlRoZU90aGVyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRb
J2NvbW1pdHMnXVswXSwgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXJbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgIH0pOwogCkBAIC00OTYsNyArNDk2LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
V2ViS2l0LzIxMDkwP3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgic2hvdWxkIG5vdCBtYXRjaCBwcmVmaXggYW5kIHJldHVybiAn
VW5rb3duQ29tbWl0JyB3aGVuIHN2biBjb21taXQgc3RhcnRzIHdpdGggJ3InIHByZWZpeCBhbmQg
dGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2giLCBhc3luYyAoKSA9PiB7CkBAIC01MDQsNyArNTA0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L3IyMTA5NT9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29t
bWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBoYW5k
bGUgY29tbWl0IHJldmlzaW9uIHdpdGggc3BhY2UiLCAoKSA9PiB7CkBAIC01MTUsMTIgKzUxNSwx
MiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PUyUyMFgvMTAuMTEuMTAlMjBTaWVycmExNkM2
NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0cy5jb21taXRzWzBdOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXQuaWQsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXQucmV2aXNpb24sICcxMC4xMS4xMCBTaWVycmExNkM2NycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXQuaWQpLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAg
U2llcnJhMTZDNjcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTM4LDEz
ICs1MzgsMTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVy
LXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdP
SycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMu
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gcmVzdWx0
cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvd25lZENvbW1pdC5y
ZXBvc2l0b3J5LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21taXQu
cmV2aXNpb24sICcyMTA5NTAnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRD
b21taXQuaWQsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChvd25lZENvbW1pdC5yZXBvc2l0b3J5KSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG93bmVkQ29tbWl0LmlkKSwgMik7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1OCw4ICs1NTgsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEz
MjMnKQogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHRzLmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTU3Myw4ICs1NzMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEzMjQnKQogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pCiAgICAgfSk7CkBAIC01ODIsNyArNTgyLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3Np
dG9yeT4vP3ByZWNlZGluZ1JldmlzaW9uPTxjb21taXQtMT4mbGFzdFJldmlzaW9uPTxjb21taXQt
Mj4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8/ZnJvbT0yMTA5MDAmdG89MjExMDAwJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9y
eU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC01OTQsNyArNTk0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5MDAmbGFzdFJldmlzaW9uPTIxMTAwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYwNyw4ICs2MDcsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OSZs
YXN0UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02
MjEsNyArNjIxLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdS
ZXZpc2lvbj0yMTA5NTAmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZENvbW1pdFJhbmdlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MzUsOCArNjM1LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIz
Jmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
Y29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2
QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21taXQpID0+IGNvbW1p
dFsncmV2aXNpb24nXSksIFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIyNjU3J10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NTAsNyArNjUwLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxh
c3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NjQsNyArNjY0LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RS
ZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzgsOCArNjc4LDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZp
c2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cydd
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTY5Myw4ICs2OTMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5n
UmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNzA4LDggKzcwOCw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RSZXZp
c2lvbj0yMTA5NTAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1
Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c0NvbW1pdDogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDkn
LApAQCAtNzQzLDggKzc0Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0y
MTA5NDcmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVsxXSk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKaW5kZXgg
YmRhMjc0ZmIxOTk2ZDQ3YTYxMjE0M2ZjZjUyMmQ2ZDk5NGM0ZWZkOC4uYWM3MTllOWRjODAxZTJh
NjAzZDFkMzM4YTBhZjk2ZTcxNzk2ZjA3MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKQEAgLTEz
LDcgKzEzLDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAg
ICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdoZW4gZGF0YWJhc2UgaXMg
ZW1wdHkiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChtYW5pZmVzdCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgpLCBbJ2FsbCcsICdi
dWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJvYXJkcycsCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG1hbmlmZXN0KS5zb3J0
KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hib2FyZCcsICdkYXNo
Ym9hcmRzJywKICAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1pdCcsICdtYXhSb290
UmV1c2VBZ2VJbkRheXMnLCAnbWV0cmljcycsICdwbGF0Zm9ybUdyb3VwcycsICdyZXBvc2l0b3Jp
ZXMnLCAnc2l0ZVRpdGxlJywKICAgICAgICAgICAgICAgICAnc3RhdHVzJywgJ3N1bW1hcnlQYWdl
cycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0cmlnZ2VyYWJsZXMnXSk7
CiAKQEAgLTQ1LDIyICs0NSwyMiBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190
cmFja2VycycsIGJ1Z3ppbGxhRGF0YSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczov
L3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdo
dHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgICAgIGxldCBtYW5pZmVzdCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRl
bnQpOwogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRy
YWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQu
b3JnLycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAn
QnVnemlsbGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1Vy
bCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3Jn
LycpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgY2xlYXIgQnVnIGFu
ZCBCdWdUcmFja2VyIHN0YXRpYyBtYXBzIHdoZW4gcmVzZXQiLCBhc3luYyAoKSA9PiB7CiAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190cmFja2VycycsIGJ1
Z3ppbGxhRGF0YSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDog
J2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJs
OiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CkBAIC05MiwyOCArOTIs
MjggQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdX
ZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24o
MTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53
ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBsZXQgbWFjb3MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY29zKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCBpb3MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChpb3MpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CiAKICAgICAgICAgICAgIGxldCB0cmFj
a2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydCh0cmFja2Vy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8v
d2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmV3
QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93
ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tl
ci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CiAKICAgICAgICAgICAgIHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDIpOwogICAgICAg
ICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIu
bmFtZSgpLCAnUmFkYXInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lKHRyYWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnUmFkYXInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKHRy
YWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTMxLDE5ICsxMzEsMTkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KDExKTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5vd25lZFJlcG9zaXRvcmllcygpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXQub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwogICAgICAgICAgICAg
YXNzZXJ0KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5hbWUoKSwgJ09TIFgn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3N4Lm93bmVkUmVwb3NpdG9yaWVzKCks
IFtSZXBvc2l0b3J5LmZpbmRCeUlkKDM1KV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeC5uYW1lKCksICdPUyBYJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9yeS5maW5kQnlJZCgzNSldKTsK
IAogICAgICAgICAgICAgbGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMjIpOwogICAgICAg
ICAgICAgYXNzZXJ0KGlvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zLm5hbWUoKSwg
J2lPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5vd25lZFJlcG9zaXRvcmllcygp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9T
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm93bmVkUmVwb3NpdG9yaWVz
KCksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIGRl
c2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvbWFuaWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRlcnMsIHsKICAgICAgICAgICAgICAg
ICAnMSc6IHtuYW1lOiAnU29tZUJ1aWxkZXInLCBidWlsZFVybDogJ2h0dHBzOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy8kYnVpbGRlck5hbWUvYnVpbGQvJGJ1aWxkVGFnJ30sCiAgICAgICAg
ICAgICAgICAgJzInOiB7bmFtZTogJ1NvbWVPdGhlckJ1aWxkZXInLCBidWlsZFVybDogbnVsbH0K
ICAgICAgICAgICAgIH0pOwpAQCAtMTY1LDEzICsxNjUsMTMgQEAgZGVzY3JpYmUoJy9hcGkvbWFu
aWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCBidWlsZGVyID0gQnVpbGRl
ci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZGVyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAnaHR0cHM6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZUJ1aWxkZXInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1aWxkKDEyMyksICdodHRw
czovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxkZXIvYnVpbGQvMTIzJyk7CiAK
ICAgICAgICAgICAgIGJ1aWxkZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDIpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIubmFtZSgp
LCAnU29tZU90aGVyQnVpbGRlcicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIu
dXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRlci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTIwMiwxNCArMjAyLDE0IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0
JywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKICAg
ICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LnRlc3RzLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnQudGVzdHMsIHsKICAgICAgICAgICAgICAgICAiMSI6IHsibmFtZSI6ICJTb21lVGVzdCIs
ICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgICAgICAiMiI6IHsi
bmFtZSI6ICJTb21lT3RoZXJUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVybCI6IG51bGx9LAog
ICAgICAgICAgICAgICAgICIzIjogeyJuYW1lIjogIkNoaWxkVGVzdCIsICJwYXJlbnRJZCI6ICIx
IiwgInVybCI6IG51bGx9LAogICAgICAgICAgICAgICAgICI0IjogeyJuYW1lIjogIkdyYW5kQ2hp
bGQiLCAicGFyZW50SWQiOiAiMyIsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQubWV0cmljcywgeworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKICAgICAgICAgICAg
ICAgICAnNSc6IHtuYW1lOiAnVGltZScsIHRlc3Q6ICcxJywgYWdncmVnYXRvcjogbnVsbH0sCiAg
ICAgICAgICAgICAgICAgJzYnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMicsIGFnZ3JlZ2F0b3I6
ICdUb3RhbCd9LAogICAgICAgICAgICAgICAgICc3Jzoge25hbWU6ICdNYWxsb2MnLCB0ZXN0OiAn
MicsIGFnZ3JlZ2F0b3I6ICdUb3RhbCd9LApAQCAtMjQ0LDcgKzI0NCw3IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGlvc0dyb3Vw
KTsKICAgICAgICAgICAgIGFzc2VydChtYWNHcm91cCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwog
ICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpAQCAtMjUzLDkgKzI1Myw5
IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdFRpbWUpKTsKICAgICAgICAg
ICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAg
ICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNHcm91cCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLmdyb3VwKCksIG1hY0dyb3Vw
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1Mg
OSBpUGhvbmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25l
NXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAgICAgICAgICAgICBhc3NlcnQoaW9zOWlw
aG9uZTVzLmhhc1Rlc3Qoc29tZVRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9u
ZTVzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBo
b25lNXMuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI2NCw2MyArMjY0LDYzIEBAIGRlc2NyaWJl
KCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5
aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdE1hbGxvYykpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgpLCBpb3NHcm91cCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLmdyb3VwKCksIGlv
c0dyb3VwKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjUGxhdGZvcm1zID0gbWFjR3JvdXAucGxh
dGZvcm1zKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zWzBdLCBtYXZlcmlja3Mp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJp
Y2tzKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zUGxhdGZvcm1zID0gaW9zR3JvdXAucGxhdGZv
cm1zKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBpb3M5aXBob25lNXMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlw
aG9uZTVzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1Nv
bWVUZXN0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3QucGFyZW50VGVzdCgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QucGF0aCgpLCBb
c29tZVRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdC5uYW1l
KCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0
LnBhcmVudFRlc3QoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNvbWVUZXN0LnBhdGgoKSwgW3NvbWVUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNvbWVU
ZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVUZXN0TWV0cmljXSk7Ci0K
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5uYW1lKCksICdUaW1lJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMuYWdncmVnYXRvck5hbWUo
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMubGFiZWwo
KSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3RNZXRyaWMu
Y2hpbGRNZXRyaWNzKCksIGNoaWxkVGVzdC5tZXRyaWNzKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNvbWVUZXN0TWV0cmljLmZ1bGxOYW1lKCksICdTb21lVGVzdCA6IFRpbWUnKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVy
VGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QucGFyZW50VGVz
dCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZU90aGVyVGVzdC5w
YXRoKCksIFtzb21lT3RoZXJUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21lVGVzdE1ldHJpY10p
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMubmFtZSgp
LCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmlj
LmFnZ3JlZ2F0b3JOYW1lKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVUZXN0TWV0cmljLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmNoaWxkTWV0cmljcygpLCBjaGlsZFRlc3QubWV0
cmljcygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5m
dWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRlc3QnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhcmVudFRlc3QoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QucGF0aCgp
LCBbc29tZU90aGVyVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFzb21lT3RoZXJUZXN0Lm9u
bHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLm5hbWUoKSwgJ1RpbWUnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5hZ2dyZWdhdG9y
TmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0
Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZSA6IFRvdGFsJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uY2hpbGRNZXRyaWNzKCkubGVuZ3Ro
LCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsw
XS5mdWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5hbWUoKSwgJ01hbGxv
YycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFd
LmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNv
bWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2MgOiBUb3RhbCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmNoaWxkTWV0
cmljcygpLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVz
dC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBNYWxsb2MgOiBUb3Rh
bCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxk
VGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5wYXJlbnRUZXN0KCks
IHNvbWVUZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hpbGRUZXN0LnBhdGgo
KSwgW3NvbWVUZXN0LCBjaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLm5hbWUo
KSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0
Lm1ldHJpY3MoKVswXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGlt
ZSA6IFRvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVz
dC5tZXRyaWNzKClbMF0uY2hpbGRNZXRyaWNzKCkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAn
U29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5hbWUoKSwgJ01hbGxvYycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmFn
Z3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2MgOiBUb3RhbCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFd
LmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3Qg
OiBNYWxsb2MgOiBUb3RhbCcpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hp
bGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNoaWxkVGVzdC5wYXJlbnRUZXN0KCksIHNvbWVUZXN0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3Rd
KTsKICAgICAgICAgICAgIGFzc2VydCghY2hpbGRUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJp
YygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hpbGRUZXN0LmNoaWxkVGVzdHMo
KSwgW2dyYW5kQ2hpbGRUZXN0XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0
Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVz
dC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hp
bGRUZXN0IDogVGltZScpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JhbmRDaGlsZFRl
c3QubmFtZSgpLCAnR3JhbmRDaGlsZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5k
Q2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxkVGVzdCwgZ3Jh
bmRDaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY2hpbGRU
ZXN0LmNoaWxkVGVzdHMoKSwgW2dyYW5kQ2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBd
LmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IDogVGltZScpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubmFtZSgpLCAnR3JhbmRD
aGlsZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBh
cmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxkVGVzdCwgZ3JhbmRDaGls
ZFRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydChncmFuZENoaWxkVGVzdC5vbmx5Q29udGFpbnNT
aW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyYW5kQ2hpbGRU
ZXN0LmNoaWxkVGVzdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hp
bGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
YW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29t
ZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QuY2hpbGRUZXN0cygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0
cmljcygpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRD
aGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdT
b21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IFx1MjIwQiBHcmFuZENoaWxkIDogVGltZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc0LDU5ICszNzQsNTkgQEAgZGVzY3JpYmUoJy9hcGkv
bWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0
Y2goKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVy
bEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdo
dHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3NXZWJr
aXQxID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c1dlYmtpdDEub3duZXJJZCgpLCA5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtp
dDEudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc1dlYmtpdDEub3du
ZXJJZCgpKSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3NXZWJraXQxLnVy
bEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAg
ICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAgY29u
c3Qgc2hhcmVkID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxNik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2hhcmVkLm5hbWUoKSwgJ1NoYXJlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKIAogICAgICAgICAgICAgY29uc3Qgc29t
ZVRlc3QgPSBUZXN0LmZpbmRCeUlkKDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVU
ZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKIAogICAgICAgICAgICAgY29uc3Qgc29tZU90
aGVyVGVzdCA9IFRlc3QuZmluZEJ5SWQoMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29t
ZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNoaWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQoMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKIAog
ICAgICAgICAgICAgY29uc3QgaW9zOWlwaG9uZTVzID0gUGxhdGZvcm0uZmluZEJ5SWQoMjMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhv
bmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25lNXMubmFt
ZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hdmVyaWNrcyA9
IFBsYXRmb3JtLmZpbmRCeUlkKDQ2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlj
a3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwogCiAgICAgICAgICAg
ICBjb25zdCBzaWVycmEgPSBQbGF0Zm9ybS5maW5kQnlJZCgxMDQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNpZXJyYS5uYW1lKCksICdUcnVuayBTaWVycmEgTWFjQm9va1BybzExLDInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2ll
cnJhIE1hY0Jvb2tQcm8xMSwyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2Vy
YWJsZS5hbGwoKS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRy
aWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMyk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY29zVHJp
Z2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwg
bWF2ZXJpY2tzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNvc1RyaWdnZXJhYmxlLm5h
bWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChtYWNvc1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNv
bWVPdGhlclRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVz
dCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVz
dCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBt
YXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zVHJp
Z2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJU
ZXN0LCBpb3M5aXBob25lNXMpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGlvc1RyaWdn
ZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NU
cmlnZ2VyYWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAg
YXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdp
b3MtYnVpbGQud2Via2l0Lm9yZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgaW9zOWlwaG9uZTVz
KSwgaW9zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxl
LmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgaW9zOWlwaG9uZTVzKSwgaW9zVHJp
Z2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZp
bmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1Ry
aWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5m
aW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1RyaWdn
ZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJs
ZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwgc2llcnJhKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1lKCksICdtYWMtYnVpbGQud2Via2l0Lm9y
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1RyaWdnZXJhYmxlLm5hbWUo
KSwgJ21hYy1idWlsZC53ZWJraXQub3JnJyk7CiAgICAgICAgICAgICBhc3NlcnQobWFjVHJpZ2dl
cmFibGUuYWNjZXB0ZWRUZXN0cygpLmhhcyhzb21lVGVzdCkpOwogCiAgICAgICAgICAgICBjb25z
dCBncm91cHMgPSBtYWNUcmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIFRyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoZ3JvdXBzKTsKIAogICAgICAgICAgICAgY29u
c3QgZW1wdHlDdXN0b21TZXQgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwpAQCAtNDQ1LDM1ICs0NDUs
MzUgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCwgJzE5MTYyMicpOwogICAgICAgICAgICAgY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVk
LnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQsICc4NjQ1NicpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShn
cm91cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRX
aXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
c1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQp
LCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0u
aXNIaWRkZW4oKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5h
Y2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhl
bXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0
aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShn
cm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXN0b21TZXRXaXRo
T1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRz
KGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdp
dGhXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91
cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRXaXRo
T1NYKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFj
Y2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNo
YXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0u
YWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uaXNIaWRkZW4oKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFj
b3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhl
bXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cHNbMV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdl
YktpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5h
Y2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQp
LCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0ubmFt
ZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMl0u
cmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXN0b21TZXRX
aXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sy
XS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRB
bmRTaGFyZWQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
Ml0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKaW5kZXggMzUyYjYxMmY3
Njc2MTg1NWU3OGY1MzZiYjNhMTMwODk1NWFjYjFmNC4uMjZhZjNkMzAxYzVkYTMzNDY2MjE5NDg3
YjAzNDc3Y2EyMjRkY2NjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwpA
QCAtMjQzLDEyICsyNDMsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRo
QnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1l
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVl
cnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP21ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3Vz
UmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU2LDEyICsyNTYsMTIgQEAg
ZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygn
TW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9t
ZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9YCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTI2OSwxMiArMjY5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAn
VGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9w
bGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWEmbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWAp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgyLDEyICsyODIsMTIgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
QnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4g
TGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1iYCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRy
aWMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxNyw3ICszMTcsNyBAQCBkZXNjcmli
ZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJl
bWVudC1zZXQvP3BsYXRmb3JtPTQ2Jm1ldHJpYz01YCkudGhlbigocmVzcG9uc2UpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTMyNiwzMSArMzI2LDMxIEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAn
VGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVt
ZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1l
dHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
Y29uc3QgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWls
ZFRpbWUnXSkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHJl
c3BvbnNlKS5zb3J0KCksCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVj
dC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydjbHVzdGVyQ291bnQn
LCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywKICAgICAgICAgICAgICAgICAgICdjb25m
aWd1cmF0aW9ucycsICdlbGFwc2VkVGltZScsICdlbmRUaW1lJywgJ2Zvcm1hdE1hcCcsICdsYXN0
TW9kaWZpZWQnLCAnc3RhcnRUaW1lJywgJ3N0YXR1cyddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBbCiAgICAgICAgICAgICAgICAg
J2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1bScsICdtYXJr
ZWRPdXRsaWVyJywKICAgICAgICAgICAgICAgICAncmV2aXNpb25zJywgJ2NvbW1pdFRpbWUnLCAn
YnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkVGFnJywgJ2J1aWxkZXInXSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRp
bWUuc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKICAgICAgICAgICAg
IGFzc2VydCh0eXBlb2YocmVzcG9uc2VbJ2xhc3RNb2RpZmllZCddKSA9PSAnbnVtYmVyJywgJ2xh
c3RNb2RpZmllZCB0aW1lIHNob3VsZCBiZSBhIG51bWVyaWMnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXSksIFsn
Y3VycmVudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0Lmtl
eXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQnXSk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJl
bnQnXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1h
dChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgeworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3NbMF0ubGVuZ3RoLCByZXNwb25zZVsnZm9ybWF0
TWFwJ10ubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAg
ICAgbWVhbjogMywKICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAg
ICAgICAgICBzdW06IDE1LApAQCAtMzY3LDcgKzM2Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JS
ZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVw
b3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGlt
ZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwpAQCAtMzgzLDIwICszODMsMjAgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qg
YnVpbGRlcnMgPSByZXN1bHRbMl07CiAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3Vs
dFszXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1bnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZGVycy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJ1bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVycy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRJZCA9IHJ1bnNbMF1bJ2lk
J107CiAgICAgICAgICAgICBjb25zdCBidWlsZElkID0gYnVpbGRzWzBdWydpZCddOwogICAgICAg
ICAgICAgY29uc3QgYnVpbGRlcklkID0gYnVpbGRlcnNbMF1bJ2lkJ107CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3Vy
YXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3Vy
ZW1lbnQgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRl
eE9mKCdpZCcpXSwgbWVhc3VyZW1lbnRJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVh
c3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkJyldLCBidWlsZElk
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0
TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZign
aWQnKV0sIG1lYXN1cmVtZW50SWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1l
YXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJ
ZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC00MjgsOCArNDI4LDggQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25UaW1lID0g
KyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9ucyddWydXZWJLaXQnXVsn
dGltZXN0YW1wJ10pKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uQnVpbGRUaW1lID0gKyhu
ZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSddKSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sw
XSksIHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKICAgICAgICAgICAgICAgIG1lYW46IDEz
LAogICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICBzdW06
IDY1LApAQCAtNDM5LDcgKzQzOSw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IHJldmlzaW9uVGltZSwK
ICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogcmV2aXNpb25CdWlsZFRpbWUsCiAgICAgICAgICAg
ICAgICBidWlsZFRhZzogJzEyNCcgfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZv
cm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBj
dXJyZW50Um93c1sxXSksIHsKICAgICAgICAgICAgICAgICBtZWFuOiAzLAogICAgICAgICAgICAg
ICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgIHN1bTogMTUsCkBAIC00NjYs
MTYgKzQ2NiwxNiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3Rh
dHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0m
bWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogCiAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Zm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmJ1aWxkVGFnLCAx
MjcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFw
J10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgMTI4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmJ1aWxk
VGFnLCAnMTI3Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmJ1aWxkVGFnLCAnMTI4Jyk7CiAgICAg
ICAgIGFzc2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSku
Y29tbWl0VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAgICAgICAgIGFzc2VydChmb3JtYXQo
cmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSkuY29tbWl0VGltZSA8IHJlc3Bv
bnNlLnN0YXJ0VGltZSk7CiAKICAgICAgICAgY29uc3QgYmFzZWxpbmVSb3dzID0gcmVzcG9uc2Vb
J2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgIGFzc2VydC5lcXVhbChiYXNl
bGluZVJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVz
cG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFnLCAxMzEpOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGJhc2Vs
aW5lUm93c1sxXSkuYnVpbGRUYWcsIDEyOSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
YXNlbGluZVJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFnLCAn
MTMxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydm
b3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzFdKS5idWlsZFRhZywgJzEyOScpOwogICAgIH0pOwog
CiAgICAgaXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGJ1aWxkIHRpbWUgd2hlbiBjb21taXQg
dGltZXMgYXJlIG1pc3NpbmciLCAoKSA9PiB7CkBAIC01MjIsOCArNTIyLDggQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3Jt
PSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3Jt
YXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFuOiAzLAogICAg
ICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICBzdW06IDE1LApA
QCAtNTMzLDcgKzUzMyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6ICtEYXRlLlVUQygyMDE3LCAwLCAx
OSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogK0RhdGUuVVRDKDIwMTcs
IDAsIDE5LCAxNSwgMjgsIDEpLAogICAgICAgICAgICAgICAgYnVpbGRUYWc6ICcxMDAxJyB9KTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAn
XSwgY3VycmVudFJvd3NbMV0pLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgewogICAgICAg
ICAgICAgICAgIG1lYW46IDcsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAg
ICAgICAgICAgICAgICAgc3VtOiAzNSwKQEAgLTU2Miw5ICs1NjIsOSBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMiwgJ3Nob3VsZCBo
YXZlIHR3byBjbHVzdGVycycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFRh
Z3MocmVzcG9uc2UsICdjdXJyZW50JyksCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNl
LCAnY3VycmVudCcpLAogICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jaWVudFJldmlzaW9u
WzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoTmV3UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ11dKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC01ODAsMTAgKzU4MCwxMCBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91
bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsK
ICAgICAgICAgICAgIGxldCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucydd
WydjdXJyZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3Ro
LCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwgW3JlcG9ydFdpdGhB
bmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1
aWxkVGFnJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5s
ZW5ndGgsIDIsICdzaG91bGQgY29udGFpbiB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLCBb
cmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aEJ1aWxk
VGltZVswXVsnYnVpbGRUYWcnXV0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjAzLDE0
ICs2MDMsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFz
dXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3Vs
dC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigobmV3UmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAke2NhY2hlUHJlZml4fS5qc29u
YCkudGhlbigoY2FjaGVkUmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0tJHtjYWNoZWRS
ZXN1bHRbJ3N0YXJ0VGltZSddfS5qc29uYCk7CiAgICAgICAgICAgICB9KS50aGVuKChvbGRSZXN1
bHQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBvbGRidWlsZFRhZ3MgPSBidWlsZFRhZ3Mo
b2xkUmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGNvbnN0IG5ld2J1aWxkVGFn
cyA9IGJ1aWxkVGFncyhuZXdSZXN1bHQsICdjdXJyZW50Jyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KG9sZGJ1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1c3RlciBzaG91bGQgY29u
dGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQo
bmV3YnVpbGRUYWdzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWlu
IGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAyKSwgbmV3YnVp
bGRUYWdzLnNsaWNlKDAsIDIpLAorICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAyKSwgbmV3YnVpbGRU
YWdzLnNsaWNlKDAsIDIpLAogICAgICAgICAgICAgICAgICAgICAnVHdvIGNvbnNlcWN1dGl2ZSBj
bHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CkBAIC02MjksOSArNjI5LDkgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG1hbmlmZXN0ID0g
TWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CiAKICAgICAgICAgICAgICAgICBj
b25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ01vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTWV0cmljLmFsbCgpLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IG1ldHJpYyA9IE1ldHJpYy5hbGwoKVswXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1ldHJpYyksIHByaW1h
cnlDbHVzdGVyWydsYXN0TW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmltYXJ5Q2x1c3RlclsnbGFz
dE1vZGlmaWVkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
NjczLDEwICs2NzMsMTAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rp
b24gKCkgewogICAgIGl0KCJzaG91bGQgYWxsb3cgdG8gcmVwb3J0IGEgYnVpbGQgcmVxdWVzdCIs
IGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNl
cnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgcmVwb3J0QWZ0
ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxk
UmVxdWVzdCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05X
aXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUwMCcpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywgMTIsIDUw
LCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMn
XSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgICAgICBbJzEnLCAnOScsICcxMC44
LjIgMTJDNjAnLCBudWxsLCAwXSwgWycyJywgJzExJywgJzE0MTk3NycsIG51bGwsIDEzNjAxNDA5
MjA5MDBdXSwKICAgICAgICAgICAgIDEsIDEzNjIwNDYzMjMzODgsICcxMjMnLCAxLCAxLCAnY3Vy
cmVudCddXSk7CiAgICAgfSk7CkBAIC03MTEsMTcgKzcxMSwxNyBAQCBkZXNjcmliZSgiL2FwaS9t
ZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCk7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJl
cG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdp
dGhDb21taXRzTmVlZHNSb3VuZENvbW1pdFRpbWVBbmRCdWlsZFJlcXVlc3QpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKICAgICAgICAgY29uc3QgcmF3
V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1p
dHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3V2ViS2l0Q29tbWl0
LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVk
V2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1NDb21taXQgPSBhd2Fp
dCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNPUy8xMC44LjIlMjAx
MkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50
aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1l
KTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTldpdGhTdGF0dXMoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9hbmFseXNpc1Rhc2s9NTAwJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwgW1sxLCA0LCAzLCAx
MiwgNTAsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ21lYXN1cmVt
ZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwgWwogICAgICAgICAgICAgWycxJywgJzknLCAnMTAu
OC4yIDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbJzInLCAnMTEnLCAn
MTQxOTc3JywgbnVsbCwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lXV0sCiAgICAgICAgICAgICAx
LCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1cnJlbnQnXV0pOwogICAgIH0pOwpAQCAt
NzU3LDE0ICs3NTcsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFty
ZXBvcnRXaXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lXSk7CiAKICAgICAgICAgY29uc3Qg
cmF3V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2Nv
bW1pdHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3V2ViS2l0Q29t
bWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVj
dGVkV2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1NDb21taXQgPSBh
d2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNPUy8xMC44LjIl
MjAxMkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1sw
XS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRU
aW1lKTsKIAogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVBsYXRmb3JtQW5kTWV0
cmljKCdNb3VudGFpbiBMaW9uJywgJ0ZyYW1lUmF0ZScpOwogICAgICAgICBjb25zdCBwcmltYXJ5
Q2x1c3RlciA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1gKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1
cmF0aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1cmF0aW9ucy5jdXJyZW50
LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKICAgICAgICAgICAgIFsxLCAxLCAnMTAuOC4y
IDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbMiwgMiwgJzE0MTk3Nycs
IG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAgICAgZXhwZWN0ZWRX
ZWJLaXRDb21taXRUaW1lLCAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMV1dKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMzI0NzMzOTYxODhmNjhjNzM5
ZDc0OGFiZjhhODZmZWQ0YTQwZmZlMS4uYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2Y2JiNDBjMzBj
NGIxODU5YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTc4LDE2ICs3
OCwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIs
IGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUg
bmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsK
IAogICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZlcyIsICgpID0+
IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Ns
YXZlTm90Rm91bmQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
OTUsNyArOTUsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9
dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KGVt
cHR5UmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xMDMsMTEgKzEwMywxMSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBp
bnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3Vi
dmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycp
OwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ25hbWUn
XSwgc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdWyduYW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1sw
XVsncmVwb3NpdG9yeSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTExNSw3ICsxMTUs
NyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2Ri
LnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKQEAgLTEyMywxNCArMTIzLDE0IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgbGV0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQg
cmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgn
MjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25h
bWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lv
biddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0w
NiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRl
cnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
MzgsMTAgKzEzOCwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVy
c2lvbkludmFsaWRDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lv
bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXZpc2lvbicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNDksMzIgKzE0OSwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9y
UmVwb3J0KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Ud29Db21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVj
dEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdHRlcnMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDIpOwogCiAg
ICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCBy
ZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45
JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVz
c2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3ByZXZpb3VzX2NvbW1pdCddLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHJl
cG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1
OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1sw
XVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncHJl
dmlvdXNfY29tbWl0J10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJl
cG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAKICAgICAgICAgICAgIHJlcG9ydGVk
RGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMV07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbidd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWyd0aW1lJ10udG9TdHJpbmco
KSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5nKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydt
ZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRl
ciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzFdWydwcmV2aW91c19jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ2Fj
Y291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1b
J3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwOTo1NDo1Ni4wJykudG9T
dHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnbWVz
c2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMV1bJ2lkJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3ByZXZpb3VzX2NvbW1p
dCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXR0ZXJzWzFdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1sxXVsnYWNjb3VudCddLCBy
ZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTgyLDEwICsxODIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZv
clJlcG9ydChzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25JbnZhbGlkUHJldmlvdXNDb21taXQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFByZXZpb3VzQ29tbWl0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRmFpbGVkVG9GaW5kUHJl
dmlvdXNDb21taXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMjAwLDE4ICsyMDAsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwo
J2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzBdOwog
ICAgICAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IHJlc3VsdFsxXTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0
ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVk
RGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNb
MF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTIyOCwyMyArMjI4LDIzIEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0
cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2lkJ10sIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgZmlyc3REYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydp
ZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGZp
cnN0RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0dGVyc1swXVsnYWNjb3VudCddLCBmaXJzdERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnaWQnXSwgMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmly
c3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjU5LDEyICsyNTksMTIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnY29tbWl0
dGVycycpOwogICAgICAgICB9KS50aGVuKChjb21taXR0ZXJzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgYXV0aG9yWyduYW1lJ10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1
dGhvclsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJz
WzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTMwMiwxNSArMzAyLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3
aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVG
b3JSZXBvcnQoc2FtZVJlcG9zaXRvcnlOYW1lSW5Pd25lZENvbW1pdEFuZE1ham9yQ29tbWl0KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRD
b21taXRBbmRNYWpvckNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdyZXBvc2l0
b3JpZXMnLCB7J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGxl
dCBvc1dlYktpdCA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCB3ZWJraXRSZXBvc2l0b3J5
ID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zV2ViS2l0LmlkLCB3
ZWJraXRSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYktpdC5u
YW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmlj
dEVxdWFsKG9zV2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG51
bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQzLDcgKzM0Myw3IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhP
d25lZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lv
bkNvbW1pdFdpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0cycs
IHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0J30pLAogICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnSmF2YVNjcmlwdENv
cmUgY29tbWl0J30pLApAQCAtMzUxLDU0ICszNTEsNTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAg
ICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2
YVNjcmlwdENvcmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0ID0gcmVzdWx0
WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4Q29tbWl0LCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1
YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsy
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0ID0gcmVzdWx0WzJdWzBd
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoanNjQ29tbWl0LCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4
UmVwb3NpdG9yeSA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
c3hSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChv
c3hSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IHJlc3VsdFs0
XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5LCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QganNjUmVwb3NpdG9yeSA9IHJlc3VsdFs1XVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5ub3RTdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Via2l0UmVwb3Np
dG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0LnJlcG9zaXRvcnks
IGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeFJlcG9zaXRv
cnkub3duZXIsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRv
cnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Vi
a2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29t
bWl0LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJl
cG9zaXRvcnkuaWQpOwogCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVj
dFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdC5pZCwgJ293bmVk
Jzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0
LmlkLCAnb3duZWQnOiBqc2NDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAg
ICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0
UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldl
YktpdENvbW1pdCA9IHJlc3VsdFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
d25lckNvbW1pdEZvcldlYktpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBv
d25lckNvbW1pdEZvckpTQ0NvbW1pdCA9ICByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQsIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICB9KTsK
ICAgICB9KQogCkBAIC00NDgsNyArNDQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRT
bGF2ZUZvclJlcG9ydChtdWx0aXBsZVN5c3RlbVZlcnNpb25Db21taXRzV2l0aE93bmVkQ29tbWl0
cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBtdWx0aXBsZVN5c3RlbVZlcnNpb25D
b21taXRzV2l0aE93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdjb21taXRzJywg
eydyZXZpc2lvbic6ICdTaWVycmExNkQzMid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RS
b3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkM2Nyd9KSwKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ1dlYktpdCBDb21taXQn
fSksCkBAIC00NTgsNDkgKzQ1OCw0OSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8g
d2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxl
Y3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAiV2ViS2l0In0pLAogICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdKYXZhU2NyaXB0Q29y
ZSd9KV0pCiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdC5sZW5ndGgsIDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQwID0gcmVzdWx0WzBdWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENv
bW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1p
dDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRDb21taXQgPSByZXN1bHRbMl1bMF07Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NDb21t
aXQwID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1p
dDAsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdDAs
IG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBqc2NDb21taXQxID0gcmVzdWx0WzRdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5v
dFN0cmljdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WzVdLmxlbmd0aCwgMSkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbNV0ubGVuZ3RoLCAxKQogICAgICAgICAgICAgY29uc3Qgb3N4UmVwb3NpdG9yeSA9IHJl
c3VsdFs1XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hSZXBvc2l0b3J5LCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzZdLmxlbmd0aCwgMSkKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRbNl1bMF07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwg
b3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbN10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbN10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbN11bMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3Np
dG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5v
d25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRv
cnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwg
anNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0MS5y
ZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRv
cnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDEucmVwb3Np
dG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRvcnkuaWQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwganNjUmVwb3NpdG9y
eS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29tbWl0MS5yZXBvc2l0
b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5Lmlk
KTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdjb21t
aXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQwLmlkLCAnb3duZWQnOiB3ZWJraXRD
b21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxl
Y3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3du
ZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKQEAgLTUwOCwyNSAr
NTA4LDI1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVl
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9v
d25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdDEuaWQsICdvd25lZCc6IGpzY0NvbW1pdDEu
aWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dC5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5n
dGgsIDUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDAgPSByZXN1bHRbMF1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21t
aXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1p
dEZvcldlYktpdENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENv
bW1pdDEgPSByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJD
b21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJp
Y3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25l
ckNvbW1pdEZvckpTQ0NvbW1pdDAgPSByZXN1bHRbMl1bMF07Ci0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAsIG51bGwpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQxLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEsIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC01NDgsMTggKzU0OCwxOCBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRXaXRoRW1wdHlPd25l
ZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNv
bW1pdFdpdGhFbXB0eU93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxl
Y3RBbGwoJ3JlcG9zaXRvcmllcycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdF9vd25lcnNoaXBzJywg
J293bmVyJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBs
ZXQgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCByZXBvc2l0b3JpZXMgPSBy
ZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQgY29tbWl0X293bmVyc2hpcHMgPSByZXN1bHRbMl07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVzWzBdLmlkKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXNbMF0ubmFtZSwgJ09TWCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0aCwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVz
WzBdLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNbMF0u
bmFtZSwgJ09TWCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdF9vd25l
cnNoaXBzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01ODcsNyArNTg3
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJz
aW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0YW1wKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRBbmRPd25lZENvbW1pdFdpdGhUaW1lc3Rh
bXApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRp
bWVzdGFtcCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0pOwpAQCAtNjk5LDExICs2OTksMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgIGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICBjb25zdCBjb21taXRz
ID0gcmVzdWx0Wydjb21taXRzJ107Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0
aCwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsKIAogICAg
ICAgICByZXR1cm4gY29tbWl0czsKICAgICB9CkBAIC03MTIsNyArNzEyLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewog
ICAgIHsKICAgICAgICAgYXdhaXQgaW5pdGlhbFJlcG9ydENvbW1pdHMoKTsKICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgY29tbWl0c1VwZGF0ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CiAgICAgICAgIHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8n
KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdFsnY29tbWl0cyddOwogICAgIH0KQEAgLTcyMCw5ICs3
MjAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2Ui
LCBmdW5jdGlvbiAoKSB7CiAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFdpdGhFeHBlY3RlZEZhaWx1
cmUoY29tbWl0c1VwZGF0ZSwgZXhwZWN0ZWRGYWlsdXJlTmFtZSkKICAgICB7CiAgICAgICAgIGNv
bnN0IGNvbW1pdHMgPSBhd2FpdCBzZXRVcFRlc3RzV2l0aEV4cGVjdGVkU3RhdHVzKGNvbW1pdHNV
cGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0
eSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7
CiAgICAgfQogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggIk1pc3NpbmdSZXZpc2lvbiIgaWYg
Y29tbWl0IHVwZGF0ZSBkb2VzIG5vdCBoYXZlIGNvbW1pdCByZXZpc2lvbiBzcGVjaWZpZWQnLCBh
c3luYyAoKSA9PiB7CkBAIC03NDYsMzIgKzc0NiwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0
IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAKICAgICAgICAgbGV0IGNvbW1pdHMgPSBhd2FpdCBk
YXRhYmFzZS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF0ucmVwb3J0ZWQsIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5y
ZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJl
cG9ydGVkLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ucmVw
b3J0ZWQsIHRydWUpOwogCiAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgY29t
bWl0cyBTRVQgY29tbWl0X3JlcG9ydGVkPWZhbHNlJyk7CiAgICAgICAgIGxldCByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKIAogICAgICAgICBjb21taXRzID0gYXdhaXQgZGF0YWJhc2Uuc2VsZWN0QWxsKCdjb21t
aXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBmYWxzZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBmYWxzZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBmYWxzZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBmYWxzZSk7CiAgICAg
fSk7CiAKICAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlIGNvbW1pdHMgbWVzc2FnZSwg
dGltZSwgb3JkZXIsIGF1dGhvciBhbmQgcHJldmlvdXMgY29tbWl0IiwgYXN5bmMgKCkgPT4gewog
ICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1
cyhjb21taXRzVXBkYXRlLCAnT0snKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwg
J0JyZWFrcyBidWlsZHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFi
aWxpdHksICdDcmFzaGVzIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sw
XS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzFdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF0uYXV0aG9yTmFtZSwgJ0NocmlzIER1bWV6Jyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzFdLmF1dGhvck5hbWUsICdaYWxhbiBCdWp0YXMnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF0ub3JkZXIsIDIxMDk0OCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzFdLm9yZGVyLCAyMTA5NDkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV0udGltZSwgMTQ4NDg4NjIzMDY0NSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFd
LnByZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbMF0udGVzdGFiaWxpdHksICdCcmVha3MgYnVpbGRzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2Fn
ZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5tZXNzYWdlLCAnYW5v
dGhlciBtZXNzYWdlJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLmF1
dGhvck5hbWUsICdDaHJpcyBEdW1leicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb21taXRzWzBdLm9yZGVyKSwgMjEwOTQ4KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbW1pdHNbMV0ub3JkZXIpLCAyMTA5NDkpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGltZSwgMTQ4NDg4NjIzMDY0
NSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnByZXZpb3VzQ29tbWl0
LCBjb21taXRzWzBdLmlkKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCBkOWEyY2VkNjcxODM4MGZhYjllMGNkNWIwNTcwNDcy
MTRiZDEzNGZhLi41YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LXRlc3RzLmpzCkBAIC0xMDEsNyArMTAxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBidWls
ZGVyIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkVGltZSI6ICIyMDEz
LTAyLTI4VDEwOjEyOjAzLjM4ODMwNCJ9XSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNzaW5nQnVpbGRlck5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOSwxOCAr
MTA5LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW3siYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLCAiYnVpbGRlclBhc3N3b3Jk
IjogInNvbWVQYXNzd29yZCJ9XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxk
VGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIsICgpID0+IHsKICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFtlbXB0eVJlcG9ydCgpXSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5v
dEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1
cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xMzQsNTggKzEzNCw1OCBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJldmlzaW9ucyI6IHt9fV07CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSku
dGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwg
MCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3QgcmVwb3J0
IHdpdGggIk1pc21hdGNoaW5nQ29tbWl0VGltZSIgaWYgdGltZSBkaWZmZXJlbmNlIGlzIGxhcmdl
ciB0aGFuIDEgc2Vjb25kJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVy
Rm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0
TWlzbWF0Y2hpbmdDb21taXRUaW1lKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vz
c2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
cHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0Nv
bW1pdFRpbWUnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxk
IG5vdCByZWplY3QgcmVwb3J0IGlmIHRoZSBjb21taXQgdGltZSBkaWZmZXJlbmNlIGlzIHdpdGhp
biAxIHNlY29uZCInLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JS
ZXBvcnQoZW1wdHlSZXBvcnQoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoT25l
U2Vjb25kQ29tbWl0VGltZURpZmZlcmVuY2UoKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydw
cm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogCiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0
KCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsK
ICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQgZnJvbSBhIHZhbGlkIGJ1
aWxkZXIiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5
UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAg
ICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbnRlbnQgPSBlbXB0eVJl
cG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVw
b3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRl
bnRbJ2J1aWxkZXJQYXNzd29yZCddOwogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRl
bnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29u
dGVudCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQs
IHN1Ym1pdHRlZENvbnRlbnQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDE4ICsx
OTcsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
cmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
cmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRl
bnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZSByZXBvcnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnRb
J3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgcmVwb3J0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudCwgcmVwb3J0KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxNiwxOSArMjE2LDE5IEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KGVtcHR5U2xhdmVSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5U2xhdmVS
ZXBvcnQoKV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10s
IDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRD
b250ZW50ID0gZW1wdHlTbGF2ZVJlcG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29u
dGVudCA9IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAg
ZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRl
bGV0ZSBzdWJtaXR0ZWRDb250ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3Jl
ZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENv
bnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTIzOCw5ICsyMzgsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9
KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9y
dHNbMF1bJ2NvbnRlbnQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RvcmVkQ29udGVu
dFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1w
dHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CiAgICAgICAgICAgICBhc3NlcnQoISgnYnVpbGRl
clBhc3N3b3JkJyBpbiBzdG9yZWRDb250ZW50KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MjUxLDggKzI1MSw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZF9zbGF2ZXMnKTsKICAgICAgICAgfSkudGhl
bigoc2xhdmVzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzWzBdWyduYW1lJ10sIGVtcHR5UmVw
b3J0KClbJ3NsYXZlTmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbGF2
ZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbGF2ZXNbMF1b
J25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMjYyLDggKzI2Miw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZGVycycpOwogICAgICAgICB9
KS50aGVuKChidWlsZGVycykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUn
XSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZGVyc1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWlsZGVyTmFtZSddKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwog
ICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZHNbMF1bJ3RhZyddLCAxMjMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkc1swXVsndGFnJ10sICcxMjMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4Myw3
ICsyODMsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgZGVsZXRlIHJl
cG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0
KCJzaG91bGQgcmVqZWN0IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBh
bmQgYnVpbGQgdGFnIHdpdGggZGlmZmVyZW50IHZhbHVlcyIsIGFzeW5jICgpID0+IHsKQEAgLTI5
MSw3ICsyOTEsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIGNvbnN0IHJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51
bWJlciA9ICc0NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRj
aCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVp
bGRlck51bWJlclRhZ01pc21hdGNoJyk7CiAgICAgfSkKIAogICAgIGl0KCJzaG91bGQgYWNjZXB0
IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIHdp
dGggaWRlbnRpY2FsIHZhbHVlIiwgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDcgKzI5OSw3IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVwb3J0
ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gcmVwb3J0LmJ1
aWxkVGFnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxk
IGFkZCB0aGUgcGxhdGZvcm0iLCAoKSA9PiB7CkBAIC0zMDgsOCArMzA4LDggQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdwbGF0Zm9y
bXMnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjcsMTQgKzMyNywxNCBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSBy
ZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzFdOwogICAgICAg
ICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0WzJdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0
KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2Vi
S2l0JywgJ21hY09TJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9u
c1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1p
dHNbMV1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0
aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0
X2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1p
dHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxk
X2NvbW1pdCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1p
dHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKIAogICAgICAgICAgICAgbGV0IHJlcG9z
aXRvcnlJZFRvTmFtZSA9IHt9OwogICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiBy
ZXBvc2l0b3JpZXMpCkBAIC0zNDQsOSArMzQ0LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZm9yIChsZXQgY29tbWl0IG9mIGNvbW1pdHMpCiAg
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRv
TmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbidd
LCAnMTAuOC4yIDEyQzYwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5h
bWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3NycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11b
J3RpbWUnXS50b1N0cmluZygpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2
MCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZp
c2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0
aW1lJ10udG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAw
ODo1NToyMC45JykudG9TdHJpbmcoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzYwLDE2
ICszNjAsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVp
bGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzgyLDE2ICszODIsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9y
dCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRS
ZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDIp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDE1LDE3ICs0MTUsMTcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZv
clJlcG9ydChmaXJzdFJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVu
KChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hp
bmdDb21taXRSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5nQ29tbWl0UmV2aXNpb24nKTsKICAgICAgICAgICAg
IGFzc2VydChKU09OLnN0cmluZ2lmeShyZXNwb25zZSkuaW5kZXhPZignMTQxOTc3JykgPj0gMCk7
CiAgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE1
MDAwMCcpID49IDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJl
U3RvcmVkJ10sIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9j
ZXNzZWRSdW5zJ10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNDg3LDggKzQ4Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICBmdW5jdGlvbiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBv
cnQpCiAgICAgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdn
cmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFs
c2UpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICAgICB9KTsKICAgICB9CkBA
IC01MTEsNyArNTExLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVw
b3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0
cy5tYXAoKHJvdykgPT4geyByZXR1cm4gcm93WyduYW1lJ107IH0pLnNvcnQoKSwKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdHMubWFwKChyb3cpID0+IHsgcmV0dXJuIHJv
d1snbmFtZSddOyB9KS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydDU1MnLCAnRE9NJywgJ0R1
bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAnVHJhdmVy
c2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC01MjYsMTQgKzUyNiwxNCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9u
YW1lJ11dID0gbmV3IEFycmF5OwogICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jv
d1sndGVzdF9uYW1lJ11dLnB1c2goW3Jvd1snbWV0cmljX25hbWUnXSwgcm93WydhZ2dyZWdhdG9y
X25hbWUnXV0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1Rp
bWUnLCAnQXJpdGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtb
J1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRp
YyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydN
b2RpZnlOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxd
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBs
ZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10s
IFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXSwg
WydUaW1lJywgJ0dlb21ldHJpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydUaW1lJywgJ0FyaXRo
bWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRv
TWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snTW9k
aWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBu
dWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0
cmljc1snYXBwbGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1l
JywgbnVsbF1dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU0Miw3ICs1NDIsNyBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoYFNFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmlj
cywgdGVzdF9jb25maWd1cmF0aW9ucwogICAgICAgICAgICAgV0hFUkUgdGVzdF9pZCA9IG1ldHJp
Y190ZXN0IEFORCBtZXRyaWNfaWQgPSBjb25maWdfbWV0cmljCiAgICAgICAgICAgICBBTkQgdGVz
dF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDJgLCBbdGVzdE5hbWUsIG1ldHJpY05hbWVd
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
LnJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0LnJvd3MubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJvd3Nb
MF07CiAgICAgICAgICAgICB9KTsKICAgICB9CkBAIC01NjUsMjAgKzU2NSwyMCBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNv
bnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwg
Z3JvdXA6IG51bGwsIHZhbHVlOiA1MDAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAg
ICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MTAsIHJl
bGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjog
MiwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MjAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAg
ICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MzAs
IHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7CiAgICAgICAgICAgICBjb25zdCBzdW0gPSA1MDAgKyA1
MTAgKyA1MjAgKyA1MzA7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hl
J10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICogNTEwICsgNTIwICogNTIw
ICsgNTMwICogNTMwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5f
Y2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1MDAgKiA1MDAgKyA1MTAg
KiA1MTAgKyA1MjAgKiA1MjAgKyA1MzAgKiA1MzApOwogICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0NTUycsICdUaW1lJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAg
ICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVlOiAxMDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAog
ICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAx
MDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBv
cmRlcjogMiwgZ3JvdXA6IDAsIHZhbHVlOiAxMDMsIHJlbGF0aXZlX3RpbWU6IG51bGx9LApAQCAt
NjAwLDkgKzYwMCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBzdW0gKz0gdmFsdWU7CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9
IHZhbHVlICogdmFsdWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0
Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNjEzLDE1ICs2MTMsMTUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0
IHJ1bklkID0gcmVzdWx0LnJ1blsnaWQnXTsKICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWyg1MDAgKyAxMDApIC8gMiwgKDUxMCArIDExMCkgLyAyLCAoNTIwICsgMTIwKSAvIDIs
ICg1MzAgKyAxMzApIC8gMl07Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5p
dGVyYXRpb25zLCBbCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5p
dGVyYXRpb25zLCBbCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAwLCBncm91
cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1
ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAg
ICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZh
bHVlc1syXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVu
SWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzNdLCByZWxh
dGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gZXhwZWN0ZWRWYWx1
ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZTsgfSwg
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJl
c3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydz
dW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7
IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwg
c3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVy
biBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC02NDIsMTAgKzY0MiwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZh
bHVlOwogICAgICAgICAgICAgICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklk
LCBvcmRlcjogaSwgZ3JvdXA6IE1hdGguZmxvb3IoaSAvIDUpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1
ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0
ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNo
ZSddLCBzdW0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNo
ZSddLCBzcXVhcmVTdW0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVu
Z3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBz
dW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNo
ZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAzLDEwICs3MDMs
MTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
c3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOwogICAgICAgICAgICAg
ZXhwZWN0ZWRJdGVyYXRpb25zLnB1c2goe3J1bjogcnVuSWQsIG9yZGVyOiBpLCBncm91cDogTWF0
aC5mbG9vcihpIC8gMiksIHZhbHVlOiBleHBlY3RlZFZhbHVlLCByZWxhdGl2ZV90aW1lOiBudWxs
fSk7CiAgICAgICAgIH0KLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9u
cywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9j
YWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRp
b25zLmxlbmd0aCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSdd
LCBzdW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIHNxdWFyZVN1bSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMg
d2l0aG91dCBhbnkgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAg
LTczNywyNyArNzM3LDI3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0
aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBy
dW4gPSBiZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2ht
YXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAw
LCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVu
LCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEz
KSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3Vw
OiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVu
Z3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQu
aXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEp
ICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwg
Z3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxs
fSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJh
dGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIz
KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3Vw
OiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwog
CiAgICAgICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgo
dG90YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVh
cmVTdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+
IHRvdGFsICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwg
c3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5y
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
ZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJl
U3VtKTsKIAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1
bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0FTdWJUZXN0JywgJ1RpbWUnKTsKICAgICAgICAgcnVuID0g
c29tZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0
UmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21l
VGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiAzMSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICB7
cnVuLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMiwgcmVsYXRpdmVfdGltZTogbnVs
bH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVu
WydtZWFuX2NhY2hlJ10sIDMxLjUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1
bHQucnVuWydzdW1fY2FjaGUnXSwgNjMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RS
ZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDMxICogMzEgKyAzMiAqIDMyKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCAz
MS41KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3Vt
X2NhY2hlJ10sIDYzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7CiAgICAgfSk7CiAK
ICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMgbWlzc2luZyB0aGUgbWF0Y2hpbmcgbWV0cmlj
IGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAgLTc5MiwyNyArNzkyLDI3IEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgYmVu
Y2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVt
bXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBydW4gPSBiZW5jaG1hcmtSZXN1
bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQu
aXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEp
ICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6
IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHty
dW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0
aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsg
MTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1
biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRp
dmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAo
KDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9y
ZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsg
MTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogCiAgICAgICAgIGNvbnN0IHN1
bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90
YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVhcmVTdW0gPSBiZW5jaG1hcmtS
ZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVl
ICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5y
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1h
cmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJl
bmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVu
WydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKIAogICAgICAgICBj
b25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRy
aWMoJ0F1eGlsaWFyeVJlc3VsdCcsICdBbGxvY2F0aW9ucycpOwogICAgICAgICBydW4gPSBzb21l
VGVzdFJlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3RSZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0
UmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgIHtydW4sIG9yZGVyOiAwLCBncm91cDog
bnVsbCwgdmFsdWU6IDMxICsgNDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAg
e3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIgKyA0MiwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1
bHQucnVuWydtZWFuX2NhY2hlJ10sICgzMSArIDQxICsgMzIgKyA0MikgLyAyKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDMxICsgNDEgKyAz
MiArIDQyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3F1YXJl
X3N1bV9jYWNoZSddLCBNYXRoLnBvdygzMSArIDQxLCAyKSArIE1hdGgucG93KDMyICsgNDIsIDIp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9j
YWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQxICsgMzIgKyA0Mik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQyLCAyKSk7
CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBhIHJlcG9ydCB3aGVuIHRoZXJlIGFy
ZSBtb3JlIHRoYW4gb25lIG5vbi1tYXRjaGluZyBhZ2dyZWdhdG9ycyBpbiBhIHN1YnRlc3QiLCBh
c3luYyAoKSA9PiB7CkBAIC04NDgsNyArODQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfX07CiAKICAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25z
ZShyZXBvcnRXaXRoQW1iaWdpb3VzQWdncmVnYXRvcnMpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRj
aGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcpOwogICAgIH0pOwogCiAgICAgZnVuY3Rpb24g
cmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpCkBAIC04OTIsMTYgKzg5MiwxNiBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiByZXBvcnRBZnRl
ckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCkp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5z
ZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgbGV0IG5ld1JlcG9ydCA9
IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKTsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWls
ZFRhZyA9ICIxMjUiOwogICAgICAgICAgICAgbmV3UmVwb3J0LmJ1aWxkVGltZSA9ICIyMDEzLTAy
LTI4VDEyOjE3OjI0LjEiOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtuZXdSZXBvcnRdKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAgfSkudGhlbigodGVzdHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC05MzAsMTcgKzkzMCwxNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVz
dDEnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1
bV9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRp
b25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
WydtZWFuX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3VtX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1
YXJlX3N1bV9jYWNoZSddLCA5KTsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVy
YXRpb25zRm9yTWV0cmljKCdzdWl0ZScsICdDb21iaW5lZCcpOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC05NjIsMTMgKzk2MiwxMyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygndGVzdCcsICdGcmFtZVJhdGUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3N1bV9jYWNoZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzcXVhcmVfc3VtX2NhY2hlJ10sIDE2ICsgMjUgKyA5KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA0LCByZWxhdGl2ZV90aW1lOiAwfSwK
ICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1
ZTogNSwgcmVsYXRpdmVfdGltZTogMTAwfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwg
b3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogMywgcmVsYXRpdmVfdGltZTogMjA1fV0pOwpA
QCAtMTAwNiw3ICsxMDA2LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZm
ZXJlbnRUZXN0c1swXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0Rp
ZmZlcmVudFRlc3RzWzBdXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChvcmlnaW5hbENvbmZpZykgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdE
aWZmZXJlbnRUZXN0c1syXV0pLnRoZW4oKCkgPT4gewpAQCAtMTAyMywxNiArMTAyMywxNiBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRC
dWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKG9yaWdpbmFsQ29uZmln
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdXSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgICAgICB9KS50aGVuKChjb25maWcpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQob3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAgICAgICAgIGFzc2VydChj
b25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdf
cnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQn
XSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDY5LDcgKzEw
NjksNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3Jl
Z2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJlcXVlc3QpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwNzcsMjIgKzEw
NzcsMjIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dy
ZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6ICcxMjMnfSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0
Zm9ybXMnLCB7bmFtZTogJ01vdW50YWluIExpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIFthbm90aGVyUmVwb3J0V2l0aFNhbWVCdWlsZFJlcXVlc3RdKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvVXBkYXRlQnVpbGRSZXF1
ZXN0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJv
d3MoJ2J1aWxkcycsIHt0YWc6ICcxMjQnfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0Zm9ybXMnLCB7bmFt
ZTogJ0xpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0
LWdyb3Vwcy5qcwppbmRleCBjMDE5YTQyZGIxNzI0MTIxOTMyNTg4MjUwZWI5MzU5MDExMWQ5NGY5
Li4xNjI5ZDRiYjBhZjFmZjRiMmQ2OTNjMWNhNzVkZjcwN2U4MDhiYmNhIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vw
cy5qcwpAQCAtMTEsMzkgKzExLDM5IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVu
Y3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3Rp
ZmljYXRpb24nLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgZ2l2ZSBhbiBlbXB0eSBsaXN0
IGlmIHRoZXJlIGlzIG5vdCBleGlzdGluZyB0ZXN0IGdyb3VwIGF0IGFsbCcsIGFzeW5jICgpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywg
W10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBpbmNsdWRlIGEgdGVz
dCBncm91cCB3aXRoICJjYW5jZWxlZCIgc3RhdGUgaW4gYXQgbGVhc3Qgb25lIGJ1aWxkIHJlcXVl
c3QnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21w
bGV0ZWQnLCAnY2FuY2VsZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZv
ci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1
cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vw
cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVz
dHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRz
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVx
dWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5j
b21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3Vs
ZCBsaXN0IGFsbCB0ZXN0IGdyb3VwcyB3aXRoIHBlbmRpbmcgbm90aWZpY2F0aW9uJywgYXN5bmMg
KCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2Nv
bXBsZXRlZCddKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNh
dGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gY29udGVudC50ZXN0
R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5pZCwgNjAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAudGFzaywgNTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24sIHRydWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAy
JywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNvbW1p
dFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5pZCksIDYwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3Vw
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmhpZGRlbiwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbiwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
dGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMydd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNl
dHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIG5vdCBsaXN0IGhpZGRlbiB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewpA
QCAtNTEsMTIgKzUxLDEyIEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsn
Y29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAg
ICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3Vw
cyBTRVQgdGVzdGdyb3VwX2hpZGRlbiA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7
CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtd
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCB0ZXN0IGdyb3Vw
cyB3aXRob3V0IG5lZWRzIG5vdGlmaWNhdGlvbiBmbGFnJywgYXN5bmMgKCkgPT4gewpAQCAtNjQs
MjQgKzY0LDI0IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsnY29tcGxl
dGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAgICAgICAg
ICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQg
dGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiA9IEZBTFNFIFdIRVJFIHRlc3Rncm91cF9pZCA9
IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9u
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZp
bGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgYSB0
ZXN0IGdyb3VwIHRoYXQgaGFzIHNvbWUgaW5jb21wbGV0ZWQgYnVpbGQgcmVxdWVzdHMnLCBhc3lu
YyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBb
J2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1bm5pbmcnXSk7CiAgICAg
ICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOCwxOCArMTM4LDE4IEBAIGRlc2NyaWJlKCcvYXBp
L3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEu
YWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0
ZWQnLCAnZmFpbGVkJywgJ2NvbXBsZXRlZCddLCBmYWxzZSk7CiAgICAgICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBT
RVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91
cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVkLW1vcmUtcmVxdWVz
dHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVz
dCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRo
b3IsIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAuaGlkZGVuKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3
MDInLCAnNzAzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuY29t
bWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3
MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10p
OwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBz
IG1heSBuZWVkIGFkZGl0aW9uYWwgYnVpbGQgcmVxdWVzdHMnLCBhc3luYyAoKSA9PiB7CkBAIC0x
NTgsMzEgKzE1OCwzMSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeSgnVVBEQVRF
IGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25lZWRfbW9yZV9yZXF1ZXN0
cyA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBT
RVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91
cF9pZCA9IDYwMScpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVkLW1vcmUtcmVxdWVz
dHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgY29uc3Qgb25lVGVzdEdyb3VwID0gY29udGVudC50
ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5pZCwg
NjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAudGFzaywgNTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBn
cm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRlc3RHcm91
cC5pZCksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob25l
VGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9u
ZVRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIW9uZVRlc3RHcm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9uZVRl
c3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2sob25lVGVz
dEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9u
ZVRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
bmVUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob25lVGVzdEdyb3VwLmNvbW1pdFNldHMsIFsn
NDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9uZVRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywn
NzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsK
IAogICAgICAgICAgICAgY29uc3QgYW5vdGhlclRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vw
c1sxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLmlkLCA2MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAudGFzaywgNTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLm5hbWUsICdhbm90aGVy
IHRlc3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3Vw
LmF1dGhvciwgJ3dlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGFub3RoZXJUZXN0R3JvdXAuaWQpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAudGFzayksIDUwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5vdGhlciB0ZXN0
IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91
cC5hdXRob3IsICd3ZWJraXQnKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RH
cm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFhbm90aGVyVGVzdEdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayhhbm90aGVyVGVzdEdyb3Vw
Lm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJU
ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5v
dGhlclRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcxMCcsJzcxMScsICc3MTInLCAnNzEzJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChhbm90aGVyVGVzdEdyb3VwLmNvbW1pdFNl
dHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDIn
LCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMK
aW5kZXggZmZmMmFjZjFmYjYzOWFiM2U5OGEyYjFiN2IzZDQwNmRmMWFjYzdlMS4uYmJmOTMzNjY1
MGU1ZWE0MTU3ZGZmYTRkOTYyZWJiOTU5MDQ3ZTk0MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10
cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMzAsMTQgKzMwLDE0IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVj
dCB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZycsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IHt9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUg
bm8gc2xhdmVzJywgKCkgPT4gewogICAgICAgICBjb25zdCB1cGRhdGUgPSB7c2xhdmVOYW1lOiBl
bXB0eVVwZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6IGVtcHR5VXBkYXRlLnNsYXZlUGFz
c3dvcmR9OwogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91
bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00OCw3ICs0OCw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBjb25zdCByZXBvcnQgPSB7c2xhdmVOYW1lOiBlbXB0eVVwZGF0ZS5zbGF2ZU5h
bWUsIHNsYXZlUGFzc3dvcmQ6ICdiYWRQYXNzd29yZCd9OwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC01OCw3ICs1OCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MywxMCArNzMsMTAgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Ry
aWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC04NywxMiArODcsMTIgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgc21hbGxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdWyd0ZXN0J10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ3BsYXRmb3JtJ10sIHNtYWxsVXBk
YXRlLmNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVzdCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBz
bWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMDgsNyArMTA4LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29uZmlndXJhdGlv
bkVudHJ5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZENvbmZpZ3VyYXRpb25FbnRyeScpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTM3LDcgKzEzNyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlH
cm91cHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwcycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTQ5LDcgKzE0OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91
cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE2
MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1
cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzMsNyAr
MTczLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRl
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJl
cG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTg1LDcgKzE4NSw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlEYXRhJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnlEYXRhJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdE
dXBsaWNhdGVSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjIxLDE4ICsyMjEsMTggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2Ri
LnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndGVzdCcpLCBkYi5zZWxl
Y3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJyldKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9z
aXRvcnlHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmln
dXJhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0
aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRp
b25zWzBdWyd0ZXN0J10sIE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10sIE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2Vy
YWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5l
bXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjUzLDgg
KzI1Myw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2lu
aXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNdID0gaW5pdGlhbFJl
c3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVwb3NpdG9yeUdyb3Vw
c10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRpb25z
LCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlv
bnMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
LCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAgICAgIH0pCiAgICAgfSk7CiAKQEAgLTI3
NSw4ICsyNzUsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRp
YWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlH
cm91cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0
aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3Vy
YXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBA
IC0yOTAsMTQgKzI5MCwxNCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4o
KHJlcG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAn
c3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgc2Vjb25kVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigoKSA9PiBkYi5zZWxlY3RB
bGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4oKHJlcG9zaXRvcnlHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFt
ZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCAndGhpcyBncm91cCBpcyBhd2Vzb21lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUn
XSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM5ICszNDQsMzkgQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0
IHJlcG9zaXRvcnlHcm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1l
KFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLmFsbCgpKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdXZWJLaXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ21hY09TJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lz
dGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNj
ZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCks
ICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdl
YmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCks
ICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2go
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJp
Z2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRU
b3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9z
aXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5h
Y2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSht
YWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3Rz
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0
c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdl
YmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5h
bWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21S
b290cygpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTM5NSwyOSArMzk1LDI5IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFt
ZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5
JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBb
cmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2Vy
YWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUn
XSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwg
J3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgp
KTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3JvdXBzOwogCiAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91
cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2Nr
RGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5
R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5t
YWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwog
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxl
Y3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUnKSwgZGIuc2VsZWN0
QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScpXSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRvcnlHcm91
cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxHcm91cHMpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKIAogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAo
cmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBv
c2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEu
bWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFs
R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3Vw
KS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0
b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3Jv
dXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTQzNiwxNyArNDM2LDE3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFt
ZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5
JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBb
cmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2Vy
YWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUn
XSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwg
J3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgp
KTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3JvdXBzOwogCiAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91
cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2Nr
RGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5
R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5t
YWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwog
ICAgICAgICAgICAgaW5pdGlhbFJlcG9zaXRvcmllcyA9IHJlcG9zaXRvcmllczsKIAogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwpAQCAtNDU1LDEzICs0NTUs
MTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbcmVwb3Np
dG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIGluaXRp
YWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgaW5p
dGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ21hYy1vbmx5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFi
bGUnXSwgaW5pdGlhbEdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMsIGluaXRpYWxSZXBvc2l0
b3JpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMs
IGluaXRpYWxSZXBvc2l0b3JpZXMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3Qt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxv
YWQtcm9vdC10ZXN0cy5qcwppbmRleCBhOGIxOTFkNzVmYzFjODAxNjZiYTM2ZTEzNTMzNWIwMTA2
MTg4OWY4Li4wOWJkOGNiZGM1MmJlOWViMTZiMGI2OGYxNGVkNjk3NGFmYTk0MWE1IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9v
dC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS11cGxvYWQtcm9vdC10ZXN0cy5qcwpAQCAtOTUsNiArOTUsOCBAQCBmdW5jdGlvbiBjcmVhdGVU
ZXN0R3JvdXBXaXRoUGF0Y2hBbmRPd25lZENvbW1pdHMoKQogICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICBjb25zdCBwYXRjaEZpbGUgPSByZXN1bHRbMF07CiAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbVXBsb2FkZWRGaWxlLnVwbG9hZEZpbGUocGF0Y2hGaWxlKSwgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdHJp
Z2dlcmFibGVDb25maWd1cmF0aW9uKV0pOworICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4geworICAg
ICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKS50aGVuKCgpID0+IHJlc3VsdCk7CiAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgIGNvbnN0IHBhdGNoRmlsZSA9IHJlc3VsdFswXTsK
ICAgICAgICAgY29uc3Qgc29tZVRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSk7CkBAIC0xMjEsNyArMTIzLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywg
ZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiByb290IGZpbGUgaXMg
bWlzc2luZycsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHt9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vRmlsZVNw
ZWNpZmllZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ05vRmlsZVNwZWNpZmllZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTI5
LDcgKzEzMSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ3NvbWUuZGF0
JywgJ3NvbWUgY29udGVudCcpLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgbWFrZVJlcG9ydChyb290RmlsZSkpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90
Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzksNyAr
MTQxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgZGVsZXRlIHJlcG9ydC5zbGF2ZU5hbWU7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZl
TmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ5LDcgKzE1MSw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0
ZSByZXBvcnQuYnVpbGRlck5hbWU7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRlck5hbWUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRlck5hbWUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1OSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0
LmJ1aWxkVGFnOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZEJ1aWxkVGFnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGFnJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNzAsNyArMTcyLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gJzFhYmMnOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcv
YXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZEJ1aWxkTnVtYmVyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkTnVtYmVyJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNzksNyArMTgxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlKTsKICAg
ICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gJzQ1Nic7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNl
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2Fk
LXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CiAgICAg
fSk7CiAKICAgICBpdCgnc2hvdWxkIGFjY2VwdCBpZiBib3RoIGJ1aWxkIG51bWJlciBhbmQgYnVp
bGQgdGFnIGV4aXN0cyB3aXRoIHNhbWUgdmFsdWUnLCBhc3luYyAoKSA9PiB7CkBAIC0xODgsMzkg
KzE5MCwzOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25l
ZEpTQ1JlcG9zaXRvcnlJZCgpKTsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb25zdCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYx
NjEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgY29uc3Qgcm9vdEZpbGUgPSBh
d2FpdCBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9
IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAg
ICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gcmVwb3J0LmJ1aWxkVGFnOwogICAgICAgICBjb25z
dCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcv
YXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY29udGludWUgd29y
a2luZyB3aXRoIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0YWcgaXMgbm90IHByZXNlbnQnLCBhc3lu
YyAoKSA9PiB7CkBAIC0yMjksNDAgKzIzMSw0MCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9v
dC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKIAogICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aGFzRmluaXNoZWQoKSk7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICBjb25zdCB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBjb25z
dCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
J293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAg
ICAgY29uc3Qgcm9vdEZpbGUgPSBhd2FpdCBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAg
ICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5p
ZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAg
ICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gJzEyMyc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJv
b3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiBidWlsZCB0aW1lIGlz
IG1pc3NpbmcnLCAoKSA9PiB7CkBAIC0yNzEsNyArMjczLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWls
ZFRpbWU7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9y
bURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkQnVpbGRUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGltZScpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMjgxLDcgKzI4Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5idWlsZFRpbWUgPSAnV2VkLCAxMCBNYXkg
MjAxNyAwMzowMjozMCBHTVQnOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTI5MSw3ICsyOTMsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxk
UmVxdWVzdDsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RG
b3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zMDEsNyArMzAzLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJv
b3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxkUmVxdWVzdCA9ICdh
YmMnOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1E
YXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTMwOSw3ICszMTEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxl
KCkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJv
b3RGaWxlKSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdFR5cGUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkQnVpbGRSZXF1ZXN0VHlwZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzE5
LDcgKzMyMSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQucmVwb3NpdG9yeUxpc3Q7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJv
b3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxp
c3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMy
OSw3ICszMzEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnYStiJzsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQt
cm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MzQ3LDY2ICszNDksNjYgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24g
KCkgewogCiAgICAgICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNo
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1q
c2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQt
anNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRD
cmVhdGVSb290RmlsZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAg
ICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0Lmlk
KCksIFsnV2ViS2l0J10pOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0
YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9
IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBs
b2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290
LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCku
aWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0
ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwg
dGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsK
IAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2Fk
ZWRSb290XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3Vw
bG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAg
cmV0dXJuIFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJv
b3QuZGF0JywgJ0phdmFTY3JpcHQgQ29udGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxl
LCBidWlsZFJlcXVlc3QuaWQoKSwgW3tvd25lclJlcG9zaXRvcnlXcm9uZ0tleTogJ1dlYktpdCcs
IG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDow
OS42NjYnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RG
b3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRLZXlGb3JSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEtleUZvclJlcG9zaXRvcnknKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQyNCw2NiArNDI2LDY2IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3VwID0g
Z3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICB3
ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25z
dCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSkudGhl
bigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQo
cm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAg
ICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVw
bG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUu
ZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJl
cXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBi
dWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWls
ZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZp
bGVzKCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3Jh
cnlGaWxlKCdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZhU2NyaXB0IENvbnRlbnQgMCcp
OwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVw
b3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFt7b3duZXJSZXBv
c2l0b3J5OiAnV2ViS2l0MicsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAn
MjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnkn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTUwMSw3OSArNTAzLDc5IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdy
b3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAg
ICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
c2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjkn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAg
fSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJv
b3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSkpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBs
b2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5z
dXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29t
ZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9yKCks
ICdzb21lVXNlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9v
dC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh1cGxvYWRlZFJvb3QuYXV0aG9yKCksICdzb21lVXNlcicpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5p
ZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwg
dGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAs
IHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7
CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCB3ZWJraXRQYXRjaCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCB3ZWJraXRQYXRjaCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Um9vdCwgdXBsb2FkZWRSb290KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9v
dF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTU4Nyw3ICs1ODksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnImEi
JzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNjAxLDggKzYwMyw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdb
IldlYktpdCIsICJCYWRSZXBvc2l0b3J5TmFtZSJdJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBv
cnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3JlcG9zaXRvcnlOYW1lJ10sICdCYWRSZXBvc2l0
b3J5TmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3JlcG9zaXRvcnlOYW1lJ10sICdCYWRSZXBvc2l0b3J5TmFtZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtNjE2LDggKzYxOCw4IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5
TGlzdCA9ICdbIldlYktpdCIsICJtYWNPUyJdJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3JlcG9zaXRvcnlOYW1lJ10sICdtYWNPUycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRS
ZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Jl
cG9zaXRvcnlOYW1lJ10sICdtYWNPUycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjM1
LDM0ICs2MzcsMzQgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkg
ewogCiAgICAgICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNo
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
JzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVh
dGVSb290RmlsZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewpAQCAtNjcwLDQ1
ICs2NzIsNDUgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIlNoYXJlZCJd
JzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsn
dXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUu
ZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0Rh
dGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAn
c29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9y
KCksICdzb21lVXNlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVk
Um9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9yKCksICdzb21lVXNlcicpOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2so
KS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVk
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVz
dCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBj
b21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCB3ZWJraXRQYXRjaCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkUm9vdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAy
MjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgdXBsb2FkZWRSb290KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9hZGVkUm9vdCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9v
dF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTcyNyw4NyArNzI5LDg3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290
LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAg
ICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRjaCA9
IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1p
dFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgcmV0dXJu
IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUp
ID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1
aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9h
ZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1
cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJh
d0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdy
b3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3Qp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1
aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290Rmls
ZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9v
dEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsK
ICAgICAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdKYXZh
U2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZhU2NyaXB0IENvbnRlbnQgMCcpOwogICAgICAgICB9
KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJl
cG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFt7b3duZXJSZXBvc2l0b3J5OiAnV2Vi
S2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAy
OjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIGpzY1Jvb3QgPSBVcGxvYWRl
ZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9v
dFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwg
J0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoanNjUm9vdC5maWxlbmFtZSgpLCAnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnKTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3Jv
dXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVp
bGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RT
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCks
IFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFs
bFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290LCBqc2NSb290XSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQt
ZmlsZS10ZXN0cy5qcwppbmRleCBiZWRjNTQ3N2Q1NWE0Yzc0N2IyMWQ3MDk0ODU1MmUzNTdmNDYy
YTk0Li4wMmUxZDg5ZmNjMWQyMmVhNjg2YWNlZDE2MDIyOTIzMjFmZGRkOGQzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxl
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKQEAgLTcsMTkgKzcsMTggQEAgZ2xvYmFsLkZvcm1EYXRh
ID0gcmVxdWlyZSgnZm9ybS1kYXRhJyk7CiAKIGNvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcu
L3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwogY29uc3QgVGVtcG9yYXJ5RmlsZSA9IHJlcXVp
cmUoJy4vcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzJykuVGVtcG9yYXJ5RmlsZTsKK2NvbnN0
IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKIAogZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKLSAgICB0aGlzLnRpbWVvdXQoNTAwMCk7Ci0gICAgVGVzdFNlcnZl
ci5pbmplY3QoKTsKLQorICAgIHByZXBhcmVTZXJ2ZXJUZXN0KHRoaXMpOwogICAgIFRlbXBvcmFy
eUZpbGUuaW5qZWN0KCk7CiAKICAgICBpdCgnc2hvdWxkIHJldHVybiAiSW52YWxpZEFyZ3VtZW50
cyIgd2hlbiBuZWl0aGVyIHBhdGggbm9yIHNoYTI1NiBxdWVyeSBpcyBzZXQnLCAoKSA9PiB7CiAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2Fk
ZWQtZmlsZScpLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBs
b2FkZWQtZmlsZS8nKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxp
ZEFyZ3VtZW50cycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjcsNyArMjYsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvMScp
LnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGVycm9yLCA0MDQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzUsNyArMzQsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvZm9v
JykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00Nyw3ICs0Niw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2Fk
ZWQtZmlsZS8ke3VwbG9hZGVkRmlsZVsnaWQnXX1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC02OCwxMyArNjcsMTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJOb3RG
b3VuZCIgd2hlbiB0aGUgc3BlY2lmaWVkIFNIQTI1NiBpcyBpbnZhbGlkJywgKCkgPT4gewogICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVk
LWZpbGUvP3NoYTI1Nj1hYmMnKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJldHVybiAiTm90Rm91bmQiIHdoZW4gdGhl
cmUgaXMgbm8gZmlsZSBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIFNIQTI1NiAnLCAoKSA9PiB7CiAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2Fk
ZWQtZmlsZS8/c2hhMjU2PTUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUx
MWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg2LDcgKzg1LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJl
c3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oYC9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRG
aWxlWydzaGEyNTYnXX1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRGaWxlLCByZXNwb25zZVsndXBsb2FkZWRG
aWxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUs
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05
NywxMSArOTYsMTEgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHVwbG9hZGVk
RmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIGNvbnN0IGRiID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOwotICAgICAgICAgICAgcmV0dXJuIGRiLmNvbm5lY3QoKS50
aGVuKCgpID0+IGRiLnF1ZXJ5KGBVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VUIGZpbGVfZGVsZXRl
ZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJ2ApKTsKKyAgICAgICAgICAgIHJldHVybiBk
Yi5xdWVyeShgVVBEQVRFIHVwbG9hZGVkX2ZpbGVzIFNFVCBmaWxlX2RlbGV0ZWRfYXQgPSBub3co
KSBhdCB0aW1lIHpvbmUgJ3V0YydgKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL3VwbG9hZGVk
LWZpbGUvP3NoYTI1Nj0ke3VwbG9hZGVkRmlsZVsnc2hhMjU2J119YCk7CiAgICAgICAgIH0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0
dXMnXSwgJ05vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTE3
LDE2ICsxMTYsMTYgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwogCiAgICAg
ICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycykuaW5jbHVkZXMoJ2V0YWcnKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snZXRhZyddLCB1cGxvYWRlZEZpbGVbJ3No
YTI1NiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydldGFnJ10s
IHVwbG9hZGVkRmlsZVsnc2hhMjU2J10pOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0Lmtl
eXMoaGVhZGVycykuaW5jbHVkZXMoJ2FjY2VwdC1yYW5nZXMnKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaGVhZGVyc1snYWNjZXB0LXJhbmdlcyddLCAnYnl0ZXMnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydhY2NlcHQtcmFuZ2VzJ10sICdieXRlcycpOwog
CiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycykuaW5jbHVkZXMoJ2NvbnRl
bnQtZGlzcG9zaXRpb24nKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29u
dGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVudDsgZmlsZW5hbWUqPXV0Zi04Jydzb21lLmRh
dGApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtZGlz
cG9zaXRpb24nXSwgYGF0dGFjaG1lbnQ7IGZpbGVuYW1lKj11dGYtOCcnc29tZS5kYXRgKTsKIAog
ICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdjb250ZW50
LWxlbmd0aCcpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LWxl
bmd0aCddLCB1cGxvYWRlZEZpbGVbJ3NpemUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSwgdXBsb2FkZWRGaWxlWydzaXplJ10pOwog
CiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycykuaW5jbHVkZXMoJ2xhc3Qt
bW9kaWZpZWQnKSk7CiAgICAgICAgIH0pOwpAQCAtMTQ0LDcgKzE0Myw3IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBsYXN0TW9kaWZp
ZWQgPSByZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQt
ZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0
LW1vZGlmaWVkJ10sIGxhc3RNb2RpZmllZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddLCBsYXN0TW9kaWZpZWQpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDkgKzE1NSw5IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAs
ICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz01LSd9fSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJz
ID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRl
bnQtcmFuZ2UnXSwgJ2J5dGVzIDUtMTEvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5yZXNwb25zZVRleHQsICdjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA1LTExLzEyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnY29u
dGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDkgKzE2OSw5IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQt
ZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRl
cz00LTknfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
Y29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCho
ZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA0LTkvMTInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICcgY29udGUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQt
OS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJyBjb250ZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTg0LDkgKzE4Myw5
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkv
dXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5n
ZSc6ICdieXRlcz0tNCd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDgtMTEvMTInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICd0ZW50Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdi
eXRlcyA4LTExLzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAndGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk4LDkg
KzE5Nyw5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3Qo
YC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczog
eydSYW5nZSc6ICdieXRlcz0tMTAwJ319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgMC0xMS8xMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29u
dGVudC1yYW5nZSddLCAnYnl0ZXMgMC0xMS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIwOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVk
LWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChg
L2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7
J1JhbmdlJzogJ2J5dGVzPTEyLSd9fSkKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5l
cXVhbChlcnJvciwgNDE2KSk7CisgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsIDQxNikpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjIwLDcgKzIx
OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBpZCA9IHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwg
J0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPTItMSd9fSkKLSAg
ICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUg
cmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5lcXVhbChlcnJvciwgNDE2KSk7CisgICAgICAg
ICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQxNikpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjMyLDE1ICsyMzEsMTUgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVzcG9uc2VbJ3Vw
bG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywg
bnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2Vu
ZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVs
bCwKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcyA9IDktMTAnLCAn
SWYtUmFuZ2UnOiByZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ119fSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVz
cG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFu
Z2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZS5yZXNwb25zZVRleHQsICdlbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yNTIsMTUgKzI1MSwxNSBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaWQgPSByZXNwb25zZVsndXBs
b2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBu
dWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBj
b250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5k
SHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxs
LAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJ
Zi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2V0YWcnXX19KTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFk
ZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0
ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydj
b250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTI3MiwxMyArMjcxLDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUn
XVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRI
dHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVz
dChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAg
ICAgICAgICAgeydSYW5nZSc6ICdieXRlcyA9IDktMTAnLCAnSWYtUmFuZ2UnOiAnZm9vJ30pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMyw3ICszMDIsNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBlbmRCeXRlIC0gc3RhcnRCeXRlICsgMTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgY29u
c3QgYWN0dWFsID0gcmVzcG9uc2VCdWZmZXJbaV07CiAgICAgICAgICAgICAgICAgY29uc3QgZXhw
ZWN0ZWQgPSBidWZmZXJbc3RhcnRCeXRlICsgaV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGFjdHVhbCwgZXhwZWN0ZWQsIGBUaGUgYnl0ZSBhdCBpbmRleCAke2l9IHNob3VsZCBiZSBp
ZGVudGljYWwuIEV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIGBUaGUgYnl0
ZSBhdCBpbmRleCAke2l9IHNob3VsZCBiZSBpZGVudGljYWwuIEV4cGVjdGVkICR7ZXhwZWN0ZWR9
IGJ1dCBnb3QgJHthY3R1YWx9YCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMzE1
LDggKzMxNCw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2UnOiBgYnl0ZXMgPSAke3N0YXJ0Qnl0
ZX0tJHtlbmRCeXRlfWB9LCByZXNwb25zZUhhbmRsZXJ9KTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJz
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCBgYnl0ZXMg
JHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxlU2l6ZX1gKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgYGJ5dGVzICR7c3RhcnRC
eXRlfS0ke2VuZEJ5dGV9LyR7ZmlsZVNpemV9YCk7CiAgICAgICAgICAgICB2ZXJpZnlCdWZmZXIo
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IDE0ZTk0NTZkMmU2N2E1YzcxMDAx
MjBiMTU0NjQ4MGMyNzE2ZGViZjQuLmIxMDc0OWEwZDFlOTAzOGUxZmIyZTkxMzkzNGE2M2FhMjI1
MGRkNWUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJl
cXVlc3RzLXRlc3RzLmpzCkBAIC03OSw3ICs3OSw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFu
YWx5c2lzVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkK
ICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25m
aWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBw
bGF0Zm9ybS5pZCgpfSk7CiAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dz
KCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKIAotICAgIGFzc2VydC5l
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVu
cy5sZW5ndGgsIDIpOwogICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAgbmFtZTogbmFtZSwK
ICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTQwLDIzICsxNDAsMjMg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
bigpIHsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRl
c3QtZ3JvdXAnLCB7J2dyb3VwJzogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3Rz
OiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAucmVwZXRpdGlvbkNvdW50
KCkpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGdyb3VwLmluaXRp
YWxSZXBldGl0aW9uQ291bnQoKSksIDIpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycsIHtncm91cDogaW5zZXJ0ZWRHcm91cElk
LCBhZGRDb3VudDogMn0pOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1
YWwodXBkYXRlZEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgNCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSwgMik7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodXBkYXRlZEdyb3Vwc1swXS5yZXBldGl0
aW9uQ291bnQoKSksIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodXBk
YXRlZEdyb3Vwc1swXS5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAgICAg
ICAgIGZvciAoY29uc3QgY29tbWl0U2V0IG9mIHVwZGF0ZWRHcm91cHNbMF0ucmVxdWVzdGVkQ29t
bWl0U2V0cygpKSB7CiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdXBkYXRlZEdy
b3Vwc1swXS5yZXF1ZXN0c0ZvckNvbW1pdFNldChjb21taXRTZXQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgIH0KICAgICB9KTsK
IApAQCAtMTcwLDEyICsxNzAsMTIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVp
bGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElk
ID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBh
d2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9
IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRl
ZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0
cygpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50
KCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRH
cm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVx
dWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSksIDIpOwogICAgICAgICBhd2Fp
dCBncm91cC51cGRhdGVIaWRkZW5GbGFnKHRydWUpOwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRo
cm93cygnQ2Fubm90QWRkVG9IaWRkZW5UZXN0R3JvdXAnLCBhc3luYyAoKSA9PiBhd2FpdCBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVzdHMnLCB7Z3JvdXA6IGluc2Vy
dGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2st
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVn
ZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCmluZGV4IDk5NmQyZGQzMmQ3NmJh
NTQ3NTNlNjM5ZmY4YWY5YjM1NmYyNzk3ZDguLjBlNjg2MWI3ZWM2YmViZTU1MmE2NGQ4NzNmZTU3
NjZiNWQxMTc0MmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVh
dGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwpAQCAtMTEzLDcgKzExMyw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtYW5hbHlzaXMtdGFzaycsIHt9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ01pc3NpbmdOYW1l
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdNaXNzaW5nTmFtZScp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTIxLDcgKzEyMSw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBlbmRSdW46IDF9KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlz
aXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6
ICdoaScsIHN0YXJ0UnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzcsNyArMTM3LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAiZm9vIiwgZW5kUnVu
OiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlz
aXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAiZm9vIn0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTU2LDcgKzE1Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7
bmFtZTogJ2hpJywgc3RhcnRSdW46IDEwMCwgZW5kUnVuOiAxfSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE2OCw3ICsxNjgsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFw
aScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDEw
MH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRFbmRSdW4nKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE4MCw3ICsxODAsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJv
d3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0
UnVuOiAxLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0s
IChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFs
aWRUaW1lUmFuZ2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkVGltZVJhbmdlJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0xOTIsNyArMTkyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFz
aycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAyfSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsICdSdW5Db25maWdNaXNtYXRjaCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNoJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMTIsMjAgKzIxMiwyMCBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2
aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmls
ZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywg
c3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7
CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBBbmFs
eXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKICAgICAgICAgfSkudGhlbigo
dGFzaykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnaGknKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7CiAgICAg
ICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgICAgIGFzc2VydCgh
dGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1
c2VzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBw
bGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgp
LmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNr
LmNhdXNlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2su
Zml4ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdl
VHlwZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRm
b3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTI0NCwyMiArMjQ0LDIyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywg
ZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJu
IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogdGVz
dFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKICAgICAgICAgfSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRj
aEJ5SWQoY29udGVudFsndGFza0lkJ10pOwogICAgICAgICB9KS50aGVuKCh0YXNrKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdoaScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnaGknKTsKICAgICAgICAgICAgIGFzc2Vy
dCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRp
bmdSZXF1ZXN0cygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCks
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rl
c3QxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5zdGFydFRpbWUoKSwgMTQ0NTk2
MDA5MTAwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5lbmRUaW1lKCksIDE0NDU5
NjY4NjEwMDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3Mo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFi
ZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLnN0YXJ0VGltZSgpLCAxNDQ1OTYwMDkxMDAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmVuZFRpbWUoKSwgMTQ0NTk2Njg2MTAwMCk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODAsNyArMjgwLDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgc3RhcnRJZCA9IHRlc3RSdW5zWzBd
WydpZCddOwogICAgICAgICAgICAgZW5kSWQgPSB0ZXN0UnVuc1sxXVsnaWQnXTsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFz
aycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogc3RhcnRJZCwgZW5kUnVuOiBlbmRJZH0pOwpAQCAt
Mjg4LDEyICsyODgsMTIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlz
aXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtu
YW1lOiAnaGknLCBzdGFydFJ1bjogc3RhcnRJZCwgZW5kUnVuOiBlbmRJZH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdEdXBsaWNhdGVBbmFseXNpc1Rhc2snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdEdXBsaWNhdGVBbmFseXNpc1Rhc2snKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBk
Yi5zZWxlY3RBbGwoJ2FuYWx5c2lzX3Rhc2tzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRhc2tzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFza3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrcy5sZW5ndGgsIDEpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzEyLDcgKzMxMiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAg
ICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVj
dFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9
KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5z
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVu
Z3RoLCAyKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAgICAgICAgICBuYW1lOiAnaGknLAogICAg
ICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKQEAgLTMzMCw4ICszMzAs
OCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgZm9yIChsZXQgc3RyYXRl
Z3kgb2Ygc3RyYXRlZ2llcykKICAgICAgICAgICAgICAgICBzdHJhdGVneUlkTWFwW3N0cmF0ZWd5
WydpZCddXSA9IHN0cmF0ZWd5OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RyYXRlZ3lJ
ZE1hcFt0YXNrUm93WydzZWdtZW50YXRpb24nXV1bJ25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21l
bnRhdGlvbiIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jv
d1sndGVzdF9yYW5nZSddXVsnbmFtZSddLCAic3R1ZGVudCdzIHQtdGVzdCIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1snc2VnbWVudGF0aW9u
J11dWyduYW1lJ10sICJ0aW1lIHNlcmllcyBzZWdtZW50YXRpb24iKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3Rlc3RfcmFuZ2UnXV1bJ25h
bWUnXSwgInN0dWRlbnQncyB0LXRlc3QiKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0
Niw3ICszNDYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10
YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBjb25zdCBzb21l
UGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CiAgICAgICAg
IGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3Vy
YXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21l
UGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVj
dFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9y
eVJvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dl
YktpdCd9KTsKICAgICAgICAgY29uc3Qgd2Via2l0SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93Lmlk
OwpAQCAtMzcxLDcgKzM3MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNv
bnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAg
ICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25m
aWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTog
cGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVj
dFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9y
eVJvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dl
YktpdCd9KTsKICAgICAgICAgY29uc3Qgd2Via2l0SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93Lmlk
OwpAQCAtMzg3LDE4ICszODcsMTggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5h
bHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0
cygpKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29t
ZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCku
bGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5i
dWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUg
cGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVz
dCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2Fp
dCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMCk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBh
bmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCB3aGVuIGNvbW1pdCBzZXQgbGlzdCBhbmQgYSBw
b3NpdGl2ZSByZXBldGl0aW9uIGNvdW50IGlzIHNwZWNpZmllZCcsIGFzeW5jICgpID0+IHsKQEAg
LTQyNiw3ICs0MjYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBsZXQgc29t
ZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0
IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25z
Jywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZv
cm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3Mo
J3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dl
YmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2
aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNDM2LDM4
ICs0MzYsMzggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFz
ayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHN0YXJ0UnVu
OiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAg
ICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rh
c2tJZCddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAg
ICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQ
ZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCks
IFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5w
bGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAg
ICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlk
KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5uYW1lKCksICdDb25maXJtJyk7CiAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCAyKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2Vy
YWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgp
LmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRl
c3RHcm91cCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91
cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5w
bGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlk
KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJ
ZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEp
OwogCiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTQ3Nyw4ICs0
NzcsOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBjb25zdCBmaXJzdENvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29u
ZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0
IHdlYmtpdFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0
UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
c2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2
aXNpb24oKSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21t
aXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAn
MTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7
CiAgICAgfSk7CiB9KTsKIApAQCAtNTAwLDcgKzUwMCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVu
Y3RpCiAgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3Nv
bWUgcGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0
Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClb
MF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRl
c3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmln
Um93WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAg
ICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Jl
cG9zaXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9
IHdlYmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC01NDgsNyArNTQ4LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBh
cGknLCBmdW5jdGkKICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlk
KHBsYXRmb3JtSWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RG
aXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVsw
XS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVz
dFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAg
IGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9
fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZp
c2lvbjogJzE5MTYyMyd9fTsKQEAgLTU1OCwzOCArNTU4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywg
ZnVuY3RpCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjog
dGVzdFJ1bnNbMV1bJ2lkJ119KTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlz
aXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2submFtZSgpLCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygp
KTsKICAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4
ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBs
YXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJl
bCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3Mo
KSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtd
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0
Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCku
bGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwogICAg
ICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgp
LCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJh
YmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgp
LCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBs
YXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCks
IHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5p
ZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlz
aXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQub2soIWJ1aWxk
UmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzFdLmlzQnVpbGQoKSk7CkBAIC01OTksOCArNTk5LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5j
dGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFd
LmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9y
eS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNl
dC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2
MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBv
c2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3Np
dG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBj
cmVhdGUgYW4gYW5hbHlzaXMgdGFzayB3aXRoIHRlc3QgZ3JvdXAgYW5kIHJlc3BlY3QgdGhlICJu
ZWVkc05vdGlmaWNhdGlvbiIgZmxhZyBpbiB0aGUgaHR0cCByZXF1ZXN0JywgYXN5bmMgKCkgPT4g
ewpAQCAtNjI4LDcgKzYyOCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGxl
dCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKICAgICAgICAg
Y29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJh
dGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQ
bGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0
Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9
IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0IGFub3Ro
ZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CkBAIC02
MzgsMzggKzYzOCwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICAgICAgc3Rh
cnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVk
c05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFs
eXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRz
KCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5m
aXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUg
cGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxh
YmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVn
cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwg
W10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBs
YXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3Qo
KS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQg
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CiAg
ICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQo
KSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2Vy
YWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAo
KSwgdGVzdEdyb3VwKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5w
bGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgp
LCB0YXNrLnBsYXRmb3JtKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2su
aWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5
c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1sxXS5pc0J1aWxkKCkpOwpAQCAtNjc5LDcgKzY3OSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVu
Y3RpCiAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21t
aXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sx
XS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQod2Via2l0SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRT
ZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkx
NjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdl
YmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9z
aXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVh
dGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKaW5kZXggMDlj
ZDM3YWI0MzZjYjNhN2JiN2NiOGY4NDliY2E5ZGUyMjdjMTQ0MS4uZGRmNDk5M2E0ZjhlMTk2ZDlj
MzIzNGVmNmRkYjE1MDcyMGJjM2ExNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCkBAIC04Myw3ICs4Myw3IEBAIGZ1bmN0aW9u
IGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIx
OTE2MjMiXSkKICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsKICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAg
IH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5s
ZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFs
eXNpcy10YXNrJywgewogICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgIHN0YXJ0
UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7fSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZE5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTE0NSw3ICsxNDUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCBjb21taXRTZXRzOiBb
WzFdXX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNTMsNyArMTUzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazog
J2ZvbycsIGNvbW1pdFNldHM6IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFz
aycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2sn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCByZXBldGl0aW9uQ291bnQ6IDF9KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTY5LDcgKzE2OSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0
aXRpb25Db3VudDogMSwgY29tbWl0U2V0czoge319KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFs
aWRDb21taXRTZXRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJ
bnZhbGlkQ29tbWl0U2V0cycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTc3LDcgKzE3
Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDog
MSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFs
aWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
VGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91
cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogJ2ZvbycsIGNvbW1p
dFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRp
dGlvbkNvdW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZh
bGlkUmVwZXRpdGlvbkNvdW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTMsNyAr
MTkzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50
OiAtNSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0lu
dmFsaWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTIwMSw3ICsyMDEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCBjb21t
aXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChl
cnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JU
YXNrJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnVHJpZ2dl
cmFibGVOb3RGb3VuZEZvclRhc2snKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAg
ICB9KTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFz
azogdGFza0lkLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjMxLDcgKzIzMSw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0czogW3tbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHt9XX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHM6IFt7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIyJ319XX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnSW52YWxpZFJldmlzaW9uU2V0cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzOiB7J0Zvbyc6IFtdfX0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNjIsNyArMjYyLDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydX
ZWJLaXQnOiBbJzEnXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChl
cnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9u
Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdS
ZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC0yNzQsNyArMjc0LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZp
c2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtMjg2LDcgKzI4Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAg
ICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
QW1iaWd1b3VzUmV2aXNpb24nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
ZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtMjk4LDcgKzI5OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3Qn
LCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTMxMCw3ICszMTAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0
ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZpbGUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVXBsb2FkZWRGaWxlJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMjEsNyArMzIxLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMzEsNyArMzMxLDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQn
OiBbJzE5MTYyMicsICcxOTE2MjMnXSwgJ21hY09TJzogWycxNUEyODQnXX19KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM0NSw3ICszNDUsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91
cE5hbWUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdEdXBs
aWNhdGVUZXN0R3JvdXBOYW1lJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0zNjIsNyArMzYyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFs
aWRPd25lclJldmlzaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkT3duZXJSZXZpc2lvbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc4
LDcgKzM3OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0T3du
ZXJzaGlwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
Q29tbWl0T3duZXJzaGlwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zOTMsMTcgKzM5
MywxNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW293bmVkSlNDLmlk
KCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYn
fX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291
bnQ6IDEsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0uaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00MTgsMTQgKzQxOCwxNCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNDQwLDE3ICs0NDAsMTcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7
W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEyODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9u
OiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lv
blNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBncm91cElk
ID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5pZCgpLCBncm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3Vw
Lm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91
cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIXJlcXVlc3RzWzBdLmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChy
ZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAtNDY1LDEzICs0NjUsMTMgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpT
Q1JlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5j
b21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdl
YmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3du
ZWRKU0MsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293
bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkp
LCBbb3duZWRKU0MsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTQ4MiwyOCArNDgyLDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91
cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBd
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dl
YmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwg
W3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKIAogICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91
cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgp
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0t
YW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsK
QEAgLTUyMSwyNCArNTIxLDI0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElk
ID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAu
bmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBn
cm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFd
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBv
c2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAKICAgICAgICAgICAgICAg
ICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3dl
YmtpdC1vbmx5Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cCwgcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnd2Via2l0LW9ubHknKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0
c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRv
cnlHcm91cC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9y
eUdyb3VwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC01NTMsMzMgKzU1Mywz
MyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RH
cm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0
cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChy
ZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CiAgICAgICAg
ICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9y
eSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ21hY09TJylbMF07CiAKICAgICAgICAgICAgICAg
ICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAg
Y29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdP
bmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJp
bmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNl
dCgpLCBzZXQwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVw
b3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIz
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91
cCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCks
IHJlcG9zaXRvcnlHcm91cCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdy
b3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
Lm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5yZXBvc2l0
b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDApKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MSkpOwog
ICAgICAgICAgICAgfSk7CkBAIC02MDAsMjggKzYwMCwyOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzJjZWRhNDVkM2Nk
NjNjZGU1OGQwZGJmNTc2NzcxNGUwM2Q5MDJlNDMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICc1NDcxYThkZGMxZjY2MTY2M2NjZmQxYTI5YzYzM2JhNTdlODc5NTMzJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3Np
dG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMmNlZGE0NWQzY2Q2
M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0MycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1N2U4Nzk1MzMn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBv
c2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMCwg
cmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJl
cXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXBv
c2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEsIHJlcG9zaXRvcnlHcm91cDApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXBv
c2l0b3J5R3JvdXAwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5h
Y2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5h
Y2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwpAQCAtNjQyLDMyICs2NDIsMzIgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCdd
OwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAg
ICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRv
cmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3Np
dG9yeUdyb3VwMCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJl
cXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1
ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9z
aXRvcnlHcm91cDAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXBv
c2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVw
b3NpdG9yeUdyb3VwMSA9IHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtpdC1vbmx5
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEsIHJlcXVl
c3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3VwMS5uYW1lKCksICd3ZWJraXQtb25seScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXF1ZXN0c1szXS5y
ZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXBvc2l0b3J5R3Jv
dXAxLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3Jv
dXAxLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02OTEsMjggKzY5MSwyOCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVz
dHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEu
cmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmds
ZXRvbih1cGxvYWRlZEZpbGVbJ2lkJ10sIHVwbG9hZGVkRmlsZSldKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygp
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVk
RmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxlKV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKQEAgLTc0MCw1MCArNzQwLDUwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdy
b3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAg
ICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVz
dElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0
Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRm
b3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBm
YWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rl
c3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFd
LmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBz
ZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0g
cmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0
b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNv
bW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5
KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21S
b290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtODA1LDYwICs4MDUsNjAgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBs
YXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1
XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAg
IGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9z
aXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25l
ZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hG
b3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNv
c10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3Rz
KCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnko
d2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25l
ZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hG
b3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAgICAgICAg
IGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTg4
MCw2MSArODgwLDYxIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50
Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3Jt
LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0
IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0
XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0u
aXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sw
XS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVz
dCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0
KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRT
ZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0
U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2Ms
IHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0
b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pz
Yywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1
c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZv
clJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1p
dEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBh
dGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5
KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJp
bmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0
Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpz
Yy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFz
ZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTYzLDY4ICs5NjMs
NjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91
cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgp
LCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50
ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlz
QnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNC
dWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1
aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlz
VGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNU
ZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgp
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNC
dWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3Qo
KSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRT
ZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBt
YWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMo
KSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVk
LWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3Vz
dG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMo
KSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBz
ZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNj
LTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNl
dDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDU3LDc3ICsxMDU3
LDc3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3Jv
dXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91
cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0
YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwg
UGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3Rz
ID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5p
c0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlz
QnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlz
VGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNU
ZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVz
dCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3Qo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxk
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlz
QnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
Ml0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0
KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0
U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNl
dDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIG93bmVkSlND
LCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3Vz
dG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtq
c2MsIG93bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkyNzM2Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdqc2MtNjE2MScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdq
c2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBqc2MsIHdl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5j
dXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmll
cygpKSwgW293bmVkSlNDLCBqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVw
bG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5
KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ2pzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwg
ZmFsc2UpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtMTE1NCw0NSArMTE1NCw0NSBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5z
ZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0o
KSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2Nr
RGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNC
dWlsZCgpLCBmYWxzZSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlz
VGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rl
c3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFd
LmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJd
LmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSks
IFttYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3Rz
KCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0
MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0
KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQx
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTIxNyw3ICsxMjE3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1BhdGNoTm90
QWNjZXB0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1BhdGNo
Tm90QWNjZXB0ZWQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyMzAsMjQgKzEyMzAs
MjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3Jv
dXBJZCddOwogCiAgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gYXdh
aXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSks
IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNl
cnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDEpOwogICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24o
KSk7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJl
cXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0u
Y29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMo
KSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3
ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRv
IGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBuZWVkcy1ub3RpZmljYXRpb24gZmxhZyB1bnNldCcs
IGFzeW5jICgpID0+IHsKQEAgLTEyNTksMjQgKzEyNTksMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qg
aW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0
IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lz
VGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
cmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lz
VGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChh
bmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCByZXF1
ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIz
Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9v
dHMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1
c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAg
ICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgY3VzdG9tIHRlc3QgZ3JvdXAgZm9yIGFu
IGV4aXN0aW5nIGN1c3RvbSBhbmFseXNpcyB0YXNrJywgKCkgPT4gewpAQCAtMTI5Niw0MyArMTI5
Niw0NCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDInLCB0YXNrOiByZXN1bHRb
J3Rhc2tJZCddLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIHRlc3QsIHJl
dmlzaW9uU2V0cywgcmVwZXRpdGlvbkNvdW50OiAyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgc2Vjb25kUmVzdWx0ID0gcmVzdWx0OwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGZpcnN0UmVzdWx0Wyd0YXNrSWQnXSwgc2Vjb25kUmVzdWx0Wyd0YXNrSWQn
XSk7CisgICAgICAgICAgICAvLyBwZyBmdW50aW9ucyB3aWxsIHJldHVybiBhbGwgZGF0YSBhcyBz
dHJpbmcsIHNvIHdlIG5lZWQgbWFrZSBzdXJlIHRoYXQgd2UgY29tcGFyZSBhcyBpbnQKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChmaXJzdFJlc3VsdFsndGFza0lkJ10p
LCBwYXJzZUludChzZWNvbmRSZXN1bHRbJ3Rhc2tJZCddKSk7CiAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRl
c3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKICAgICAgICAg
fSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0
ZXN0R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lz
VGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBUZXN0R3JvdXAuc29y
dEJ5TmFtZSh0ZXN0R3JvdXBzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzWzBdLm5hbWUoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAg
ICAgICBsZXQgcmVxdWVzdHMgPSB0ZXN0R3JvdXBzWzBdLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBsZXQgc2V0
MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IHNldDEgPSByZXF1
ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1sxXS5uYW1lKCksICd0ZXN0
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMV0ucmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9z
aXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzWzFdLm5hbWUoKSwgJ3Rlc3QyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwc1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAg
ICAgICByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMV0uYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIHNldDAgPSByZXF1
ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1szXS5j
b21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEu
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0
KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcwpp
bmRleCA0M2I0MDdlY2E5ZGQwMjlkYWFhYjg0NjM3YTZkYzEyNTYzZGYxNTkxLi5iNTdhMDIxMWU2
ODdmOWEzYzcyNzRjNzc0OWI2ZDVlMWZmYWFkYTFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCkBAIC0zOSwxMyArMzksMTMgQEAgZGVzY3JpYmUoIi9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycp
OwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Nb
MF1bJ21lYW5fY2FjaGUnXSwgMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Nb
MF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGll
ciddLCBmYWxzZSk7CiAgICAgICAgICAgICBpZCA9IHJ1blJvd3NbMF1bJ2lkJ107CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewpAQCAtNTMsMTAgKzUzLDEwIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5S
b3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVh
bl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRl
cmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1
ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02NSwxMSArNjUsMTEgQEAgZGVzY3JpYmUo
Ii9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVu
cycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIFJlbW90ZUFQSS5jbGVhckNvb2tpZXMoKTsKQEAgLTc3LDcgKzc3
LDcgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC04NSwxOCArODUsMTggQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2Vk
LWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0
ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0aFN0
YXR1cygnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzJywge3Rva2VuOiAnYmFkJ30p
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwNSwyMyArMTA1LDIzIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkv
dXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSku
dGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0
bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21h
cmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycsIHsncnVuJzogcnVuUm93c1swXVsnaWQn
XSwgJ21hcmtlZE91dGxpZXInOiB0cnVlfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxp
ZXInXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtl
ZF9vdXRsaWVyJ10sIHRydWUpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBydW5Sb3dzWzBdWydpZCddLCAn
bWFya2VkT3V0bGllcic6IGZhbHNlfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4o
KHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRf
b3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
ZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAw
MjExNmVkOGQ4YmJlOTIwZGJmMThkNjE3ZThmOTU5MzJjNzgzNTk5Li4yMmZkMGZlYzZlMzRiMThi
YzIxYTlkYmRhNWI5YTE1YzE0NmE4NTkwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3Rz
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5bmMg
ZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkx
NjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZp
cnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0u
aWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9IGF3
YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0p
OwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAg
ICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBA
IC0xNjUsMjAgKzE2NSwyMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVz
dWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1
ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAg
ICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlbnRBdCA9IG5ldyBEYXRlOwogICAgICAgICBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDog
aW5zZXJ0ZWRHcm91cElkLCBuZWVkc05vdGlmaWNhdGlvbjogZmFsc2UsIG5vdGlmaWNhdGlvblNl
bnRBdDogbm90aWZpY2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCl9KTsKIAogICAgICAgICBjb25z
dCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rh
c2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmlj
YXRpb24oKSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5u
b3RpZmljYXRpb25TZW50QXQoKS50b0lTT1N0cmluZygpLCBub3RpZmljYXRpb25TZW50QXQudG9J
U09TdHJpbmcoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5l
ZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVw
ZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCkudG9JU09TdHJpbmcoKSwgbm90aWZp
Y2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBi
ZSBhYmxlIHRvIHVwZGF0ZSAibmVlZHNfbm90aWZpY2F0aW9uIiBmaWVsZCB0byB0cnVlJywgYXN5
bmMgKCkgPT4gewpAQCAtMTkwLDE4ICsxOTAsMTggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVk
R3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVl
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9u
U2VudEF0KCkpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3Vw
ZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0
aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RH
cm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1
cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVlKTsK
ICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAgICAgfSk7
CiAKQEAgLTIxNCwxMCArMjE0LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQg
PSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3
YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRp
b25TZW50QXQoKSk7CiAKICAgICB9KTsKQEAgLTIzMSwyMiArMjMxLDIyIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBj
b25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0
YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKIAogICAgICAgICBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDog
aW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAg
bGV0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsn
dGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5n
dGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vw
c1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAgICAgIGF3YWl0IFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRl
ZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IGZhbHNlfSk7CiAKICAgICAgICAgdXBkYXRl
ZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwg
dHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMo
KSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY2xl
YXIgIm1heV9uZWVkX21vcmVfcmVxdWVzdHMiIHdoZW4gaGlkaW5nIGEgdGVzdCBncm91cCcsIGFz
eW5jICgpID0+IHsKQEAgLTI1OCwyMiArMjU4LDIyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRl
ZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdy
b3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5t
YXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91
cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAgbGV0IHVwZGF0ZWRH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRy
dWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCks
IHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIGhp
ZGRlbjogdHJ1ZX0pOwogCiAgICAgICAgIHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1
YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRl
ZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2Up
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigp
LCB0cnVlKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktdXBsb2FkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzCmluZGV4IGUwZjhhMjhk
ZmU2MTMxMjg5YTkyNjE2OWQxMTg5MTY5MGJkZmFmYjAuLjQ3ZTkzOGEyMzM0OTg5Mjc0YTFiOTBi
N2VhZDcxNDlhN2QwOTg0ZDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQt
ZmlsZS10ZXN0cy5qcwpAQCAtMjcsNyArMjcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7fSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplTGltaXRFeGNlZWRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplTGltaXRFeGNlZWRl
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTEsMTUgKzUx
LDE1IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcp
OwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVw
bG9hZGVkRmlsZS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBs
aW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaXplLCB1cGxvYWRlZEZpbGUuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3
YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5pZCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAq
IDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
b3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUuc2l6ZSkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZS5m
aWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNp
b24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEy
NTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVl
MDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5z
aGEyNTYsIHVwbG9hZGVkRmlsZS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
NzksMTYgKzc5LDE2IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9h
ZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmls
ZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5
MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9h
ZGVkRmlsZTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1
cGxvYWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9h
ZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
ZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVk
MDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1
Nik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDgsMTYgKzEwOCwxNiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgdXBsb2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAg
IHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRG
aWxlMSwgdXBsb2FkZWRGaWxlMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmls
ZTEuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1C
ICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwg
dXBsb2FkZWRGaWxlMS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUx
MWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0
SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRl
ZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBd
LmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFj
NWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTM5LDI2ICsxMzksMjYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxv
YWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNw
b25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1
cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwodXBsb2FkZWRGaWxlMS5pZCwgdXBsb2FkZWRGaWxlMi5p
ZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uaWQsIHVwbG9hZGVkRmlsZTIuaWQpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEuaWQsIHVwbG9hZGVkRmlsZTIu
aWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5pZCwg
cGFyc2VJbnQodXBsb2FkZWRGaWxlMi5pZCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIuZmlsZW5hbWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVw
bG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzFdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUyLmZpbGVuYW1lKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlMS5z
aXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmls
ZTIuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCByb3dzWzFd
LnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVj
MThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRi
NScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZp
bGUxLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVw
bG9hZGVkRmlsZTIuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNo
YTI1Niwgcm93c1sxXS5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0u
ZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZXh0
ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
b3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLnNpemUpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNpemUsIHJvd3NbMV0uc2l6ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAy
NTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEu
c2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1Niwg
dXBsb2FkZWRGaWxlMi5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9h
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIg
KiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5taW1lLCAn
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAz
ZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmls
ZW5hbWUsICdzb21lLm90aGVyLnRhci5nejUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50YXIuZ3o1Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJl
ZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
bG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3Nv
bWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxldGVkX2F0
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3Ro
ZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhl
ci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQs
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUs
ICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmRl
bGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0u
ZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pCiAgICAgfSk7CiAKQEAgLTIx
NywxNCArMjE3LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsK
ICAgICAgICAgfQogICAgICAgICBsZXQgcm93cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndXBsb2Fk
ZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50KTsK
IAogICAgICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3Jh
cnlGaWxlT2ZTaXplSW5NQignbGltaXQuZGF0JywgbGltaXRJbk1CLCAnYScpOwogICAgICAgICBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBz
dHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsKICAgICAgICAgcm93cyA9IGF3YWl0IGRiLnNl
bGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVu
Z3RoLCBzcGxpdENvdW50ICsgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxl
bmd0aCwgc3BsaXRDb3VudCArIDEpOwogICAgICAgICBjb25zdCBkZWxldGVkRmlsZXMgPSByb3dz
LmZpbHRlcigocm93KSA9PiByb3dbJ2RlbGV0ZWRfYXQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChkZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChk
ZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIG5vdCBw
cnVuZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBkZWxldGVkJywgYXN5bmMgKCkgPT4gewpAQCAtMjgx
LDcgKzI4MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
dXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEyLDEzICszMTIs
MTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0
QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90
aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZGVsZXRl
ZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDYsMTMgKzM0NiwxMyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwo
J3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290LnRhci5neicpOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290LnRhci5neicpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0
LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM4Miw3ICszODIsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25l
d0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJy
b3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMKaW5kZXggNThiNTExMzExOWJmNjEwYzQ3ZTI4NDdmYTA3MzA3ZTFlNWFmMmY2Zi4uMTli
OWMxMWZmMGNmM2M0YWYzYzkyNDNhOTAzMTk0Mjk2M2YzNzQ1MyAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKQEAgLTU2LDcgKzU2LDcgQEAgYXN5bmMgZnVuY3Rpb24g
YXNzZXJ0VGhyb3dzKGV4cGVjdGVkRXJyb3IsIHRlc3RGdW5jdGlvbikKICAgICAgICAgICAgIGF3
YWl0IHRlc3RGdW5jdGlvbigpCiAgICAgfSBjYXRjaChlcnJvcikgewogICAgICAgICB0aHJvd25F
eGNlcHRpb24gPSB0cnVlOwotICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJy
b3IpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3IpOwog
ICAgIH0KICAgICBhc3NlcnQub2sodGhyb3duRXhjZXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1m
aWxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
dGVtcG9yYXJ5LWZpbGUuanMKaW5kZXggN2I4NGIyNGJmZTZhODgzN2VlYzc0MjdjODc2MGU0YjIw
MWRkYjBjNy4uMjYyYjJmZDRlMTcyMGI2MzU2NjhiNjZlMGQ4ZWI4NzVkMDg2MDg5ZiAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVt
cG9yYXJ5LWZpbGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgVGVt
cG9yYXJ5RmlsZSB7CiAgICAgICAgIGxldCBtZWdhYnl0ZVN0cmluZyA9IGNoYXJhY3RlclRvRmls
bDsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKQogICAgICAgICAgICAgbWVn
YWJ5dGVTdHJpbmcgPSBtZWdhYnl0ZVN0cmluZyArIG1lZ2FieXRlU3RyaW5nOwotICAgICAgICBh
c3NlcnQuZXF1YWwobWVnYWJ5dGVTdHJpbmcubGVuZ3RoLCAxMDI0ICogMTAyNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEwMjQgKiAxMDI0KTsK
IAogICAgICAgICBsZXQgY29udGVudCA9ICcnOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHNpemVJbk1COyBpKyspCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10
ZXN0cy5qcwppbmRleCA2MDRkYTczNGRhMGNlM2IwY2VjMGIwOTVhZmY5MDE1Y2RkOTc3MWQ5Li40
NTBmMGMzYTgzMzZmNTRkZmYyZGZmOGMwMTk2OGQ5MDRlZWVmNjA2IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJh
YmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTExLDggKzExLDggQEAgY29u
c3QgTW9ja0xvZ2dlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stbG9nZ2VyLmpzJykuTW9j
a0xvZ2dlcjsKIAogZnVuY3Rpb24gYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdCwgbWV0
aG9kLCB1cmwsIGNvbnRlbnQpCiB7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9kLCBt
ZXRob2QpOwotICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7CisgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3QudXJsLCB1cmwpOwogICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50KTsKIH0K
IApAQCAtNDAsNDUgKzQwLDQ1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEu
cnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6IDcwMiwg
J2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgotICAgICAgICAg
ICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQt
cmVxdWVzdC1pZCc6IDcwMiwgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0x
J319KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDIn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxk
ZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNv
bHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tE
YXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1l
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC05NywzOCArOTcsMzggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRp
bmdCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoeydidWlsZHMnIDogW01v
Y2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpLnRyaWdnZXJh
YmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVk
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtMTQ3LDcwICsxNDcsNzAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5
OTl9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0p
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklk
OiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVl
c3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0OSw2MiArMzQ5LDYyIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
OCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC00MjMsNzAgKzQyMyw3MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWls
ZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcw
MicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcw
MicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAg
ICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVp
bGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJl
c29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEu
cnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
cmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygp
LCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01MDUsNTAgKzUwNSw1MCBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJp
Z2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5p
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVy
LTEnLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTcwLDg2ICs1NzAsODYgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3
fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWls
ZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9k
LCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUt
YnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3dr
JzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWls
ZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzEwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElk
OiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwp
OwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJs
ZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVx
dWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTIzKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0
cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzEsOTEgKzY3MSw5MSBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9
fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29z
JzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMScsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0
SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1
aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxk
UmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5u
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9y
VHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCku
dHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEx
KS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8x
NycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1
ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC03NzYsNjAgKzc3Niw2MCBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUt
YnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
Ml0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxk
ZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNb
Ml0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6
IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUo
TW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVO
YW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVs
ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVz
dHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVl
c3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTg1NCwyNyArODU0LDI3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAg
ICAgICAgICAgICAgICB7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksCiAgICAgICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAgICAgICAgICAg
ICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEw
fSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtODgzLDIwICs4
ODMsMjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCiAgICAgICAgICAg
ICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKICAgICAgICAg
ICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtOTE4
LDU4ICs5MTgsNTggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNv
bWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7
J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxLCBi
dWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFi
bGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFi
bGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWls
ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1
ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC05ODgsNDIgKzk4OCw0MiBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJh
YmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFp
bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0xMDQ1LDIzICsxMDQ1LDIzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
UE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVp
bGRlci0xJyk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEn
fX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgn
T0snKTsKICAgICAgICAgICAgIH0pOwpAQCAtMTA3OSw3MSArMTA3OSw3MSBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJv
bWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxl
KE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50
cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
KCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmV1c2UgdGhlIHJvb3RzIGZy
b20gYSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCB3aXRoIHRoZSBzYW1lIGNvbW1pdCBzZXQnLCBh
c3luYyAoKSA9PiB7CkBAIC0xMTU4LDc4ICsxMTU4LDc4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAg
bGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGxl
dCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJD
b21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90
aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6
IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
CiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dp
dGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAg
ICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAg
ICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVk
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBkZWZlciBzY2hlZHVsaW5nIGEgYnVpbGQgcmVxdWVzdCBpZiB0aGVyZSBpcyBhICJydW5u
aW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2FtZSBjb21taXQgc2V0LCBidXQgc2hvdWxkIHNjaGVk
dWxlIHRoZSBidWlsZCByZXF1ZXN0IGlmICJydW5uaW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2Ft
ZSBjb21taXQgc2V0IGZhaWxzIGxhdGVyIG9uJywgYXN5bmMgKCkgPT4gewpAQCAtMTI0NCwxMTQg
KzEyNDQsMTE0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQg
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQg
YnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBs
ZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNl
dC5lcXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
e30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDgwMX0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQgc3lu
Y1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2Vy
YWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVy
KCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5v
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogOTAwLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9T
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5kYXRhLCB7J2lkJzogJzkwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAn
Zm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiAnaHR0cDovL2xvY2FsaG9zdDo4MTgwL2FwaS91
cGxvYWRlZC1maWxlLzEwMC50eHQnLAogICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlk
JzogJzkwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAg
ICAgICAgIH0pOwpAQCAtMTM2OCw3OCArMTM2OCw3OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg4MDApOwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxl
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQg
YW5vdGhlckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29t
bWl0U2V0KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhl
ckNvbW1pdFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAw
fSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA5MDAsIGJ1aWxkZXJJZDogM30pXX0pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tU
ZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDgwMCk7CiAgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9i
dWlsZHMvMTI0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHVwZGF0
ZSBidWlsZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIgdHJpZ2dlcmFibGUnLCBhc3luYyAoKSA9PiB7
CkBAIC0xNTM0LDIyICsxNTM0LDIyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbWFjb3MgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5u
YW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNv
cy5uYW1lKCksICdtYWNPUycpOwogICAgICAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFs
bCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
VHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRy
aWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuYWxsKClbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQn
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVUZXN0SWQoKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9y
bS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxh
dGZvcm0pLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKIAog
ICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
LnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgp
LCAnd2Via2l0LXN2bicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Z3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwogCiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmds
ZUJ1aWxkZXIoKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsK
QEAgLTE1ODQsMjIgKzE1ODQsMjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVm
ZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAg
ICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAgICAg
ICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSk7CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAn
YnVpbGQtd2Via2l0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91
cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFu
ZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uZGVzY3Jp
cHRpb24oKSwgJ0N1c3RvbSBSb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3Np
dG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24o
KSwgJ0N1c3RvbSBSb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
dHJ1ZSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVz
dFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0gWyBdOwpAQCAtMTYxMSwxMyArMTYxMSwxMyBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0
b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZS5hbGwoKVswXS5yZXBvc2l0b3J5R3JvdXBz
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQt
cm9vdHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBv
c2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
c1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdy
b3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0LCBtYWNvc10pOwogICAgICAgICAgICAgfSkKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0xNjMyLDEyICsxNjMyLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ2V0QnVpbGRlck5hbWVUb0lETWFw
UHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuZ2V0QnVpbGRlck5hbWVUb0lETWFwKCk7CiAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1hcFBy
b21pc2UudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIl0sIDEpCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEi
XSwgMikKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJz
b21lIGJ1aWxkZXIgMiJdLCAzKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVy
TmFtZVRvSURNYXBbIm90aGVyIGJ1aWxkZXIiXSwgNCkKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3RlciJdLCA1KQotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYp
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
c29tZSBidWlsZGVyIl0sIDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEiXSwgMikKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIgMiJdLCAz
KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBb
Im90aGVyIGJ1aWxkZXIiXSwgNCkKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3RlciJdLCA1KQorICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYp
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXIt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9z
LWJ1aWxkLWZldGNoZXItdGVzdHMuanMKaW5kZXggN2IyZTUxN2MzMWYwNTU5YTEyMTNjMTEyYzQ5
ZDRhYWRiZDI2NzFkMy4uZTMxMzNjYTRkMGU2YWJlNWJhNzViMjgxYmI3YWEwYjVjM2FjODYxYSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1v
cy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwpAQCAtMTEwLDEzICsx
MTAsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgZGVz
Y3JpYmUoJ09TQnVpbGRlckZldGNoZXIuX2NvbXB1dGVPcmRlcicsICgpID0+IHsKICAgICAgICAg
aXQoJ3Nob3VsZCBjYWxjdWxhdGUgdGhlIHJpZ2h0IG9yZGVyIGZvciBhIGdpdmVuIHZhbGlkIHJl
dmlzaW9uJywgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxk
RmV0Y2hlcih7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9y
ZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMy
MTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2
RDMyMXonKSwgMTYwMzAzMjEyNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5f
Y29tcHV0ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEy
LjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2
RDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRj
aGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMXonKSwgMTYwMzAz
MjEyNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9y
ZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEw
LjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgdGhyb3cgYXNzZXJ0aW9uIGVycm9yIHdoZW4gZ2l2ZW4gYSBpbnZhbGlkIHJl
dmlzaW9uJywgKCkgPT4gewpAQCAtMTQxLDEzICsxNDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9t
aXNlID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQx
J10sICdeXFwuKiQnKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9t
aXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNz
Lmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAgICAgICAg
Y29uc3QgZXhwZWN0ZWRSZXN1bHRzID0ge2FsbFJldmlzaW9uczogWyIxNkQzMjEiLCAiMTZFMzIx
eiIsICIxNkYzMjEiXSwgY29tbWl0c1dpdGhUZXN0YWJpbGl0eToge319OwogICAgICAgICAgICAg
YXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnMTZEMzIxXG4xNkUz
MjF6XG5cbjE2RjMyMScpOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJbmZvID0gYXdhaXQgZmV0
Y2hDb21taXRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZXhwZWN0ZWRS
ZXN1bHRzLCBidWlsZEluZm8pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChl
eHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgcGFyc2UgdGhlIGNvbW1hbmQgb3V0cHV0IGFzIEpTT04gZm9ybWF0JywgYXN5bmMgKCkg
PT4gewpAQCAtMTU3LDEzICsxNTcsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9taXNlID0gZmV0Y2hl
ci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAg
ICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAgICAgICAgICBjb25zdCBvdXRwdXRPYmplY3QgPSB7
YWxsUmV2aXNpb25zOiBbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0
aFRlc3RhYmlsaXR5OiB7IjE2RDMyMSI6ICJQYW5pYyJ9fTsKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3V0cHV0
T2JqZWN0KSk7CiAgICAgICAgICAgICBjb25zdCBidWlsZEluZm8gPSBhd2FpdCBmZXRjaENvbW1p
dHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdXRwdXRPYmplY3QsIGJ1
aWxkSW5mbyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dE9iamVj
dCwgYnVpbGRJbmZvKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3Myw5ICsxNzMsOSBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9
IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dl
cik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0Y2hlci5fY29tbWl0c1dpdGhpblJh
bmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sICJPU1giLCAxNjA0MDAwMDAwLCAx
NjA2MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAn
T1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRl
cjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMy
MTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAs
IHJldmlzaW9uOiAnMTZGMzIxJ30pOwogCiAgICAgICAgIH0pOwogCkBAIC0xODMsOCArMTgzLDgg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBj
b25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKICAgICAgICAgICAgIGNvbnN0IGZldGNoZXIg
PSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGwsIG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dn
ZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGZldGNoZXIuX2NvbW1pdHNXaXRoaW5S
YW5nZShbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCAiT1NYIiwgMTYwNDAwMDAwMCwg
MTYwNTAwMDAwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTog
J09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9y
ZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xOTYsMjQgKzE5NiwyNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZl
dGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXQsIGFub3RoZXJPU1hDb21t
aXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKTsKIAogICAgICAgICAgICAg
cmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJv
Y2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vz
cy5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkUzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMyJ10pOwogICAgICAgICAgICAg
ICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBh
ZGRvd25lZENvbW1pdFByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1swXVsncmVwb3NpdG9yeSddLCBvc3hDb21t
aXRbJ3JlcG9zaXRvcnknXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNb
MF1bJ3JldmlzaW9uJ10sIG9zeENvbW1pdFsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdWydvd25lZENvbW1pdHMnXSwgb3duZWRDb21taXRX
aXRoV2ViS2l0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1sxXVsncmVw
b3NpdG9yeSddLCBhbm90aGVyT1NYQ29tbWl0WydyZXBvc2l0b3J5J10pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzFdWydyZXZpc2lvbiddLCBhbm90aGVyT1NYQ29tbWl0
WydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNb
MV1bJ293bmVkQ29tbWl0cyddLCBhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXBvc2l0b3J5J10sIG9z
eENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbiddKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29tbWl0
cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzWzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9z
aXRvcnknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1b
J3JldmlzaW9uJ10sIGFub3RoZXJPU1hDb21taXRbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFu
b3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC0yMjQsMTUgKzIyNCwxNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNo
ZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbiddKQogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRp
b25Qcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
U3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJv
Y2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkQzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9uc1swXS5yZWplY3QoJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3Jfb3V0cHV0LCAnRmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0Jyk7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvcl9vdXRwdXQsICdGYWls
ZWQgZ2V0dGluZyBvd25lZC1jb21taXQnKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKQEAgLTI0NSwxNSArMjQ1LDE1IEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21t
aXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdF0s
IFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJldHVy
biB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQz
MiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3Mu
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAgICAg
IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoJ3siV2ViS2l0Ijp7IlJhbmRv
bUtleSI6ICJSYW5kb21WYWx1ZSJ9fScpOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93
bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgICAgICB9LCAo
ZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRw
dXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUs
ICdBc3NlcnRpb25FcnJvciBbRVJSX0FTU0VSVElPTl0nKTsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3InKTsK
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQpAQCAtMjkw
LDQwICsyOTAsNDAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSkpLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAw
MzMwNyk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0g
TW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgICAgICBmZXRj
aEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygp
OwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZENjhcblNpZXJyYTE2RDY5
XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSdd
KTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2RTMzXG5TaWVycmExNkUzM2hc
blNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBm
ZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
QEAgLTMzMSwyOSArMzMxLDI5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlzZSA9
IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkQ2OFxuU2llcnJhMTZENjlcbicpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21t
aXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJhMTZFMzNcblNpZXJyYTE2RTMzaFxuU2llcnJhMTZF
MzQnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNo
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0
Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXBv
cnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBA
IC0zNzAsMzQgKzM3MCwzNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwog
ICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKIAotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10s
IDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25l
ciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydvcmRl
ciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSks
IDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
b3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwg
MTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0
MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUz
NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCkBAIC00MjMsNDAgKzQyMyw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9u
UHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0Y2hBdmFpbGFi
bGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBi
dWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAg
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1
bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5y
ZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNP
Ti5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAg
IGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10p
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAn
U2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFu
ZEphdmFTY3JpcHRDb3JlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoQXZhaWxhYmxl
QnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNDY0LDI5ICs0
NjQsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5mZXRj
aFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxs
IG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1
YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBd
LnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdp
dGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CkBAIC01MDMsMzQgKzUwMywzNCBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQx
NkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0
ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJl
cG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293
bmVyJ10sIDEwKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2
OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2
OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21t
aXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQw
MDMzMDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUz
M2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAw
MzMwOCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZF
MzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBv
cnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
KSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0
MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDAp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NTUsNDEgKzU1NSw0MSBAQCBk
ZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKIAogICAgICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgIHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZF
MzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFu
ZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAg
ICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcydd
KTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVz
dWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0
QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwog
ICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRz
Rm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFu
ZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAg
ICAgICAgYXdhaXQgIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENv
bW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAn
Zm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogCiAgICAgICAgICAgICBh
d2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CiAKQEAgLTYwMSw0MyArNjAxLDQzIEBA
IGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29u
c3Qgb3N4Q29tbWl0MTZFMzNoID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2
aXNpb24nOiAnU2llcnJhMTZFMzNoJ30pOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZF
MzQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmEx
NkUzNCd9KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydv
d25lciddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVy
J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3Np
dG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpz
Y1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChq
c2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQ2OC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5pYyIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5p
YyIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9y
eSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29y
ZGVyJ10sIDE2MDMwMDY5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBDUFUiKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3Jk
ZXInXSksIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBDUFUiKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydvcmRlciddLCAxNjA0MDAzMTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsndGVzdGFiaWxpdHkn
XSwgIldlYktpdCBjcmFzaGVzIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZFMzEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzFbMF1bJ29yZGVyJ10pLCAxNjA0MDAz
MTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMVswXVsn
dGVzdGFiaWxpdHknXSwgIldlYktpdCBjcmFzaGVzIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hD
b21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hD
b21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1
bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBv
cnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAx
NjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSks
IDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBj
b21taXRzIHdpdGhvdXQgb3duZWQtY29tbWl0cyBpZiAib3duZWRDb21taXRDb21tYW5kIiBpcyBu
b3Qgc3BlY2lmaWVkIGluIGNvbmZpZycsIGFzeW5jICgpID0+IHsKQEAgLTY1OSwyNSArNjU5LDI1
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAn
U2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7
CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgIGNv
bnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2Ug
PSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBhd2Fp
dCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAg
ICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJl
c3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoUmVw
b3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTY5NCwzMCArNjk0LDMwIEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZF
MzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVz
dWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVu
Z3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwg
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5n
dGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVu
Z3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBd
WydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMw
MDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hb
MF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwg
MTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
NFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAx
NjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAz
MDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsK
IAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2
MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXBvcnQgY29tbWl0cyB3aXRoaW4gc3BlY2lmaWVkIHJl
dmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpAQCAtNzM4LDI1ICs3MzgsMjUgQEAgZGVzY3Jp
YmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmExNkUz
M2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0cnVlfSldKTsKIAogICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5
OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgIHJl
c3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJ
bnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZl
dGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJ
bnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2Fp
dCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZF
eHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNp
ZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRh
dGVQcm9taXNlOwpAQCAtNzczLDMwICs3NzMsMzAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVy
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1
bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10s
IDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXIn
XSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRl
ciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDAp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89
MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAg
ICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZF
MzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIHVwZGF0ZSBjb21taXRzIHdpdGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFu
Z2UnLCBhc3luYyAoKSA9PiB7CkBAIC04MTcsMjkgKzgxNywyOSBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRl
cic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNn
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Q
cm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IGNvbnN0IGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2ZldGNoQXZhaWxh
YmxlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vz
cy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAg
ICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5jb21taXRzVG9VcGRhdGUubGVuZ3RoLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuY29tbWl0c1RvVXBkYXRlLmxl
bmd0aCwgMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXNlICJsYXN0LXJl
cG9ydGVkIiBvcmRlciArIDEgYXMgIm1pbk9yZGVyIicsIGFzeW5jICgpID0+IHsKQEAgLTg1Mywx
NSArODUzLDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdy
ZXZpc2lvbic6ICdTaWVycmExNkQxMDAnLCAnb3JkZXInOiAxNjAzMDEwMDAwLCAncmVwb3J0ZWQn
OiB0cnVlfSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2
MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDAw
MCk7CiAKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tT
dWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaEFu
ZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAg
ICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHgg
YnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAg
ICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJy
YUQpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hBbmRSZXBvcnRQcm9taXNl
OwpAQCAtODc2LDE5ICs4NzYsMTkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQ2OSA9IHJlc3VsdHNbMl07CiAg
ICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDBhID0gcmVzdWx0c1szXTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydvcmRlciddLCAx
NjAzMDEwMDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQx
MDBhLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZEMTAwYVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAwYVswXVsnb3JkZXInXSksIDE2MDMwMTAwMDEp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89
MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDBhJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQxMDBhJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAxKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1c2UgbWluUmV2aXNpb24gaW4gdGhlIGNvbmZp
ZyBpZiB0aGVyZSBpcyBubyBjb21taXQnLCBhc3luYyAoKSA9PiB7CkBAIC05MDEsMTMgKzkwMSwx
MyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEwLCAnbmFtZSc6ICdPU1gn
fSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAw
MDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hS
ZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0
aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBh
d2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC05MjQsMjMgKzkyNCwyMyBAQCBk
ZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0
IG9zeENvbW1pdDE2RDEwMCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hDb21t
aXQxNkQxMDEgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
ZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNj
UmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZENjkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hD
b21taXQxNkQ2OS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZEMTAwLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZEMTAwWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMC5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsncmVwb3NpdG9yeSddLCAxMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAw
WzBdWydvcmRlciddKSwgMTYwMzAxMDAwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQxMDEubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQxMDFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAxLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQx
NkQxMDFbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
MTAxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDMwMTAxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDMwMTAxMDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxk
IHN0b3AgcmVwb3J0aW5nIGlmIGFueSBjdXN0b20gY29tbWFuZCBmYWlscycsICgpID0+IHsKQEAg
LTk2Myw2MCArOTYzLDYwIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQw
MDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1v
Y2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgZmV0Y2hB
bmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFE
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAg
ICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJh
RSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVqZWN0KCdDb21tYW5kIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBm
ZXRjaEFuZFJlcG9ydFByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICAgICAg
fSwgKGVycm9yX291dHB1dCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZXJyb3Jf
b3V0cHV0KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yX291dHB1dCwg
J0NvbW1hbmQgZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAx
NjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAw
MDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQogICAgIH0pCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdy
YXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rv
b2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKaW5kZXggNzFhMWQ1MzllYjYy
ZmVmMmFlYjdjZTBjMTk2NDBiMTY0YzJmY2YxMC4uNjlhOTFmNWU2MTEzMDZlYWRiOGYyMTI3Yjg4
ZDA1ZGVhYjk1YjEwYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTQ1LDggKzE0NSw4IEBAIGNvbnN0IGNvbmZpZ1dpdGhU
d29UZXN0ZXJzID0gewogCiBmdW5jdGlvbiBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
LCBtZXRob2QsIHVybCwgY29udGVudFRvUmVzb2x2ZSkKIHsKLSAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1cmwp
OworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5yZXNvbHZl
KGNvbnRlbnRUb1Jlc29sdmUpOwogfQogCkBAIC0yNjUsMjMgKzI2NSwyMyBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiBzZWNvbmRUZXN0R3JvdXBGaXJzdEJ1
aWxkUmVxdWVzdH0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiBmaXJz
dFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J2Fub3RoZXIgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdhbm90aGVy
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCiAgICAgICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNlY29uZFRlc3RHcm91
cEZpcnN0QnVpbGRSZXF1ZXN0fSksCkBAIC0yOTIsNDUgKzI5Miw0NSBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RH
cm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAogICAgICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogCiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhhbm90aGVyVGFza0lkLCB0cnVlKTsKICAg
ICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM0NCwzNiArMzQ0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGNvbnN0IHRhc2tJZCA9IHRlc3RHcm91cC50YXNr
KCkuaWQoKTsKICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGxldCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNj
cmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgbGV0
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGxldCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNo
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICBsZXQgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICBsZXQgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dl
cmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpA
QCAtMzgxLDMyICszODEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMics
ICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAn
Y2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcyd9fSk7CiAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAgICAgICAg
ICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
Myk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUg
YnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IGZpcnN0QnVpbGROdW1i
ZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQnVpbGRpbmcgV2ViS2l0J30pKTsKQEAgLTQxNSwzOSAr
NDE1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAg
ICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwg
J0J1aWxkaW5nIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC00NTYsMjYgKzQ1NiwyNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksCiAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBi
dWlsZFRhZzogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcg
V1RGJ30pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7
fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAg
ICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RC
dWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pKTsKQEAgLTQ4
NCw4MCArNDg0LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
CiAgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCAnQ29tcGlsaW5nIFdURicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
IG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCi0gICAgICAgIGF3YWl0IHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0Lmlk
KCksIGZpcnN0QnVpbGROdW1iZXIpOworICAgICAgICBhd2FpdCB1cGxvYWRSb290KHBhcnNlSW50
KGJ1aWxkUmVxdWVzdC5pZCgpKSwgZmlyc3RCdWlsZE51bWJlcik7CiAKICAgICAgICAgdGVzdEdy
b3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
ICdDb21waWxpbmcgV1RGJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOwogICAgICAg
ICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIGxldCB3ZWJraXRS
b290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2Vy
dCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJv
b3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC01
NjYsMzIgKzU2NiwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXJ9KSk7CiAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NU
JywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAg
ICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdr
JzogdHJ1ZX19KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLCB7CiAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtNjAzLDgzICs2MDMsODMgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwog
ICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51
bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwotICAgICAgICBhd2FpdCB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1
ZXN0LmlkKCksIDEyNCk7CisgICAgICAgIGF3YWl0IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJC
dWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAKICAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
ICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWls
ZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7
CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgY29uc3Qgb3RoZXJX
ZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICB9KTsKIApAQCAt
Njk0LDM0ICs2OTQsMzQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0g
dGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNo
ID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC03MjksMzIgKzcyOSwzMiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywg
J3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdj
aGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJ319KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMX0pKTsKQEAgLTc2Myw3NiArNzYzLDc2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
d2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwg
J3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAg
ICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAg
ICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAg
IHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAg
IGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKQEAgLTg0MSwzMiArODQxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1i
dWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0u
ZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdw
YXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gn
OiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC04NzgsODAgKzg3OCw4MCBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVu
YW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJr
aXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dl
YmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBs
b2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICAgICAgcmV0dXJu
IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRS
b290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJX
ZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTY3LDM0ICs5NjcsMzQgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5p
ZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAg
ICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09u
Y2UoKSk7CkBAIC0xMDAyLDMyICsxMDAyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1
aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5k
YXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1v
dGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAn
YnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRm
b3JtJ319KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3Nv
bWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTEwMzYsNzYgKzEwMzYsNzYg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgp
LCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMTExNCwzMiArMTExNCwzMiBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5
MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ3Bs
YXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTExNTEsODAgKzExNTEsODAg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRj
aC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Vi
a2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVw
bG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVy
biB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAg
YXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAg
IGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVy
V2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEyNDEsMjIgKzEyNDEsMjIg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2so
KS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAx
KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIHVwbG9hZFJvb3QoMSwgNDUpOwpAQCAtMTI2NSwzOSArMTI2NSwzOSBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgY29uc3Qgcm9v
dHMgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm9vdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgZmlyc3RSb290ID0gcm9vdHNb
MF07CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJvb3RzWzBdLmZpbGVuYW1lKCksICdy
b290NDUuZGF0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogICAgICAgICAgICAgY29uc3Qgb3RoZXJSb290cyA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9v
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlclJvb3Rz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyUm9vdHNbMF0u
ZmlsZW5hbWUoKSwgJ3Jvb3Q0Ni5kYXQnKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzA3LDEzICsx
MzA3LDEzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLXRlc3RzJywgJ09LJyk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMycsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3Rl
c3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzMn
LCdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsICdyb290cyc6IEpTT04uc3RyaW5n
aWZ5KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwgWwogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRl
c3RlcicpLCBidWlsZFJlcXVlc3RJZDogM30pLAogICAgICAgICAgICAgXSk7CkBAIC0xMzIxLDcg
KzEzMjEsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWls
ZHMnOiBbCkBAIC0xMzQzLDM2ICsxMzQzLDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRj
aCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJ
ZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAg
ICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhl
ckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzgzLDEzICsxMzgzLDEzIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xNDAxLDI0ICsxNDAxLDI0IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJl
cXVlc3QuaWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEwMDIp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTAwMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNDMyLDQ5ICsxNDMyLDQ5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RH
cm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdvdGhlciBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxLCBidWlsZFRhZzogMzEyfSkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksCkBAIC0xNDgz
LDI4ICsxNDgzLDI4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcWV1c3RzID0gdGVzdEdyb3Vwc1swXS5idWlsZFJlcXVlc3Rz
KCk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1swXS5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzBdLmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ290aGVyIGJ1aWxkZXInLCAzMTIpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnRmFp
bGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhlciBidWlsZGVyJywgMzEyKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1sxXS5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzFdLmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWls
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFl
dXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBmdW5jdGlvbiBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQocmVxdWVzdCkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdG
YWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYXNzZXJ0
VGVzdEJ1aWxkSGFzRmFpbGVkKGJ1aWxkUmVxZXVzdHNbMl0pOwpAQCAtMTUyNCwzNiArMTUyNCwz
NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwog
ICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
Lm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xNTYxLDMyICsxNTYx
LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZp
c2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3du
ZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEu
YnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpA
QCAtMTU5NSw4NSArMTU5NSw4NSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBs
b2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKS50aGVuKCgpID0+IHVwbG9hZFJvb3QoYnVp
bGRSZXF1ZXN0LmlkKCksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJl
cG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jykp
OworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lmlk
KCkpLCAxMjMpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQo
KSksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdK
YXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAg
ICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93
bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBh
c3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0xNjgyLDMyICsx
NjgyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAg
IHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2
aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93
bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTcxOSw5NSArMTcxOSw5NSBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAg
IGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1Jl
cG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpz
Y1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9v
dCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1
ZXN0LmlkKCksIDEyNCkudGhlbigoKSA9PiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0Lmlk
KCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdK
YXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOworICAgICAgICAg
ICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEy
NCkudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkp
LCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2
YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25l
ZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNz
ZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Vi
a2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJKU0NSb290ID0gb3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNz
ZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAncm9v
dDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3QsIG90aGVySlNDUm9vdF0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTE4MjQsMzYgKzE4MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFz
aygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVk
SlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwpAQCAtMTg2MSwzMiArMTg2MSwzMiBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdm
b3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAn
b3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIs
InJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19
YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVy
SURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUg
YnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTE4OTUsMTI2ICsxODk1LDEyNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAg
ICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpT
Q1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3Qu
aWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxk
UmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290
ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMywg
W3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0
Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CisgICAgICAgICAgICByZXR1cm4g
dXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMywgW3tvd25lclJlcG9z
aXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIw
MTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpT
QyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAg
IGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KChvd25lZEpTQykpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0p
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMjAyMywzMiArMjAyMywzMiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRz
JywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkx
OTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2
In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAg
J2J1aWxkcyc6IFsKQEAgLTIwNjAsMTQxICsyMDYwLDE0MSBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdS
dW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAg
ICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAg
ICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAg
ICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhl
cldlYmtpdFJvb3RdKTsKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9z
aXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTog
J0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5v
d25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jv
b3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9
IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJKU0NSb290ID0g
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3QsIG90aGVySlNDUm9vdF0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCmluZGV4IDMwYmQyNWYwYWNkMDE3ZTQ1ZjhhODA4MWZj
ZWUxYjhkMDk3ZjY4ODEuLjUyY2IxZWMyNDNiOWYxNjVkZjdkYzdkNjkwZTQwN2EwODA5ZWU4NGEg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1z
eW5jZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXN5bmNlci5qcwpAQCAtMTIsNyArMTIsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxkRW50cnkgewog
CiAgICAgaW5pdGlhbGl6ZShzeW5jZXIsIHJhd0RhdGEpCiAgICAgewotICAgICAgICBhc3NlcnQu
ZXF1YWwoc3luY2VyLmJ1aWxkZXJJRCgpLCByYXdEYXRhWydidWlsZGVyaWQnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChzeW5jZXIuYnVpbGRlcklEKCkpLCBwYXJzZUlu
dChyYXdEYXRhWydidWlsZGVyaWQnXSkpOwogCiAgICAgICAgIHRoaXMuX3N5bmNlciA9IHN5bmNl
cjsKICAgICAgICAgdGhpcy5fYnVpbGRib3RCdWlsZFJlcXVlc3RJZCA9IHJhd0RhdGFbJ2J1aWxk
cmVxdWVzdGlkJ107CkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIEJ1aWxkYm90QnVpbGRFbnRyeSB7
CiAKICAgICBidWlsZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKHJlcXVlc3QpCiAgICAg
ewotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5pZCgpLCB0aGlzLl9idWlsZFJlcXVlc3RJ
ZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LmlkKCksIHRoaXMuX2J1aWxk
UmVxdWVzdElkKTsKICAgICAgICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICAgICAgcmV0dXJuIG51
bGw7CiAgICAgICAgIGlmICh0aGlzLmlzUGVuZGluZygpKSB7CkBAIC0xMTcsNyArMTE3LDcgQEAg
Y2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICBsZXQgcHJvcGVydGllcyA9IHRoaXMuX3By
b3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3VwKTsKIAog
ICAgICAgICBhc3NlcnQocHJvcGVydGllc1snZm9yY2VzY2hlZHVsZXInXSwgYGZvcmNlc2NoZWR1
bGVyIHdhcyBub3Qgc3BlY2lmaWVkIGluIGJ1aWxkYm90IHByb3BlcnRpZXMgZm9yIGJ1aWxkIHJl
cXVlc3QgJHtuZXdSZXF1ZXN0LmlkKCl9IG9uIHBsYXRmb3JtICIke25ld1JlcXVlc3QucGxhdGZv
cm0oKS5uYW1lKCl9IiBmb3IgYnVpbGRlciAiJHt0aGlzLmJ1aWxkZXJOYW1lKCl9ImApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoIXRoaXMuX3NsYXZlUHJvcGVydHlOYW1lLCAhc2xhdmVOYW1lKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCF0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZSwgIXNs
YXZlTmFtZSk7CiAgICAgICAgIGlmICh0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZSkKICAgICAgICAg
ICAgIHByb3BlcnRpZXNbdGhpcy5fc2xhdmVQcm9wZXJ0eU5hbWVdID0gc2xhdmVOYW1lOwogCkBA
IC0zMzcsNyArMzM3LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCiAgICAgICAgIGFzc2Vy
dChjb25maWcuYnVpbGRSZXF1ZXN0QXJndW1lbnQsICdidWlsZFJlcXVlc3RBcmd1bWVudCBtdXN0
IHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHVzZWQgdG8gc3RvcmUgdGhlIGJ1aWxk
IHJlcXVlc3QgSUQnKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzKSwgJ29iamVjdCcsICdyZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lmeSBh
IGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFtZSB0byBpdHMgZGVmaW5pdGlvbicpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzKSwgJ29iamVj
dCcsICdyZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUg
bmFtZSB0byBpdHMgZGVmaW5pdGlvbicpOwogCiAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91
cHMgPSB7fTsKICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIGNvbmZpZy5yZXBvc2l0b3J5R3Jv
dXBzKQpAQCAtNDE2LDcgKzQxNiw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgIHN0
YXRpYyBfcGFyc2VSZXBvc2l0b3J5R3JvdXAobmFtZSwgZ3JvdXApCiAgICAgewotICAgICAgICBh
c3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnJlcG9zaXRvcmllcyksICdvYmplY3QnLAorICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKGdyb3VwLnJlcG9zaXRvcmllcyksICdvYmplY3Qn
LAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHNwZWNp
ZnkgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllc2ApOwogICAgICAgICBhc3NlcnQoISgnZGVz
Y3JpcHRpb24nIGluIGdyb3VwKSB8fCB0eXBlb2YoZ3JvdXBbJ2Rlc2NyaXB0aW9uJ10pID09ICdz
dHJpbmcnLAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGhhdmUgYW4g
aW52YWxpZCBkZXNjcmlwdGlvbmApOwpAQCAtNDMxLDcgKzQzMSw3IEBAIGNsYXNzIEJ1aWxkYm90
U3luY2VyIHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRU
b3BMZXZlbEJ5TmFtZShyZXBvc2l0b3J5TmFtZSk7CiAgICAgICAgICAgICBhc3NlcnQocmVwb3Np
dG9yeSwgYCIke3JlcG9zaXRvcnlOYW1lfSIgaXMgbm90IGEgdmFsaWQgcmVwb3NpdG9yeSBuYW1l
YCk7CiAgICAgICAgICAgICByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlOYW1lXSA9IHJlcG9z
aXRvcnk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKG9wdGlvbnMpLCAnb2JqZWN0
JywgYCIke3JlcG9zaXRvcnlOYW1lfSIgc3BlY2lmaWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWVg
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yob3B0aW9ucyksICdvYmpl
Y3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVjaWZpZXMgYSBub24tZGljdGlvbmFyeSB2YWx1
ZWApOwogICAgICAgICAgICAgYXNzZXJ0KFt1bmRlZmluZWQsIHRydWUsIGZhbHNlXS5pbmNsdWRl
cyhvcHRpb25zLmFjY2VwdHNQYXRjaCksCiAgICAgICAgICAgICAgICAgYCIke3JlcG9zaXRvcnlO
YW1lfSIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUGF0Y2ggdmFsdWU6ICR7SlNPTi5zdHJpbmdp
Znkob3B0aW9ucy5hY2NlcHRzUGF0Y2gpfWApOwogICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWNj
ZXB0c1BhdGNoKQpAQCAtNDQxLDcgKzQ0MSw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAg
ICAgICAgfQogICAgICAgICBhc3NlcnQocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCBgUmVw
b3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgcmVwb3NpdG9yeWAp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAudGVzdFByb3BlcnRpZXMpLCAn
b2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVzdCBj
b25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZWApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodHlwZW9mKGdyb3VwLnRlc3RQcm9wZXJ0aWVzKSwgJ29iamVjdCcsIGBSZXBvc2l0
b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0
aCBhbiBpbnZhbGlkIHR5cGVgKTsKIAogICAgICAgICBjb25zdCByZXNvbHZlUmVwb3NpdG9yeSA9
IChyZXBvc2l0b3J5TmFtZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHJl
cG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5hbWVdOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIGNsYXNz
IEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgfSk7CiAgICAgICAgIGFzc2VydCghZ3JvdXAuYWNj
ZXB0c1Jvb3RzID09ICFzcGVjaWZpZXNSb290cywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdy
b3VwICIke25hbWV9IiBhY2NlcHRzIHJvb3RzIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IHJvb3RzIGlu
IHRlc3RQcm9wZXJ0aWVzYCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXBvc2l0b3J5
TGlzdC5sZW5ndGgsIHRlc3RSZXBvc2l0b3JpZXMuc2l6ZSwKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlZFJlcG9zaXRvcnlMaXN0Lmxlbmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXpl
LAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHVzZSBz
b21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIHRlc3RpbmdgKTsKIAogICAgICAgICBs
ZXQgYnVpbGRQcm9wZXJ0aWVzVGVtcGxhdGUgPSBudWxsOwpAQCAtNTA0LDcgKzUwNCw3IEBAIGNs
YXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgIGFzc2VydChwYXRjaEFjY2VwdGluZ1Jl
cG9zaXRvcnlMaXN0LnNpemUgfHwgaGFzT3duZWRSZXZpc2lvbnMsIGBSZXBvc2l0b3J5IGdyb3Vw
ICIke25hbWV9IiBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGJ1dCBkb2Vz
IG5vdCBhY2NlcHQgYW55IHBhdGNoZXMgb3IgbmVlZCB0byBidWlsZCBvd25lZCBjb21wb25lbnRz
YCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlcG9zaXRvcnkgb2YgcGF0Y2hSZXBvc2l0b3Jp
ZXMpCiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJldmlzaW9uUmVwb3NpdG9yaWVzLmhhcyhyZXBv
c2l0b3J5KSwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyBhIHBhdGNoIGZv
ciAiJHtyZXBvc2l0b3J5Lm5hbWUoKX0iIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmV2aXNpb25g
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0
LnNpemUsIHBhdGNoUmVwb3NpdG9yaWVzLnNpemUsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplLCBwYXRjaFJlcG9zaXRvcmll
cy5zaXplLAogICAgICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2Vz
IG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBpbiBidWlsZGluZyBhIHBh
dGNoYCk7CiAgICAgICAgIH0KIApAQCAtNTY0LDEyICs1NjQsMTIgQEAgY2xhc3MgQnVpbGRib3RT
eW5jZXIgewogCiAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgIGNhc2Ug
J3Byb3BlcnRpZXMnOiAvLyBGYWxsdGhyb3VnaAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0eXBlb2YodmFsdWUpLCAnb2JqZWN0JywgJ0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEg
ZGljdGlvbmFyeScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yo
dmFsdWUpLCAnb2JqZWN0JywgJ0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFy
eScpOwogICAgICAgICAgICAgICAgIGlmICghY29uZmlnWydwcm9wZXJ0aWVzJ10pCiAgICAgICAg
ICAgICAgICAgICAgIGNvbmZpZ1sncHJvcGVydGllcyddID0ge307CiAgICAgICAgICAgICAgICAg
Y29uc3QgcHJvcGVydGllcyA9IGNvbmZpZ1sncHJvcGVydGllcyddOwogICAgICAgICAgICAgICAg
IGZvciAoY29uc3QgbmFtZSBpbiB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0cmluZycsIGBCdWlsZCBwcm9wZXJ0aWVzICIk
e25hbWV9IiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIiR7dHlwZW9mKHZh
bHVlKX0iYCk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yo
dmFsdWVbbmFtZV0pLCAnc3RyaW5nJywgYEJ1aWxkIHByb3BlcnRpZXMgIiR7bmFtZX0iIHNwZWNp
ZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAiJHt0eXBlb2YodmFsdWUpfSJgKTsKICAg
ICAgICAgICAgICAgICAgICAgcHJvcGVydGllc1tuYW1lXSA9IHZhbHVlW25hbWVdOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTU4MCw3ICs1ODAsNyBAQCBj
bGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFs
dWUuc2xpY2UoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ2J1
aWxkZXInOiAvLyBGYWxsdGhyb3VnaAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBl
b2YodmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9mIHN0cmluZyB0eXBlYCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJp
bmcnLCBgJHtuYW1lfSBzaG91bGQgYmUgb2Ygc3RyaW5nIHR5cGVgKTsKICAgICAgICAgICAgICAg
ICBjb25maWdbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgJ2J1aWxkZXJJRCc6CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKaW5kZXggNDBkZTBhNTY5N2M4
N2NlYjA5ODM1ODcyZDdlMmUwODUzMzliYjNjMy4uMjljMWU1MDhjZmVkNjU2NGM1YzIzOWYwNjA1
OTg0ZThlNDE5NmYzMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGNs
YXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYXNzZXJ0KHRyaWdnZXJhYmxlIGluc3RhbmNlb2YgVHJp
Z2dlcmFibGUsICdNdXN0IHNwZWNpZnkgYSB2YWxpZCB0cmlnZ2VyYWJsZScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhpcy5fbmFtZSwgJ011c3Qgc3Bl
Y2lmeSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksIHRoaXMuX25hbWUsICdNdXN0IHNwZWNp
ZnkgdGhlIHRyaWdnZXJhYmxlIG9mIHRoaXMgc3luY2VyJyk7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0LnJlcG9zaXRvcnlHcm91cCgpOwogICAgICAgICAgICAg
aWYgKCFyZXBvc2l0b3J5R3JvdXApIHsKICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJy
b3IoYEJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IGRvZXMgbm90IHNwZWNpZnkgYSByZXBv
c2l0b3J5IGdyb3VwLiBTdWNoIGEgYnVpbGQgcmVxdWVzdCBpcyBubyBsb25nZXIgc3VwcG9ydGVk
LmApOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1
cC1jb21wb25lbnQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWFya3Vw
LWNvbXBvbmVudC5qcwppbmRleCBhY2YwNDlkMzg4ZmM2NzdhZmEwODQ4ODgwNjE1ZGE2MWNjMWNl
ZTM5Li4yNjQyNTUyZGVjZjMwMWZhYTU0MDQ0NDdkOGQ5M2RkNDBjNGE3MDU4IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5q
cwpAQCAtMSw0ICsxLDYgQEAKKyd1c2Ugc3RyaWN0JzsKIAorY29uc3QgYXNzZXJ0ID0gcmVxdWly
ZSgnYXNzZXJ0Jyk7CiBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1
bWVudCB7CiAgICAgY29uc3RydWN0b3IoKQogICAgIHsKQEAgLTI3LDcgKzI5LDcgQEAgY29uc3Qg
TWFya3VwRG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogCiAgICAgX2lkRm9y
Q2xvbmUob3JpZ2luYWwpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChvcmlnaW5hbCBp
bnN0YW5jZW9mIE1hcmt1cE5vZGUpOworICAgICAgICBhc3NlcnQub2sob3JpZ2luYWwgaW5zdGFu
Y2VvZiBNYXJrdXBOb2RlKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVJZCsrOwogICAgIH0K
IApAQCAtMzgsNyArNDAsNyBAQCBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJr
dXBEb2N1bWVudCB7CiAKICAgICBtYXJrdXAobm9kZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KG5vZGUgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG5v
ZGUgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKICAgICAgICAgcmV0dXJuIG5vZGUuX21hcmt1cCgp
OwogICAgIH0KIApAQCAtNTYsNyArNTgsNyBAQCBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBj
bGFzcyBNYXJrdXBEb2N1bWVudCB7CiBjbGFzcyBNYXJrdXBOb2RlIHsKICAgICBjb25zdHJ1Y3Rv
cihpZCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZihpZCkgPT0gJ251bWJl
cicpOworICAgICAgICBhc3NlcnQub2sodHlwZW9mKGlkKSA9PSAnbnVtYmVyJyk7CiAgICAgICAg
IHRoaXMuX2lkID0gaWQ7CiAgICAgICAgIHRoaXMuX3BhcmVudE5vZGUgPSBudWxsOwogICAgIH0K
QEAgLTczLDkgKzc1LDkgQEAgY2xhc3MgTWFya3VwTm9kZSB7CiAKICAgICBfY2xvbmVOb2RlRGF0
YShjbG9uZWROb2RlKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mKGNsb25l
ZE5vZGUuX2lkKSA9PSAnbnVtYmVyJyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2lk
ICE9IGNsb25lZE5vZGUuX2lkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY2xvbmVkTm9kZS5f
cGFyZW50Tm9kZSA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHR5cGVvZihjbG9uZWROb2Rl
Ll9pZCkgPT0gJ251bWJlcicpOworICAgICAgICBhc3NlcnQub2sodGhpcy5faWQgIT0gY2xvbmVk
Tm9kZS5faWQpOworICAgICAgICBhc3NlcnQub2soY2xvbmVkTm9kZS5fcGFyZW50Tm9kZSA9PSBu
dWxsKTsKICAgICB9CiAKICAgICByZW1vdmUoKQpAQCAtMTEzLDcgKzExNSw3IEBAIGNsYXNzIE1h
cmt1cFBhcmVudE5vZGUgZXh0ZW5kcyBNYXJrdXBOb2RlIHsKICAgICAgICAgaWYgKGNoaWxkLl9w
YXJlbnROb2RlKQogICAgICAgICAgICAgY2hpbGQucmVtb3ZlKCk7CiAKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoY2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayhj
aGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKICAgICAgICAgdGhpcy5fY2hpbGROb2Rlcy5wdXNo
KGNoaWxkKTsKICAgICAgICAgY2hpbGQuX3BhcmVudE5vZGUgPSB0aGlzOwogICAgIH0KQEAgLTEy
Myw3ICsxMjUsNyBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7
CiAgICAgICAgIGlmIChjaGlsZC5fcGFyZW50Tm9kZSAhPSB0aGlzKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2NoaWxkTm9kZXMuaW5kZXhPZihjaGls
ZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluZGV4ID49IDApOworICAgICAgICBhc3NlcnQu
b2soaW5kZXggPj0gMCk7CiAgICAgICAgIHRoaXMuX2NoaWxkTm9kZXMuc3BsaWNlKGluZGV4LCAx
KTsKICAgICAgICAgY2hpbGQuX3BhcmVudE5vZGUgPSBudWxsOwogICAgIH0KQEAgLTE0MiwxMCAr
MTQ0LDEwIEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUgZXh0ZW5kcyBNYXJrdXBOb2RlIHsKIAog
ICAgICAgICBpZiAobmV3Q2hpbGQuX3BhcmVudE5vZGUpCiAgICAgICAgICAgICBuZXdDaGlsZC5y
ZW1vdmUoKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobmV3Q2hpbGQuX3BhcmVudE5vZGUgPT0g
bnVsbCk7CisgICAgICAgIGFzc2VydC5vayhuZXdDaGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsK
IAogICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2NoaWxkTm9kZXMuaW5kZXhPZihvbGRDaGls
ZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluZGV4ID49IDApOworICAgICAgICBhc3NlcnQu
b2soaW5kZXggPj0gMCk7CiAgICAgICAgIHRoaXMuX2NoaWxkTm9kZXMuc3BsaWNlKGluZGV4LCAx
LCBuZXdDaGlsZCk7CiAgICAgICAgIG9sZENoaWxkLl9wYXJlbnROb2RlID0gbnVsbDsKICAgICAg
ICAgbmV3Q2hpbGQuX3BhcmVudE5vZGUgPSB0aGlzOwpAQCAtMTU1LDggKzE1Nyw4IEBAIGNsYXNz
IE1hcmt1cFBhcmVudE5vZGUgZXh0ZW5kcyBNYXJrdXBOb2RlIHsKIGNsYXNzIE1hcmt1cENvbnRl
bnRSb290IGV4dGVuZHMgTWFya3VwUGFyZW50Tm9kZSB7CiAgICAgY29uc3RydWN0b3IoaWQsIGhv
c3QpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChob3N0IGluc3RhbmNlb2YgTWFya3Vw
RWxlbWVudCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhvc3QuX2NvbnRlbnRSb290ID09IG51
bGwpOworICAgICAgICBhc3NlcnQub2soaG9zdCBpbnN0YW5jZW9mIE1hcmt1cEVsZW1lbnQpOwor
ICAgICAgICBhc3NlcnQub2soaG9zdC5fY29udGVudFJvb3QgPT0gbnVsbCk7CiAgICAgICAgIHN1
cGVyKGlkKTsKICAgICAgICAgdGhpcy5faG9zdEVsZW1lbnQgPSBudWxsOwogICAgICAgICBob3N0
Ll9jb250ZW50Um9vdCA9IHRoaXM7CkBAIC0xNzUsNyArMTc3LDcgQEAgY2xhc3MgTWFya3VwRWxl
bWVudCBleHRlbmRzIE1hcmt1cFBhcmVudE5vZGUgewogICAgIGNvbnN0cnVjdG9yKGlkLCBuYW1l
KQogICAgIHsKICAgICAgICAgc3VwZXIoaWQpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBl
b2YobmFtZSkgPT0gJ3N0cmluZycpOworICAgICAgICBhc3NlcnQub2sodHlwZW9mKG5hbWUpID09
ICdzdHJpbmcnKTsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX2F0
dHJpYnV0ZXMgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7CkBAIC0zNjQs
NyArMzY2LDcgQEAgY2xhc3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBv
bmVudEJhc2UgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9uYW1lID0gY29tcG9u
ZW50c0J5Q2xhc3MuZ2V0KG5ldy50YXJnZXQpOwogICAgICAgICBjb25zdCBjb21wb25lbnQgPSBj
b21wb25lbnRzTWFwLmdldCh0aGlzLl9uYW1lKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29t
cG9uZW50LCBgQ29tcG9uZW50ICIke3RoaXMuX25hbWV9IiBoYXMgbm90IGJlZW4gZGVmaW5lZGAp
OworICAgICAgICBhc3NlcnQub2soY29tcG9uZW50LCBgQ29tcG9uZW50ICIke3RoaXMuX25hbWV9
IiBoYXMgbm90IGJlZW4gZGVmaW5lZGApOwogICAgICAgICB0aGlzLl9jb21wb25lbnRJZCA9IGNv
bXBvbmVudC5pZDsKICAgICAgICAgdGhpcy5fZWxlbWVudCA9IG51bGw7CiAgICAgICAgIHRoaXMu
X2NvbnRlbnRSb290ID0gbnVsbDsKQEAgLTQxMiw3ICs0MTQsNyBAQCBjbGFzcyBNYXJrdXBDb21w
b25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICBzdGF0aWMgcnVu
UmVuZGVyTG9vcCgpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghY3VycmVudGx5UmVu
ZGVyaW5nQ29tcG9uZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFjdXJyZW50bHlSZW5kZXJpbmdD
b21wb25lbnQpOwogICAgICAgICBkbyB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2V0ID0g
Wy4uLmNvbXBvbmVudHNUb1JlbmRlcl07CiAgICAgICAgICAgICBjb21wb25lbnRzVG9SZW5kZXIu
Y2xlYXIoKTsKQEAgLTQyOSwxNCArNDMxLDE0IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2Ug
ZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKIAogICAgIHJlbmRlclJlcGxhY2UocGFyZW50
Tm9kZSwgY29udGVudCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGN1cnJlbnRseVJl
bmRlcmluZ0NvbXBvbmVudCA9PSB0aGlzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50
Tm9kZSBpbnN0YW5jZW9mIE1hcmt1cFBhcmVudE5vZGUpOworICAgICAgICBhc3NlcnQub2soY3Vy
cmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID09IHRoaXMpOworICAgICAgICBhc3NlcnQub2socGFy
ZW50Tm9kZSBpbnN0YW5jZW9mIE1hcmt1cFBhcmVudE5vZGUpOwogICAgICAgICBwYXJlbnROb2Rl
LnJlbW92ZUFsbENoaWxkcmVuKCk7CiAgICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICAg
ICBNYXJrdXBDb21wb25lbnRCYXNlLl9hZGRDb250ZW50VG9FbGVtZW50KHBhcmVudE5vZGUsIGNv
bnRlbnQpOwogCiAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb21wb25lbnRzTWFwLmdl
dCh0aGlzLl9uYW1lKTsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbXBvbmVudCk7Cisg
ICAgICAgICAgICBhc3NlcnQub2soY29tcG9uZW50KTsKICAgICAgICAgICAgIHRoaXMuX2FwcGx5
U3R5bGVPdmVycmlkZXMocGFyZW50Tm9kZSwgY29tcG9uZW50LnN0eWxlT3ZlcnJpZGUpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtNDkzLDcgKzQ5NSw3IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJh
c2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKIAogICAgIHN0YXRpYyByZXNldCgpCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50
KTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQpOwogICAg
ICAgICBNYXJrdXBEb2N1bWVudC5yZXNldCgpOwogICAgICAgICBjb21wb25lbnRzTWFwLmNsZWFy
KCk7CiAgICAgICAgIGNvbXBvbmVudHNCeUNsYXNzLmNsZWFyKCk7CkBAIC01NjcsOSArNTY5LDkg
QEAgY2xhc3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2Ug
ewogCiAgICAgc3RhdGljIGRlZmluZUVsZW1lbnQobmFtZSwgY29tcG9uZW50Q2xhc3MpCiAgICAg
ewotICAgICAgICBjb25zb2xlLmFzc2VydCghY29tcG9uZW50c01hcC5nZXQobmFtZSksIGBUaGUg
Y29tcG9uZW50ICIke25hbWV9IiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWRgKTsKKyAgICAgICAg
YXNzZXJ0Lm9rKCFjb21wb25lbnRzTWFwLmdldChuYW1lKSwgYFRoZSBjb21wb25lbnQgIiR7bmFt
ZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZGApOwogICAgICAgICBjb25zdCBleGlzdGluZ0Nv
bXBvbmVudEZvckNsYXNzID0gY29tcG9uZW50c0J5Q2xhc3MuZ2V0KGNvbXBvbmVudENsYXNzKTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoIWV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MsIGV4aXN0
aW5nQ29tcG9uZW50Rm9yQ2xhc3MKKyAgICAgICAgYXNzZXJ0Lm9rKCFleGlzdGluZ0NvbXBvbmVu
dEZvckNsYXNzLCBleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzCiAgICAgICAgICAgICA/IGBUaGUg
Y29tcG9uZW50IGNsYXNzICIke2V4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3N9IiBoYXMgYWxyZWFk
eSBiZWVuIHVzZWQgdG8gZGVmaW5lIGFub3RoZXIgY29tcG9uZW50ICIke2V4aXN0aW5nQ29tcG9u
ZW50Rm9yQ2xhc3MubmFtZX0iYCA6ICcnKTsKICAgICAgICAgY29tcG9uZW50c01hcC5zZXQobmFt
ZSwgewogICAgICAgICAgICAgY2xhc3M6IGNvbXBvbmVudENsYXNzLApkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qcwppbmRleCA5
OTM0MDc5ZDZiM2FhNDlkODdlZTQzZGE1OTUxYTdkYzEwMmMwOWZjLi4yZDZmNTBhOTU3MzBkY2Q2
NmM0NzQ1ODMxYmI4ZWI3ZWI3ZjIzYTZiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qcwpAQCAtMTIxLDcgKzEyMSw3IEBA
IGNsYXNzIE9TQnVpbGRGZXRjaGVyIHsKICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9n
KGBHb3QgJHtPYmplY3Qua2V5cygob3duZWRDb21taXRzKSkubGVuZ3RofSBvd25lZCBjb21taXRz
IGZvciAiJHtjb21taXRbJ3JldmlzaW9uJ119ImApOwogICAgICAgICAgICAgICAgIGZvciAobGV0
IHJlcG9zaXRvcnlOYW1lIGluIG93bmVkQ29tbWl0cykgewogICAgICAgICAgICAgICAgICAgICBj
b25zdCBvd25lZENvbW1pdCA9IG93bmVkQ29tbWl0c1tyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMob3duZWRDb21taXQpLCBb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KE9iamVjdC5rZXlzKG93bmVkQ29tbWl0KSwgWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHR5cGVvZihvd25lZENvbW1pdFsncmV2aXNpb24nXSkgPT0gJ3N0cmluZycp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBjb21taXRbJ293bmVkQ29tbWl0
cyddID0gb3duZWRDb21taXRzOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL3JlbW90ZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9y
ZW1vdGUuanMKaW5kZXggYWY2YWEzNjhlZjUwYmI4NzgzMTc2N2Y2YWI3NTYzMWMyODFkZTBjNy4u
NDc3Mzc2NjYwNjYwYjgwNmQ0MTExOTkyMDdmOTQyOGRjYTQ0NzI2MCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCkBAIC0zMSwxNCArMzEsMTQgQEAgY2xh
c3MgTm9kZVJlbW90ZUFQSSBleHRlbmRzIENvbW1vblJlbW90ZUFQSSB7CiAgICAgY29uZmlndXJl
KHNlcnZlcikKICAgICB7CiAgICAgICAgIGFzc2VydChzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cCcg
fHwgc2VydmVyLnNjaGVtZSA9PT0gJ2h0dHBzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBl
b2Yoc2VydmVyLmhvc3QpLCAnc3RyaW5nJywgJ2hvc3Qgc2hvdWxkIGJlIGEgc3RyaW5nJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmhvc3QpLCAnc3RyaW5nJywg
J2hvc3Qgc2hvdWxkIGJlIGEgc3RyaW5nJyk7CiAgICAgICAgIGFzc2VydCghc2VydmVyLnBvcnQg
fHwgdHlwZW9mKHNlcnZlci5wb3J0KSA9PSAnbnVtYmVyJywgJ3BvcnQgc2hvdWxkIGJlIGEgbnVt
YmVyJyk7CiAKICAgICAgICAgbGV0IGF1dGggPSBudWxsOwogICAgICAgICBpZiAoc2VydmVyLmF1
dGgpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgpLCAnb2Jq
ZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEgZGljdGlvbmFyeSB3aXRoIHVzZXJuYW1lIGFuZCBwYXNz
d29yZCBhcyBrZXlzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5h
dXRoLnVzZXJuYW1lKSwgJ3N0cmluZycsICdhdXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHVz
ZXJuYW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnBh
c3N3b3JkKSwgJ3N0cmluZycsICdhdXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHBhc3N3b3Jk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoKSwg
J29iamVjdCcsICdhdXRoIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkgd2l0aCB1c2VybmFtZSBhbmQg
cGFzc3dvcmQgYXMga2V5cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVv
ZihzZXJ2ZXIuYXV0aC51c2VybmFtZSksICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBh
IHN0cmluZyB1c2VybmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVv
ZihzZXJ2ZXIuYXV0aC5wYXNzd29yZCksICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBh
IHN0cmluZyBwYXNzd29yZCcpOwogICAgICAgICAgICAgYXV0aCA9IHsKICAgICAgICAgICAgICAg
ICB1c2VybmFtZTogc2VydmVyLmF1dGgudXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgcGFzc3dv
cmQ6IHNlcnZlci5hdXRoLnBhc3N3b3JkLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422319</attachid>
            <date>2021-03-04 18:49:05 -0800</date>
            <delta_ts>2021-03-04 20:16:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210304184902.patch</filename>
            <type>text/plain</type>
            <size>876417</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi5mMDhjOTgwYWFl
YTVmM2E0NTA2ZGNiZGU0OTMzZWE5YTdkZWU2MWUzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAyMS0wMi0yNiAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzZXJ2ZXIgdGVzdCBydW4gd2l0aCBuZXcg
bm9kZSB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjI0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanM6IEFkZCBhIGZvcmNlIGxvYWQgdG8g
bWFrZSBzdXJlIHVuaXQgdGVzdCBhbHdheXMgZ2V0IHRoZSBuZXdlc3QgZGF0YSBldmVuIHdpdGgg
YW4gZXhpc3Rpbmcgc2VydmVyCisgICAgICAgIChNYW5pZmVzdC5hc3luYyBmZXRjaCk6CisgICAg
ICAgIChNYW5pZmVzdC5hc3luYyBmZXRjaFJhd1Jlc3BvbnNlKToKKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL3JlcG9zaXRvcnkuanM6CisgICAgICAgIChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwpOiBtYWtlIHN1cmUgdGhlIHNvcnQgaXMgc3RhYmxlIGV2ZW4g
dGhlIG5hbWUgaXMgc2FtZQorICAgICAgICAoUmVwb3NpdG9yeSk6CisgICAgICAgICogc2VydmVy
LXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIu
cmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChh
c3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpz
OgorICAgICAgICAoYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQpOgorICAgICAgICAo
cmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUu
dGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAg
ICAgICAgKHJldHVybi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJl
ZF9oZXJlLnRoZW4pOgorICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzOgorICAgICAgICAoc2V0IHRoZW4pOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6CisgICAg
ICAgIChlbXB0eVJlcG9ydC50aGVuKToKKyAgICAgICAgKGFzeW5jIGluaXRpYWxSZXBvcnRDb21t
aXRzKToKKyAgICAgICAgKGFzeW5jIHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0dXMpOgorICAg
ICAgICAoYXN5bmMgdGVzdFdpdGhFeHBlY3RlZEZhaWx1cmUpOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAoZW1wdHlSZXBvcnQudGhlbik6Cisg
ICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdy
b3Vwcy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10
ZXN0cy5qczoKKyAgICAgICAgKHVwZGF0ZS50aGVuKToKKyAgICAgICAgKHRoZW4ucmVzcG9uc2Uu
ZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAodGhlbi5k
Yi5zZWxlY3RBbGwuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuLk1h
bmlmZXN0LmZldGNoLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJv
b3QtdGVzdHMuanM6CisgICAgICAgIChhc3luYyBjb25zdCk6CisgICAgICAgICogc2VydmVyLXRl
c3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2
ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5q
czoKKyAgICAgICAgKGFzeW5jIGNyZWF0ZUFuYWx5c2lzVGFzayk6CisgICAgICAgIChjb25zdC5j
b21taXRTZXQub2YudXBkYXRlZEdyb3Vwcy4wLnJlcXVlc3RlZENvbW1pdFNldHMpOgorICAgICAg
ICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0
cy5qczoKKyAgICAgICAgKGFzeW5jIGNvbnN0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChjcmVhdGVB
bmFseXNpc1Rhc2spOgorICAgICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lzVGFzay5zdHJpbmdf
YXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHJldHVybi5hZGRUcmlnZ2VyYWJsZUFuZENy
ZWF0ZVRhc2suc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChzdHJpbmdfYXBw
ZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
dXBhdGUtcnVuLXN0YXR1cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChhc3luYyBjcmVhdGVBbmFs
eXNpc1Rhc2spOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQt
ZmlsZS10ZXN0cy5qczoKKyAgICAgICAgKFRlc3RTZXJ2ZXIudGVzdENvbmZpZy51cGxvYWRGaWxl
TGltaXRJbk1CLjEudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21t
b24tb3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93cyk6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoKKyAgICAgICAgKFRl
bXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgIChh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50
aGVuKToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAgICAgKHJldHVybi5Nb2NrRGF0YS5h
ZGRNb2NrRGF0YS5kYi50aGVuKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRoZW4p
OgorICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczoK
KyAgICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9qcy9i
dWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90eXBl
LmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5idWls
ZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAgICAgICAgKEJ1aWxkYm90QnVpbGRF
bnRyeSk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0
KToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKToKKyAgICAgICAgKEJ1aWxk
Ym90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6CisgICAgICAgIChCdWlsZGJvdFN5bmNl
ci5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlcik6Cisg
ICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWls
ZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAgICog
dG9vbHMvanMvY29uZmlnLmpzOgorICAgICAgICAoQ29uZmlnLm5ldy5Db25maWcucHJvdG90eXBl
LmFsbCk6CisgICAgICAgICogdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5qczoKKyAgICAgICAg
KHByb3RvdHlwZS5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQpOgorICAgICAgICAqIHRvb2xzL2pz
L3JlbW90ZS5qczoKKyAgICAgICAgKE5vZGVSZW1vdGVBUEkucHJvdG90eXBlLmNvbmZpZ3VyZSk6
CisKIDIwMjEtMDItMTggIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IGEgYnVnIHRoYXQgYSBzeW5jaW5nIHNjcmlwdCBtYXkgdHJ5IHRvIHJldXNlIGEgZGVs
ZXRlIHJvb3QuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9jb21taXQtc2V0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvY29tbWl0LXNldC5qcwppbmRleCAwNDIyOWUxZTAwYjI5ZDc4MzU2OTg5ZjQ5OWYw
NTg5NWVkMzJkZDM2Li4wMzgzMjVhNGQ2NmZjOTcwNDlkZjI1YmYyZWFlMjJjNmQwNWZhYzE4IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21t
aXQtc2V0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L2NvbW1pdC1zZXQuanMKQEAgLTkyLDggKzkyLDggQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMg
RGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIGNvbW1pdCA/IGNvbW1pdC5yZXZpc2lv
bigpIDogbnVsbDsKICAgICB9CiAKLSAgICBwYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkg
eyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRvcnkpOyB9Ci0g
ICAgcm9vdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9y
eVRvUm9vdE1hcC5nZXQocmVwb3NpdG9yeSk7IH0KKyAgICBwYXRjaEZvclJlcG9zaXRvcnkocmVw
b3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuaGFzKHJlcG9zaXRv
cnkpID8gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRvcnkpIDogbnVsbDsg
fQorICAgIHJvb3RGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9z
aXRvcnlUb1BhdGNoTWFwLmhhcyhyZXBvc2l0b3J5KSA/IHRoaXMuX3JlcG9zaXRvcnlUb1Jvb3RN
YXAuZ2V0KHJlcG9zaXRvcnkpIDogbnVsbDsgfQogICAgIHJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlSZXF1aXJlc0J1aWxkTWFw
LmdldChyZXBvc2l0b3J5KSB8fCBmYWxzZTsgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHJldHVybiBhIERhdGUgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMKaW5kZXggZjE4OTI5OGE0N2I0NThk
Y2FiN2I3YmE5ZjM1NWZlYjlmNGVjODBjYS4uZTU2YzgxMjBjMjM0MGJiMTRlNmMxYmY3NjUxODVm
NDU2YmMxYjAwMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvZGF0YS1tb2RlbC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIERhdGFN
b2RlbE9iamVjdCB7CiAgICAgc3RhdGljIGZpbmRCeUlkKGlkKQogICAgIHsKICAgICAgICAgdmFy
IGlkTWFwID0gdGhpcy5uYW1lZFN0YXRpY01hcCgnaWQnKTsKLSAgICAgICAgcmV0dXJuIGlkTWFw
ID8gaWRNYXBbaWRdIDogbnVsbDsKKyAgICAgICAgcmV0dXJuIGlkTWFwID8gKGlkTWFwLmhhc093
blByb3BlcnR5KGlkKSA/IGlkTWFwW2lkXSA6IG51bGwpIDogbnVsbDsKICAgICB9CiAKICAgICBz
dGF0aWMgbGlzdEZvclN0YXRpY01hcChuYW1lKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMKaW5kZXggOTMxOTg5OWRk
Y2Y2MDI3NTlkMDI0ODA5MDM1OTU3ZmUwNjNmMWE0Yi4uMDEyZjgyY2VkZTM4NDhhMTZmMWI4NGJl
MTI4ZTNiMzljNjIyMzIyZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNz
IFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICBvd25lZFJlcG9zaXRvcmll
cygpCiAgICAgewogICAgICAgICBjb25zdCBvd25lcnNoaXBzID0gdGhpcy5uYW1lZFN0YXRpY01h
cCgncmVwb3NpdG9yeU93bmVyc2hpcHMnKTsKLSAgICAgICAgcmV0dXJuIG93bmVyc2hpcHMgPyBv
d25lcnNoaXBzW3RoaXMuaWQoKV0gOiBudWxsOworICAgICAgICByZXR1cm4gb3duZXJzaGlwcyA/
IChvd25lcnNoaXBzLmhhc093blByb3BlcnR5KHRoaXMuaWQoKSkgPyBvd25lcnNoaXBzW3RoaXMu
aWQoKV0gOiBudWxsKSA6IG51bGw7CiAgICAgfQogCiAgICAgc3RhdGljIHNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwocmVwb3NpdG9yaWVzKQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBS
ZXBvc2l0b3J5IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAxOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKGEubmFtZSgpIDwgYi5uYW1lKCkpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoYS5pZCgpKSAtIHBhcnNlSW50KGIuaWQo
KSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGIuX2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRm
b3Jtcy10ZXN0cy5qcwppbmRleCAxMTJiMDkxNWZmOGY5OTQyNWVlNjg0NjUzYzI5NTQyYTQ3OTk5
YmM0Li4zYmRlZGVjN2I5YzJjMWJmN2Y0YTM5MGM2Yjc4Y2JkYzc3MjMwZTMzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXBsYXRmb3Jtcy10ZXN0cy5qcwpAQCAtNDUsMTkgKzQ1LDE5IEBAIGRlc2NyaWJlKCIvYWRtaW4v
cGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgncGxhdGZvcm1zJywgJ25hbWUnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7
CiAgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5rIE1v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSddLCAnVHJ1bmsgTW91
bnRhaW4gTGlvbicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZFBsYXRmb3Jtc1sxXVsnaWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkUGxhdGZvcm1zWzJdWydp
ZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgncGxhdGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1BsYXRmb3JtcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1BsYXRmb3Jtcy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1sw
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxh
dGZvcm1zWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdQbGF0Zm9ybXMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobmV3UGxhdGZv
cm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC02OSwxNSArNjksMTUgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBvbGRUZXN0UnVucyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9s
ZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10s
ICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
Ml1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9z
dW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RS
dW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKICAgICAgICAgICAg
ICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9p
ZCddLCAnZGVzdGluYXRpb24nOiBvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1faWQnXX0pOwpAQCAt
ODUsMjAgKzg1LDIwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgbmV3VGVzdFJ1bnMgPSByZXN1
bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVucy5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xk
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sxXVsn
cnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydwbGF0
Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMl1bJ3J1
bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzNdWydydW5f
aWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3Jt
X25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1
bl9jb25maWcnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sw
XVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNr
cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5f
c3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1
bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRm
b3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0
UnVuc1szXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUn
XSwgMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydy
dW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmlnJ10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTE0LDEzICsxMTQsMTMgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9y
bXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JD
b25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkQ29uZmlncyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9u
YW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10s
IHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENv
bmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJl
cG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSdd
LCAnY3VycmVudCcpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZENvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX2lkJ119KTsKQEAgLTEyOCwxMyArMTI4LDEzIEBAIGRlc2NyaWJlKCIvYWRt
aW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5
KHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxh
dGZvcm0nXV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IG5ld0NvbmZpZ3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdDb25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmln
c1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRl
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5cGUn
XSwgJ2Jhc2VsaW5lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsn
cGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1
cnJlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsncGxh
dGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5
cGUnXSwgJ2Jhc2VsaW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29u
Zmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAn
RnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sx
XVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVw
cm9jZXNzLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwppbmRleCAyZmY1M2NiZjg4YWMy
NGIwZTkyMTZiMGE3MmU0ZTM3MDkyMjdhODgxLi5iMDhhZjlmZGY5YzZiNDMwNTAyOTBkYzc1YTIz
NDVhNzI2NTFmOGU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpz
CkBAIC00OCwxMCArNDgsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVS
ZXBvcnRXaXRoUmV2aXNpb25zKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ1dl
YktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVwb3NpdG9yaWVzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSZXBzaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXS5vd25lciA9PSAxID8gcmVwb3Np
dG9yaWVzWzFdLmlkIDogcmVwb3NpdG9yaWVzWzBdLmlkOwogICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzIxMzIxNCcsICdyZXBvc2l0b3J5
Jzogd2Via2l0UmVwc2l0b3J5SWR9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBA
IC02NSwyNyArNjUsMjcgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBv
cnRbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0pOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkcyA9IHJlc3VsdFsw
XTsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzWzBdWyd0YWcnXSwgMTk4Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10s
ICcxOTg2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgcmVwb3J0SWQgPSByZXBvcnRzWzBdWydpZCddOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZyddLCAxOTg2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgJzE5ODYnKTsK
ICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9i
dWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9
KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAw
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKGAvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JHtyZXBvcnRJZH1gKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdi
dWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRzWzBdWyd0YWcnXSwgMTk4Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzWzBd
Wyd0YWcnXSwgJzE5ODYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk1LDEwICs5NSwx
MCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFswXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3QgPSByZXBvcnRzWzBdOwogICAg
ICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxk
ID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpA
QCAtMTA2LDE0ICsxMDYsMTQgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBuZXdQb3J0ID0gcmVwb3J0c1swXTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Wydj
b21taXR0ZWRfYXQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQb3J0Wydjb21taXR0ZWRfYXQn
XSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1
aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG9yaWdpbmFsUmVwcm90WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKICAgICAgICAg
ICAgIG9yaWdpbmFsUmVwcm90WydidWlsZCddID0gbnVsbDsKICAgICAgICAgICAgIG5ld1BvcnRb
J2J1aWxkJ10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvcmlnaW5hbFJl
cHJvdCwgbmV3UG9ydCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9yaWdp
bmFsUmVwcm90LCBuZXdQb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggODNmYmU1OTdmZTc5YTNhMWJmODA1MGFjODM3
N2JkZDg2NDc0NGU2Ni4uY2RlNWVkZjJiYjFmMjdkNWQzOTcxNWNiMzZhZWY2MGNiZTUxMmIwOSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVp
bGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTEzLDcgKzEzLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hv
dWxkIHJldHVybiAiVHJpZ2dlcmFibGVOb3RGb3VuZCIgd2hlbiB0aGUgZGF0YWJhc2UgaXMgZW1w
dHknLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JykudGhlbigoY29udGVudCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnVHJpZ2dlcmFi
bGVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0
YXR1cyddLCAnVHJpZ2dlcmFibGVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMjEsMTEgKzIxLDExIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVp
bGRfdHJpZ2dlcmFibGVzJywge25hbWU6ICdidWlsZC13ZWJraXQnfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2J1
aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMywzNiArMzMsMzYgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBN
b2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwg
WydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBs
b2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25l
cjogIjkzMTE2IiwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsx
XS5pZCwgNDA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICAgICAge2NvbW1pdDogJzIwMTcnLCBjb21taXRPd25lcjogIjk2MzM2IiwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1pdE93bmVyOiBu
dWxsLCBpZDogODc4MzIsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246ICcxMC4xMSAxNUEyODQn
LCB0aW1lOiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogOTMxMTYsIHJlcG9zaXRvcnk6ICcxMScs
IHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTogMTQ0NTk0NTgxNjg3OH0pCi0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMx
MTYnLCBpZDogJzE3OTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2Mt
NjE2MScsIHRpbWU6IDE0NTY5NjA3OTUzMDB9KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDk2MzM2LCBy
ZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9
KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtj
b21taXRPd25lcjogJzk2MzM2JywgaWQ6IDIwMTcsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lv
bjogJ293bmVkLWpzYy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1p
dE93bmVyOiBudWxsLCBpZDogJzg3ODMyJywgcmVwb3NpdG9yeTogJzknLCByZXZpc2lvbjogJzEw
LjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTMxMTYn
LCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4
Nzh9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMl0sIHtjb21taXRPd25lcjogJzkzMTE2JywgaWQ6ICcxNzk3JywgcmVwb3NpdG9yeTogJzIx
MycsIHJldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCB0aW1lOiAxNDU2OTYwNzk1MzAwfSkKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzNdLCB7
Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTYzMzYnLCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lv
bjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9KQorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtjb21taXRPd25lcjogJzk2MzM2
JywgaWQ6ICcyMDE3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkx
OTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwogICAgICAgICAg
ICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAg
ICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV1bJ2NyZWF0ZWRBdCddID0gMDsKICAgICAg
ICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXVsnY3JlYXRlZEF0J10gPSAwOwogICAg
ICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdWydjcmVhdGVkQXQnXSA9IDA7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXSwg
e2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5
R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5
MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3Rh
dHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDog
MH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJs
ZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3Jt
OiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0MDQnLCBz
dGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVp
bGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgw
JywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcy
MDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0
U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1
cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUn
LCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIw
MDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVy
OiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlw
dGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0
b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6
ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywg
c3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRB
dDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcx
MDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1
JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVz
OiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBu
dWxsLCBjcmVhdGVkQXQ6IDB9KTsKICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAsMzAgKzcw
LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRz
JywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMs
ICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3lu
Yy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC0x
MDEsNTMgKzEwMSw1MyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVu
Z3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5p
ZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5p
ZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
cmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAot
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAx
MDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
JzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAg
IGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0IGlmIHNhbWUgY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVy
LmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Vi
a2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0
LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdj
b21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDMp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAg
ICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29t
bWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNv
bW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAn
ODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMx
MTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
LCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgNzA4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwp
OwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7NzA4OiB7CiAgICAgICAgICAgICBzdGF0dXM6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiA3MDR9fTsKQEAgLTE1
OSwyOSArMTU5LDI5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5z
b3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVz
JywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQw
Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAg
ICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBj
b21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3Jywg
Y29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5
MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0p
OwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcx
MDEnfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OwogICAgIH0pOwogCiAgICAgaXQoJ3JldXNlIHJvb3RzIGZyb20gZXhpc3RpbmcgYnVpbGQgcmVx
dWVzdHMgaWYgdGhlIGNvbW1pdHMgc2V0cyBhcmUgZXF1YWwgZXhjZXB0IHRoZSBleGlzdGVuY2Ug
b2YgY3VzdG9tIHJvb3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTk1LDMyICsxOTUsMzIgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0pOwog
ICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2
MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5j
dXN0b21Sb290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5jdXN0b21Sb290cywgWycxMDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAg
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RS
ZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICAgICAg
c3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29y
ZCcsCkBAIC0yMjgsMjcgKzIyOCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVz
dHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5pZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31d
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3Rz
LCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0
b21Sb290cywgWycxMDQnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRo
ICJDYW5ub3RSZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byByZXVzZSBpcyBkZWxldGVk
JywgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDMxICsyOTksMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVp
bGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5xdWVyeShgQ1JFQVRFIFRSSUdHRVIgZW11bGF0ZV9maWxlX3B1cmdlIEFGVEVSIFVQ
REFURSBPRiBjb21taXRzZXRfcm9vdF9maWxlIE9OIGNvbW1pdF9zZXRfaXRlbXMKICAgICAgICAg
ICAgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBlbXVsYXRlX2ZpbGVfcHVyZ2UoKTtg
KTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkLCA2MDApOwotCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVs
bCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgIHN0YXR1
czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51
cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1
c2VEZWxldGVkUm9vdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAg
ICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zMzcsMjkgKzMzNiwyOSBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9j
a0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgp
LCBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBmYWxzZSk7CiAgICAgICAg
IGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVz
QnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0
dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMg
PSB7OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxk
UmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07Cisg
ICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAg
ICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnTm9NYXRjaGluZ0NvbW1pdFNldEl0ZW0nLCAoKSA9
PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1y
ZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMt
c2xhdmUnLApAQCAtMzc0LDMwICszNzMsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDEsIGNvbW1pdDogMTExMTY4fSkKICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICcxMTExNjgnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
OF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAw
OiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1c2VSb290V2l0aE5vbk1hdGNoaW5nQ29tbWl0
U2V0cycsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCkBAIC00MTAsMzAgKzQwOSwzMCBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRk
TW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ3J1bm5p
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycs
ICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncnVu
bmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVs
bH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAncnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDog
ewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAgIGF3YWl0IGFzc2Vy
dFRocm93cygnQ2FuT25seVJldXNlQ29tcGxldGVkQnVpbGRSZXF1ZXN0JywgKCkgPT4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywK
ICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAgLTQ0NSwyNyArNDQ0
LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWls
ZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRl
bnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdz
dGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0
OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDog
dHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewogICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogOTk5fX07CkBAIC00ODEsNTUgKzQ4MCw1NSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsn
YnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9h
ZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAg
ICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLmlkLCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnOScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lv
biwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXVsxXS5pZCwgOTMxMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9u
LCAnMTkyNzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2
NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwg
NDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5v
cmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZv
cm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwg
JzIwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJzknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNpb24sICcx
MC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcxMScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdHMnXVsyXS5pZCksIDk2MzM2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9uLCAnMTky
NzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVz
dCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5v
cmRlciksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0
U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAn
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIpLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNTM3LDU1ICs1MzYsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0P3VzZUxlZ2FjeUlkUmVzb2x1dGlvbj10cnVlJyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10u
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzFdLmlkKSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAg
ICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnks
ICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11b
MV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgWydzb21lIHRlc3Qn
XSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCBbJ3NvbWUgdGVz
dCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0uaWQsIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsIFsnc29tZSB0
ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9y
bScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgWydzb21l
IHRlc3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnbWFjT1MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNp
b24sICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0u
cmV2aXNpb24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0u
cmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3
MDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBw
bGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZv
cm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21lIHRlc3QnXSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3NvbWUg
dGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3Jk
ZXIpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRl
c3QsIFsnc29tZSB0ZXN0J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTk1LDcgKzU5
NCw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxk
UmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsK
ICAgICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTYwMyw5NCArNjAyLDk0IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBs
YXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRm
b3JtKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwg
NzA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA5MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgp
LCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwNSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwNSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwg
MSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBp
bnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3Rz
WzFdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgOTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwg
cGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVx
dWVzdHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzA3KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElk
KCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29t
bWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFy
dGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCks
ICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoMjEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlw
dENvcmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKIAogICAgICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1p
dFNldCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAu
MTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgY29u
c3QgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2
aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1
ODE2ODc4KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1
NjUwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQu
cmV2aXNpb24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtz
ZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKIAogICAgICAgICAgICAg
Y29uc3QgZmlyc3RTSkNDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24o
KSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0U0pD
Q29tbWl0LnRpbWUoKSwgMTQ1Njk2MDc5NTMwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0U0pDQ29tbWl0LnRpbWUoKSwgMTQ1Njk2
MDc5NTMwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFNKQ0NvbW1pdCA9IHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMwODM3MTAw
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lv
bigpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgr
c2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTY5OCw3ICs2OTcsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93
bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IGF3
YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC03
MDgsMzMgKzcwNywzMyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3RzWzBdOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgNzA0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVyKCksIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCkpLCA5MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lm9yZGVy
KCkpLCAwKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKSBpbnN0
YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5oYXNTdGFydGVkKCkp
OwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CiAKICAgICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgY29uc3QganNjID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCgyMTMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3Jl
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlwdENv
cmUnKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
OTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMoKS5zb3J0KChvbmUsIGFub3RoZXIpID0+IG9uZS5p
ZCgpIDwgYW5vdGhlci5pZCgpKSwgW29zeCwgd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEy
ODQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBw
YXJzZUludChvbmUuaWQoKSkgLSBwYXJzZUludChhbm90aGVyLmlkKCkpKSwgW29zeCwgd2Via2l0
XSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCkuYWNj
ZXB0cyhjb21taXRTZXQpKTsKICAgICB9KTsKIApAQCAtNzQ0LDcgKzc0Myw3IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAg
ICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgICAgIGFz
c2VydCh0ZXN0KTsKQEAgLTc1Miw3OSArNzUxLDc5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZv
cm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxh
dGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHBs
YXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50
ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgp
KSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFd
LnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1p
dFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzRmluaXNo
ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmlzUGVuZGluZygp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkp
LCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3Jk
ZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0
U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0KCks
IHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZv
cm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnBsYXRm
b3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFydGVkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5nKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNP
UycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycp
OwogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAg
ICAgICAgICAgbGV0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOwogCiAgICAgICAgICAgICBs
ZXQgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRD
b21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1
QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4x
MSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gp
LCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
CiAKICAgICAgICAgICAgIGxldCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LnJldmlz
aW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNvbmRDb21t
aXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgbGV0IGZpcnN0
V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7
CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRXZWJLaXRDb21taXQgPSBzZWNvbmRDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK3NlY29uZFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtODM0LDcgKzgzMyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODQ0LDcg
Kzg0Myw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1
aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODU0LDcgKzg1Myw3IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVz
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsK
QEAgLTg3Niw3ICs4NzUsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9
KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVz
dHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1swXS5pc1BlbmRpbmcoKSk7CkBAIC04OTksMzIgKzg5OCwzMiBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIo
KSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3
MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3Vw
SWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpLCA3MTIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCksIDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgNzEzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCks
IDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5v
cmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5p
ZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgp
KSwgNzEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSksIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDcx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLmlkKCkpLCA3MTIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0u
dGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgNzEzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLnRlc3RH
cm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtOTM3LDMwICs5MzYsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJh
YmxlLmFsbCgpLmZpbmQoKHRyaWdnZXJhYmxlKSA9PiB0cmlnZ2VyYWJsZS5uYW1lKCkgPT0gJ2J1
aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLnJlcG9z
aXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
Z3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJs
ZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwog
ICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlH
cm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzNdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCAxNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgMTcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlk
KCksIDE3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVw
b3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s3XS5pZCgpLCAxNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3Np
dG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9y
eUdyb3VwKCksIGdyb3Vwc1sxXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkpLCAxNzAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNV0uaWQoKSksIDE3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgMTcwMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCAxNzAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcxLDMyICs5NzAsMzIgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3
MTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzFdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uaWQoKSwgNzEyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJd
LnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLmlkKCksIDcxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5v
cmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlk
KCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0
R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbN10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzBdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5v
cmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpKSwgNzEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIo
KSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbM10uaWQoKSksIDcxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAz
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVd
LmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgp
KSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzZdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcw
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s3XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwMDgsMzYgKzEwMDcsMzYgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAn
cGFzc3dvcmQnLAogICAgICAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRl
cwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkLCA3MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjYW5jZWxlZCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAn
MjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0s
ICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bMV0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10u
b3JkZXIsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2Fu
Y2VsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFd
LmlkKSwgNzAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0u
cGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsK
KworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLm9y
ZGVyKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
Ml0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVz
dHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICAgICAg
fSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ1Nob3VsZCBub3QgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAxNTE5
MTBiYWViMjU1NjAyNmI5MmYwYTMxYmQxOTA1NjhiZmFiNzEzLi4yODU2OWYwNjM3MzA0ZTNhNjJj
Zjc3MDA5MjM5M2Y3ZjBlNzM2NTk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTExOSwyMiAr
MTE5LDIyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0LCBzdWJtaXR0
ZWQpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJt
aXR0ZWRbJ3JldmlzaW9uJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwobmV3IERhdGUoY29tbWl0
Wyd0aW1lJ10pLnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2UnXSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0dGVkWydhdXRob3In
XVsnbmFtZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9yRW1haWwnXSwg
c3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFsncmV2aXNpb24nXSwgc3VibWl0dGVkWydyZXZpc2lvbiddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ldyBEYXRlKGNvbW1pdFsndGltZSddKS50b0lTT1N0cmluZygp
LCBzdWJtaXR0ZWRbJ3RpbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRb
J21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ25hbWUnXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvckVtYWlsJ10sIHN1Ym1p
dHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIGlmKHN1Ym1pdHRlZFsncHJldmlv
dXNDb21taXQnXSkgewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFsncHJldmlvdXNDb21t
aXQnXSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOwogICAgICAgICB9CiAgICAgfQogCiAg
ICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vJywgKCkgPT4gewogICAgICAg
ICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8g
bWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQnKS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Niw4ICsxNDYsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE1
NSwxOCArMTU1LDE4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMn
XTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21t
aXRzWzBdLCBzdWJtaXR0ZWRDb21taXRzWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRzWzFdLCBzdWJtaXR0ZWRDb21taXRzWzFdKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRz
WzJdLCBzdWJtaXR0ZWRDb21taXRzWzJdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1syXVsncHJldmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMl1bJ3ByZXZpb3VzQ29tbWl0J10s
IGNvbW1pdHNbMV1bJ2lkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0x
NzQsMTkgKzE3NCwxOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYLycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRzJ107CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN5c3RlbVZlcnNpb25Db21taXRz
Wydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCBzdWJtaXR0ZWRDb21taXRzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzRdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbM11bJ3JldmlzaW9u
J10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzFdWydy
ZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1s1XVsncmV2
aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCBzdWJtaXR0ZWRDb21taXRzLmxl
bmd0aCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3Jl
dmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRD
b21taXRzWzRdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbM11bJ3Jldmlz
aW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21t
aXRzWzFdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1s1XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUo
Jy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb2xkZXN0JywgKCkgPT4gewogICAgICAgICBpdCgi
c2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hp
bmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0JykudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMDIsOCArMjAyLDggQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dl
YktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjE0LDggKzIxNCw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
L29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yMjcsOSArMjI3LDkgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzVdWydyZXZpc2lvbiddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cydd
WzVdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTIzNyw3ICsyMzcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXRlc3QnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9s
YXRlc3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5v
dEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI0NSw4ICsyNDUs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
bGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNTcsOCArMjU3LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwpAQCAtMjcwLDkgKzI3MCw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhdGVzdCcpOwogICAgICAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lz
dGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI4NCwxMyArMjg0LDEzIEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgZGIucXVlcnkoYERF
TEVURSBGUk9NIHRlc3RzIFdIRVJFIHRlc3RfbmFtZSA9ICdBLVRlc3QnYCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IHBsYXRmb3JtcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAg
IGNvbnN0IHRlc3RfbWV0cmljcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdF9tZXRyaWNzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0ZXN0cycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgYXNzZXJ0KHRl
c3RfbWV0cmljc1swXS5pZCAhPSB0ZXN0c1swXS5pZCk7CiAKQEAgLTMwMiw3ICszMDIsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2Fw
aS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXN0LXJlcG9ydGVkJywgKCkgPT4gewogICAgICAgICBp
dCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0
Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcp
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzE0LDggKzMxNCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCkBAIC0zMjMsOCArMzIzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0MCw4ICszNDAsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQp
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMzUz
LDkgKzM1Myw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3Rl
bVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzcyLDMxICszNzIsMzEgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjcmdG89MzcwJyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQg
PSByZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNp
b24sICdTaWVycmExNkM2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXQucmV2aXNpb24sICdTaWVycmExNkM2OCcpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzcwJnRvPTM2NycpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0yMDAmdG89Mjk5Jyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2OSZ0bz00MzInKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVz
dWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3Vs
dHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1Np
ZXJyYTE2RDMyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5y
ZXZpc2lvbiwgJ1NpZXJyYTE2RDMyJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vPGNvbW1p
dD4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8yMTA5NDknKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVw
b3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQx
Niw3ICs0MTYsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21t
aXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NTAnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAg
ICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAg
IHJldmlzaW9uOiAnMjEwOTUwJywKQEAgLTQ0Nyw4ICs0NDcsOCBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8y
MTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00NTgsOCArNDU4LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OT9wcmVmaXgtbWF0Y2g9ZmFsc2UnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29t
bWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7
CiAKQEAgLTQ2OCw4ICs0NjgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3Qg
cmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5
P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1Nh
bWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVsxXSk7CiAgICAgICAgIH0pOwogCkBAIC00NzgsNyArNDc4LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmlndW91c1JldmlzaW9uUHJl
Zml4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J0FtYmlndW91c1JldmlzaW9uUHJlZml4Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJz
aG91bGQgbm90IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gdGhlcmUgaXMg
YSBjb21taXQgcmV2aXNpb24gZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCByZXZpc2lvbiBwcmVm
aXgiLCBhc3luYyAoKSA9PiB7CkBAIC00ODYsOCArNDg2LDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNPbmVQcmVm
aXhPZlRoZU90aGVyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRb
J2NvbW1pdHMnXVswXSwgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXJbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgIH0pOwogCkBAIC00OTYsNyArNDk2LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
V2ViS2l0LzIxMDkwP3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgic2hvdWxkIG5vdCBtYXRjaCBwcmVmaXggYW5kIHJldHVybiAn
VW5rb3duQ29tbWl0JyB3aGVuIHN2biBjb21taXQgc3RhcnRzIHdpdGggJ3InIHByZWZpeCBhbmQg
dGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2giLCBhc3luYyAoKSA9PiB7CkBAIC01MDQsNyArNTA0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L3IyMTA5NT9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29t
bWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBoYW5k
bGUgY29tbWl0IHJldmlzaW9uIHdpdGggc3BhY2UiLCAoKSA9PiB7CkBAIC01MTUsMTIgKzUxNSwx
MiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PUyUyMFgvMTAuMTEuMTAlMjBTaWVycmExNkM2
NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0cy5jb21taXRzWzBdOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXQuaWQsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXQucmV2aXNpb24sICcxMC4xMS4xMCBTaWVycmExNkM2NycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXQuaWQpLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAg
U2llcnJhMTZDNjcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTM4LDEz
ICs1MzgsMTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVy
LXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdP
SycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMu
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gcmVzdWx0
cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvd25lZENvbW1pdC5y
ZXBvc2l0b3J5LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21taXQu
cmV2aXNpb24sICcyMTA5NTAnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRD
b21taXQuaWQsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChvd25lZENvbW1pdC5yZXBvc2l0b3J5KSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG93bmVkQ29tbWl0LmlkKSwgMik7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1OCw4ICs1NTgsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEz
MjMnKQogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHRzLmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTU3Myw4ICs1NzMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEzMjQnKQogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pCiAgICAgfSk7CkBAIC01ODIsNyArNTgyLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3Np
dG9yeT4vP3ByZWNlZGluZ1JldmlzaW9uPTxjb21taXQtMT4mbGFzdFJldmlzaW9uPTxjb21taXQt
Mj4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8/ZnJvbT0yMTA5MDAmdG89MjExMDAwJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9y
eU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC01OTQsNyArNTk0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5MDAmbGFzdFJldmlzaW9uPTIxMTAwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYwNyw4ICs2MDcsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OSZs
YXN0UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02
MjEsNyArNjIxLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdS
ZXZpc2lvbj0yMTA5NTAmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZENvbW1pdFJhbmdlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MzUsOCArNjM1LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIz
Jmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
Y29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2
QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21taXQpID0+IGNvbW1p
dFsncmV2aXNpb24nXSksIFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIyNjU3J10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NTAsNyArNjUwLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxh
c3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NjQsNyArNjY0LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RS
ZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzgsOCArNjc4LDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZp
c2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cydd
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTY5Myw4ICs2OTMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5n
UmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNzA4LDggKzcwOCw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RSZXZp
c2lvbj0yMTA5NTAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1
Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c0NvbW1pdDogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDkn
LApAQCAtNzQzLDggKzc0Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0y
MTA5NDcmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVsxXSk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKaW5kZXgg
YmRhMjc0ZmIxOTk2ZDQ3YTYxMjE0M2ZjZjUyMmQ2ZDk5NGM0ZWZkOC4uYWM3MTllOWRjODAxZTJh
NjAzZDFkMzM4YTBhZjk2ZTcxNzk2ZjA3MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKQEAgLTEz
LDcgKzEzLDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAg
ICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdoZW4gZGF0YWJhc2UgaXMg
ZW1wdHkiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChtYW5pZmVzdCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgpLCBbJ2FsbCcsICdi
dWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJvYXJkcycsCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG1hbmlmZXN0KS5zb3J0
KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hib2FyZCcsICdkYXNo
Ym9hcmRzJywKICAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1pdCcsICdtYXhSb290
UmV1c2VBZ2VJbkRheXMnLCAnbWV0cmljcycsICdwbGF0Zm9ybUdyb3VwcycsICdyZXBvc2l0b3Jp
ZXMnLCAnc2l0ZVRpdGxlJywKICAgICAgICAgICAgICAgICAnc3RhdHVzJywgJ3N1bW1hcnlQYWdl
cycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0cmlnZ2VyYWJsZXMnXSk7
CiAKQEAgLTQ1LDIyICs0NSwyMiBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190
cmFja2VycycsIGJ1Z3ppbGxhRGF0YSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczov
L3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdo
dHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgICAgIGxldCBtYW5pZmVzdCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRl
bnQpOwogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRy
YWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQu
b3JnLycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAn
QnVnemlsbGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1Vy
bCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3Jn
LycpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgY2xlYXIgQnVnIGFu
ZCBCdWdUcmFja2VyIHN0YXRpYyBtYXBzIHdoZW4gcmVzZXQiLCBhc3luYyAoKSA9PiB7CiAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190cmFja2VycycsIGJ1
Z3ppbGxhRGF0YSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDog
J2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJs
OiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CkBAIC05MiwyOCArOTIs
MjggQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdX
ZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24o
MTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53
ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBsZXQgbWFjb3MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY29zKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCBpb3MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChpb3MpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CiAKICAgICAgICAgICAgIGxldCB0cmFj
a2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydCh0cmFja2Vy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8v
d2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmV3
QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93
ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tl
ci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CiAKICAgICAgICAgICAgIHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDIpOwogICAgICAg
ICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIu
bmFtZSgpLCAnUmFkYXInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lKHRyYWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnUmFkYXInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKHRy
YWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTMxLDE5ICsxMzEsMTkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KDExKTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5vd25lZFJlcG9zaXRvcmllcygpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXQub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwogICAgICAgICAgICAg
YXNzZXJ0KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5hbWUoKSwgJ09TIFgn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3N4Lm93bmVkUmVwb3NpdG9yaWVzKCks
IFtSZXBvc2l0b3J5LmZpbmRCeUlkKDM1KV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeC5uYW1lKCksICdPUyBYJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9yeS5maW5kQnlJZCgzNSldKTsK
IAogICAgICAgICAgICAgbGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMjIpOwogICAgICAg
ICAgICAgYXNzZXJ0KGlvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zLm5hbWUoKSwg
J2lPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5vd25lZFJlcG9zaXRvcmllcygp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9T
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm93bmVkUmVwb3NpdG9yaWVz
KCksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIGRl
c2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvbWFuaWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRlcnMsIHsKICAgICAgICAgICAgICAg
ICAnMSc6IHtuYW1lOiAnU29tZUJ1aWxkZXInLCBidWlsZFVybDogJ2h0dHBzOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy8kYnVpbGRlck5hbWUvYnVpbGQvJGJ1aWxkVGFnJ30sCiAgICAgICAg
ICAgICAgICAgJzInOiB7bmFtZTogJ1NvbWVPdGhlckJ1aWxkZXInLCBidWlsZFVybDogbnVsbH0K
ICAgICAgICAgICAgIH0pOwpAQCAtMTY1LDEzICsxNjUsMTMgQEAgZGVzY3JpYmUoJy9hcGkvbWFu
aWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCBidWlsZGVyID0gQnVpbGRl
ci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZGVyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAnaHR0cHM6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZUJ1aWxkZXInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1aWxkKDEyMyksICdodHRw
czovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxkZXIvYnVpbGQvMTIzJyk7CiAK
ICAgICAgICAgICAgIGJ1aWxkZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDIpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIubmFtZSgp
LCAnU29tZU90aGVyQnVpbGRlcicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIu
dXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRlci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTIwMiwxNCArMjAyLDE0IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0
JywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKICAg
ICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LnRlc3RzLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnQudGVzdHMsIHsKICAgICAgICAgICAgICAgICAiMSI6IHsibmFtZSI6ICJTb21lVGVzdCIs
ICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgICAgICAiMiI6IHsi
bmFtZSI6ICJTb21lT3RoZXJUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVybCI6IG51bGx9LAog
ICAgICAgICAgICAgICAgICIzIjogeyJuYW1lIjogIkNoaWxkVGVzdCIsICJwYXJlbnRJZCI6ICIx
IiwgInVybCI6IG51bGx9LAogICAgICAgICAgICAgICAgICI0IjogeyJuYW1lIjogIkdyYW5kQ2hp
bGQiLCAicGFyZW50SWQiOiAiMyIsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQubWV0cmljcywgeworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKICAgICAgICAgICAg
ICAgICAnNSc6IHtuYW1lOiAnVGltZScsIHRlc3Q6ICcxJywgYWdncmVnYXRvcjogbnVsbH0sCiAg
ICAgICAgICAgICAgICAgJzYnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMicsIGFnZ3JlZ2F0b3I6
ICdUb3RhbCd9LAogICAgICAgICAgICAgICAgICc3Jzoge25hbWU6ICdNYWxsb2MnLCB0ZXN0OiAn
MicsIGFnZ3JlZ2F0b3I6ICdUb3RhbCd9LApAQCAtMjQ0LDcgKzI0NCw3IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGlvc0dyb3Vw
KTsKICAgICAgICAgICAgIGFzc2VydChtYWNHcm91cCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwog
ICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpAQCAtMjUzLDkgKzI1Myw5
IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdFRpbWUpKTsKICAgICAgICAg
ICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAg
ICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNHcm91cCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLmdyb3VwKCksIG1hY0dyb3Vw
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1Mg
OSBpUGhvbmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25l
NXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAgICAgICAgICAgICBhc3NlcnQoaW9zOWlw
aG9uZTVzLmhhc1Rlc3Qoc29tZVRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9u
ZTVzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBo
b25lNXMuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI2NCw2MyArMjY0LDYzIEBAIGRlc2NyaWJl
KCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5
aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdE1hbGxvYykpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgpLCBpb3NHcm91cCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLmdyb3VwKCksIGlv
c0dyb3VwKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjUGxhdGZvcm1zID0gbWFjR3JvdXAucGxh
dGZvcm1zKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zWzBdLCBtYXZlcmlja3Mp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJp
Y2tzKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zUGxhdGZvcm1zID0gaW9zR3JvdXAucGxhdGZv
cm1zKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBpb3M5aXBob25lNXMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlw
aG9uZTVzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1Nv
bWVUZXN0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3QucGFyZW50VGVzdCgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QucGF0aCgpLCBb
c29tZVRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdC5uYW1l
KCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0
LnBhcmVudFRlc3QoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNvbWVUZXN0LnBhdGgoKSwgW3NvbWVUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNvbWVU
ZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVUZXN0TWV0cmljXSk7Ci0K
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5uYW1lKCksICdUaW1lJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMuYWdncmVnYXRvck5hbWUo
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMubGFiZWwo
KSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3RNZXRyaWMu
Y2hpbGRNZXRyaWNzKCksIGNoaWxkVGVzdC5tZXRyaWNzKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNvbWVUZXN0TWV0cmljLmZ1bGxOYW1lKCksICdTb21lVGVzdCA6IFRpbWUnKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVy
VGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QucGFyZW50VGVz
dCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZU90aGVyVGVzdC5w
YXRoKCksIFtzb21lT3RoZXJUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21lVGVzdE1ldHJpY10p
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMubmFtZSgp
LCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmlj
LmFnZ3JlZ2F0b3JOYW1lKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVUZXN0TWV0cmljLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmNoaWxkTWV0cmljcygpLCBjaGlsZFRlc3QubWV0
cmljcygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5m
dWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRlc3QnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhcmVudFRlc3QoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QucGF0aCgp
LCBbc29tZU90aGVyVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFzb21lT3RoZXJUZXN0Lm9u
bHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLm5hbWUoKSwgJ1RpbWUnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5hZ2dyZWdhdG9y
TmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0
Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZSA6IFRvdGFsJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uY2hpbGRNZXRyaWNzKCkubGVuZ3Ro
LCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsw
XS5mdWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5hbWUoKSwgJ01hbGxv
YycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFd
LmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNv
bWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2MgOiBUb3RhbCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmNoaWxkTWV0
cmljcygpLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVz
dC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBNYWxsb2MgOiBUb3Rh
bCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxk
VGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5wYXJlbnRUZXN0KCks
IHNvbWVUZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hpbGRUZXN0LnBhdGgo
KSwgW3NvbWVUZXN0LCBjaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLm5hbWUo
KSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0
Lm1ldHJpY3MoKVswXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGlt
ZSA6IFRvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVz
dC5tZXRyaWNzKClbMF0uY2hpbGRNZXRyaWNzKCkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAn
U29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5hbWUoKSwgJ01hbGxvYycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmFn
Z3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2MgOiBUb3RhbCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFd
LmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3Qg
OiBNYWxsb2MgOiBUb3RhbCcpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hp
bGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNoaWxkVGVzdC5wYXJlbnRUZXN0KCksIHNvbWVUZXN0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3Rd
KTsKICAgICAgICAgICAgIGFzc2VydCghY2hpbGRUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJp
YygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hpbGRUZXN0LmNoaWxkVGVzdHMo
KSwgW2dyYW5kQ2hpbGRUZXN0XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0
Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVz
dC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hp
bGRUZXN0IDogVGltZScpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JhbmRDaGlsZFRl
c3QubmFtZSgpLCAnR3JhbmRDaGlsZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5k
Q2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxkVGVzdCwgZ3Jh
bmRDaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY2hpbGRU
ZXN0LmNoaWxkVGVzdHMoKSwgW2dyYW5kQ2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBd
LmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IDogVGltZScpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubmFtZSgpLCAnR3JhbmRD
aGlsZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBh
cmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxkVGVzdCwgZ3JhbmRDaGls
ZFRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydChncmFuZENoaWxkVGVzdC5vbmx5Q29udGFpbnNT
aW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyYW5kQ2hpbGRU
ZXN0LmNoaWxkVGVzdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hp
bGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
YW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29t
ZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QuY2hpbGRUZXN0cygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0
cmljcygpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRD
aGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdT
b21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IFx1MjIwQiBHcmFuZENoaWxkIDogVGltZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc0LDU5ICszNzQsNTkgQEAgZGVzY3JpYmUoJy9hcGkv
bWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0
Y2goKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVy
bEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdo
dHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3NXZWJr
aXQxID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c1dlYmtpdDEub3duZXJJZCgpLCA5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtp
dDEudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc1dlYmtpdDEub3du
ZXJJZCgpKSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3NXZWJraXQxLnVy
bEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAg
ICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAgY29u
c3Qgc2hhcmVkID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxNik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2hhcmVkLm5hbWUoKSwgJ1NoYXJlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKIAogICAgICAgICAgICAgY29uc3Qgc29t
ZVRlc3QgPSBUZXN0LmZpbmRCeUlkKDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVU
ZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKIAogICAgICAgICAgICAgY29uc3Qgc29tZU90
aGVyVGVzdCA9IFRlc3QuZmluZEJ5SWQoMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29t
ZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNoaWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQoMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKIAog
ICAgICAgICAgICAgY29uc3QgaW9zOWlwaG9uZTVzID0gUGxhdGZvcm0uZmluZEJ5SWQoMjMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhv
bmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25lNXMubmFt
ZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hdmVyaWNrcyA9
IFBsYXRmb3JtLmZpbmRCeUlkKDQ2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlj
a3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwogCiAgICAgICAgICAg
ICBjb25zdCBzaWVycmEgPSBQbGF0Zm9ybS5maW5kQnlJZCgxMDQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNpZXJyYS5uYW1lKCksICdUcnVuayBTaWVycmEgTWFjQm9va1BybzExLDInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2ll
cnJhIE1hY0Jvb2tQcm8xMSwyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2Vy
YWJsZS5hbGwoKS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRy
aWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMyk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY29zVHJp
Z2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwg
bWF2ZXJpY2tzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNvc1RyaWdnZXJhYmxlLm5h
bWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChtYWNvc1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNv
bWVPdGhlclRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVz
dCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVz
dCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBt
YXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zVHJp
Z2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJU
ZXN0LCBpb3M5aXBob25lNXMpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGlvc1RyaWdn
ZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NU
cmlnZ2VyYWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAg
YXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdp
b3MtYnVpbGQud2Via2l0Lm9yZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgaW9zOWlwaG9uZTVz
KSwgaW9zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxl
LmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgaW9zOWlwaG9uZTVzKSwgaW9zVHJp
Z2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZp
bmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1Ry
aWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5m
aW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1RyaWdn
ZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJs
ZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwgc2llcnJhKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1lKCksICdtYWMtYnVpbGQud2Via2l0Lm9y
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1RyaWdnZXJhYmxlLm5hbWUo
KSwgJ21hYy1idWlsZC53ZWJraXQub3JnJyk7CiAgICAgICAgICAgICBhc3NlcnQobWFjVHJpZ2dl
cmFibGUuYWNjZXB0ZWRUZXN0cygpLmhhcyhzb21lVGVzdCkpOwogCiAgICAgICAgICAgICBjb25z
dCBncm91cHMgPSBtYWNUcmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIFRyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoZ3JvdXBzKTsKIAogICAgICAgICAgICAgY29u
c3QgZW1wdHlDdXN0b21TZXQgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwpAQCAtNDQ1LDM1ICs0NDUs
MzUgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCwgJzE5MTYyMicpOwogICAgICAgICAgICAgY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVk
LnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQsICc4NjQ1NicpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShn
cm91cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRX
aXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
c1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQp
LCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0u
aXNIaWRkZW4oKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5h
Y2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhl
bXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0
aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShn
cm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXN0b21TZXRXaXRo
T1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRz
KGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdp
dGhXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91
cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRXaXRo
T1NYKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFj
Y2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNo
YXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0u
YWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uaXNIaWRkZW4oKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFj
b3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhl
bXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cHNbMV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdl
YktpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5h
Y2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQp
LCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0ubmFt
ZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMl0u
cmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXN0b21TZXRX
aXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sy
XS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRB
bmRTaGFyZWQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
Ml0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKaW5kZXggMzUyYjYxMmY3
Njc2MTg1NWU3OGY1MzZiYjNhMTMwODk1NWFjYjFmNC4uMjZhZjNkMzAxYzVkYTMzNDY2MjE5NDg3
YjAzNDc3Y2EyMjRkY2NjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwpA
QCAtMjQzLDEyICsyNDMsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRo
QnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1l
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVl
cnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP21ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3Vz
UmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU2LDEyICsyNTYsMTIgQEAg
ZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygn
TW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9t
ZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9YCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTI2OSwxMiArMjY5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAn
VGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9w
bGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWEmbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWAp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgyLDEyICsyODIsMTIgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
QnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4g
TGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1iYCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRy
aWMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxNyw3ICszMTcsNyBAQCBkZXNjcmli
ZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJl
bWVudC1zZXQvP3BsYXRmb3JtPTQ2Jm1ldHJpYz01YCkudGhlbigocmVzcG9uc2UpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTMyNiwzMSArMzI2LDMxIEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAn
VGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVt
ZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1l
dHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
Y29uc3QgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWls
ZFRpbWUnXSkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHJl
c3BvbnNlKS5zb3J0KCksCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVj
dC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydjbHVzdGVyQ291bnQn
LCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywKICAgICAgICAgICAgICAgICAgICdjb25m
aWd1cmF0aW9ucycsICdlbGFwc2VkVGltZScsICdlbmRUaW1lJywgJ2Zvcm1hdE1hcCcsICdsYXN0
TW9kaWZpZWQnLCAnc3RhcnRUaW1lJywgJ3N0YXR1cyddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBbCiAgICAgICAgICAgICAgICAg
J2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1bScsICdtYXJr
ZWRPdXRsaWVyJywKICAgICAgICAgICAgICAgICAncmV2aXNpb25zJywgJ2NvbW1pdFRpbWUnLCAn
YnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkVGFnJywgJ2J1aWxkZXInXSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRp
bWUuc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKICAgICAgICAgICAg
IGFzc2VydCh0eXBlb2YocmVzcG9uc2VbJ2xhc3RNb2RpZmllZCddKSA9PSAnbnVtYmVyJywgJ2xh
c3RNb2RpZmllZCB0aW1lIHNob3VsZCBiZSBhIG51bWVyaWMnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXSksIFsn
Y3VycmVudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0Lmtl
eXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQnXSk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJl
bnQnXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1h
dChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgeworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3NbMF0ubGVuZ3RoLCByZXNwb25zZVsnZm9ybWF0
TWFwJ10ubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAg
ICAgbWVhbjogMywKICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAg
ICAgICAgICBzdW06IDE1LApAQCAtMzY3LDcgKzM2Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JS
ZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVw
b3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGlt
ZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwpAQCAtMzgzLDIwICszODMsMjAgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qg
YnVpbGRlcnMgPSByZXN1bHRbMl07CiAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3Vs
dFszXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1bnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZGVycy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJ1bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVycy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRJZCA9IHJ1bnNbMF1bJ2lk
J107CiAgICAgICAgICAgICBjb25zdCBidWlsZElkID0gYnVpbGRzWzBdWydpZCddOwogICAgICAg
ICAgICAgY29uc3QgYnVpbGRlcklkID0gYnVpbGRlcnNbMF1bJ2lkJ107CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3Vy
YXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3Vy
ZW1lbnQgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRl
eE9mKCdpZCcpXSwgbWVhc3VyZW1lbnRJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVh
c3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkJyldLCBidWlsZElk
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0
TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZign
aWQnKV0sIG1lYXN1cmVtZW50SWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1l
YXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJ
ZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC00MjgsOCArNDI4LDggQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25UaW1lID0g
KyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9ucyddWydXZWJLaXQnXVsn
dGltZXN0YW1wJ10pKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uQnVpbGRUaW1lID0gKyhu
ZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSddKSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sw
XSksIHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKICAgICAgICAgICAgICAgIG1lYW46IDEz
LAogICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICBzdW06
IDY1LApAQCAtNDM5LDcgKzQzOSw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IHJldmlzaW9uVGltZSwK
ICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogcmV2aXNpb25CdWlsZFRpbWUsCiAgICAgICAgICAg
ICAgICBidWlsZFRhZzogJzEyNCcgfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZv
cm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBj
dXJyZW50Um93c1sxXSksIHsKICAgICAgICAgICAgICAgICBtZWFuOiAzLAogICAgICAgICAgICAg
ICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgIHN1bTogMTUsCkBAIC00NjYs
MTYgKzQ2NiwxNiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3Rh
dHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0m
bWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogCiAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Zm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmJ1aWxkVGFnLCAx
MjcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFw
J10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgMTI4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmJ1aWxk
VGFnLCAnMTI3Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmJ1aWxkVGFnLCAnMTI4Jyk7CiAgICAg
ICAgIGFzc2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSku
Y29tbWl0VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAgICAgICAgIGFzc2VydChmb3JtYXQo
cmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSkuY29tbWl0VGltZSA8IHJlc3Bv
bnNlLnN0YXJ0VGltZSk7CiAKICAgICAgICAgY29uc3QgYmFzZWxpbmVSb3dzID0gcmVzcG9uc2Vb
J2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgIGFzc2VydC5lcXVhbChiYXNl
bGluZVJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVz
cG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFnLCAxMzEpOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGJhc2Vs
aW5lUm93c1sxXSkuYnVpbGRUYWcsIDEyOSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
YXNlbGluZVJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFnLCAn
MTMxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydm
b3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzFdKS5idWlsZFRhZywgJzEyOScpOwogICAgIH0pOwog
CiAgICAgaXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGJ1aWxkIHRpbWUgd2hlbiBjb21taXQg
dGltZXMgYXJlIG1pc3NpbmciLCAoKSA9PiB7CkBAIC01MjIsOCArNTIyLDggQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3Jt
PSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3Jt
YXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFuOiAzLAogICAg
ICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICBzdW06IDE1LApA
QCAtNTMzLDcgKzUzMyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6ICtEYXRlLlVUQygyMDE3LCAwLCAx
OSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogK0RhdGUuVVRDKDIwMTcs
IDAsIDE5LCAxNSwgMjgsIDEpLAogICAgICAgICAgICAgICAgYnVpbGRUYWc6ICcxMDAxJyB9KTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAn
XSwgY3VycmVudFJvd3NbMV0pLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgewogICAgICAg
ICAgICAgICAgIG1lYW46IDcsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAg
ICAgICAgICAgICAgICAgc3VtOiAzNSwKQEAgLTU2Miw5ICs1NjIsOSBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMiwgJ3Nob3VsZCBo
YXZlIHR3byBjbHVzdGVycycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFRh
Z3MocmVzcG9uc2UsICdjdXJyZW50JyksCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNl
LCAnY3VycmVudCcpLAogICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jaWVudFJldmlzaW9u
WzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoTmV3UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ11dKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC01ODAsMTAgKzU4MCwxMCBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91
bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsK
ICAgICAgICAgICAgIGxldCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucydd
WydjdXJyZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3Ro
LCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwgW3JlcG9ydFdpdGhB
bmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1
aWxkVGFnJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5s
ZW5ndGgsIDIsICdzaG91bGQgY29udGFpbiB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLCBb
cmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aEJ1aWxk
VGltZVswXVsnYnVpbGRUYWcnXV0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjAzLDE0
ICs2MDMsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFz
dXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3Vs
dC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigobmV3UmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAke2NhY2hlUHJlZml4fS5qc29u
YCkudGhlbigoY2FjaGVkUmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0tJHtjYWNoZWRS
ZXN1bHRbJ3N0YXJ0VGltZSddfS5qc29uYCk7CiAgICAgICAgICAgICB9KS50aGVuKChvbGRSZXN1
bHQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBvbGRidWlsZFRhZ3MgPSBidWlsZFRhZ3Mo
b2xkUmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGNvbnN0IG5ld2J1aWxkVGFn
cyA9IGJ1aWxkVGFncyhuZXdSZXN1bHQsICdjdXJyZW50Jyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KG9sZGJ1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1c3RlciBzaG91bGQgY29u
dGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQo
bmV3YnVpbGRUYWdzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWlu
IGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAyKSwgbmV3YnVp
bGRUYWdzLnNsaWNlKDAsIDIpLAorICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAyKSwgbmV3YnVpbGRU
YWdzLnNsaWNlKDAsIDIpLAogICAgICAgICAgICAgICAgICAgICAnVHdvIGNvbnNlcWN1dGl2ZSBj
bHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CkBAIC02MjksOSArNjI5LDkgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG1hbmlmZXN0ID0g
TWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CiAKICAgICAgICAgICAgICAgICBj
b25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ01vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTWV0cmljLmFsbCgpLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IG1ldHJpYyA9IE1ldHJpYy5hbGwoKVswXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1ldHJpYyksIHByaW1h
cnlDbHVzdGVyWydsYXN0TW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmltYXJ5Q2x1c3RlclsnbGFz
dE1vZGlmaWVkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
NjczLDEwICs2NzMsMTAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rp
b24gKCkgewogICAgIGl0KCJzaG91bGQgYWxsb3cgdG8gcmVwb3J0IGEgYnVpbGQgcmVxdWVzdCIs
IGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNl
cnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgcmVwb3J0QWZ0
ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxk
UmVxdWVzdCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05X
aXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUwMCcpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywgMTIsIDUw
LCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMn
XSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgICAgICBbJzEnLCAnOScsICcxMC44
LjIgMTJDNjAnLCBudWxsLCAwXSwgWycyJywgJzExJywgJzE0MTk3NycsIG51bGwsIDEzNjAxNDA5
MjA5MDBdXSwKICAgICAgICAgICAgIDEsIDEzNjIwNDYzMjMzODgsICcxMjMnLCAxLCAxLCAnY3Vy
cmVudCddXSk7CiAgICAgfSk7CkBAIC03MTEsMTcgKzcxMSwxNyBAQCBkZXNjcmliZSgiL2FwaS9t
ZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCk7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJl
cG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdp
dGhDb21taXRzTmVlZHNSb3VuZENvbW1pdFRpbWVBbmRCdWlsZFJlcXVlc3QpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKICAgICAgICAgY29uc3QgcmF3
V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1p
dHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3V2ViS2l0Q29tbWl0
LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVk
V2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1NDb21taXQgPSBhd2Fp
dCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNPUy8xMC44LjIlMjAx
MkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50
aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1l
KTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTldpdGhTdGF0dXMoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9hbmFseXNpc1Rhc2s9NTAwJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwgW1sxLCA0LCAzLCAx
MiwgNTAsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ21lYXN1cmVt
ZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwgWwogICAgICAgICAgICAgWycxJywgJzknLCAnMTAu
OC4yIDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbJzInLCAnMTEnLCAn
MTQxOTc3JywgbnVsbCwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lXV0sCiAgICAgICAgICAgICAx
LCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1cnJlbnQnXV0pOwogICAgIH0pOwpAQCAt
NzU3LDE0ICs3NTcsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFty
ZXBvcnRXaXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lXSk7CiAKICAgICAgICAgY29uc3Qg
cmF3V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2Nv
bW1pdHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3V2ViS2l0Q29t
bWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVj
dGVkV2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1NDb21taXQgPSBh
d2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNPUy8xMC44LjIl
MjAxMkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1sw
XS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRU
aW1lKTsKIAogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVBsYXRmb3JtQW5kTWV0
cmljKCdNb3VudGFpbiBMaW9uJywgJ0ZyYW1lUmF0ZScpOwogICAgICAgICBjb25zdCBwcmltYXJ5
Q2x1c3RlciA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1gKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1
cmF0aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1cmF0aW9ucy5jdXJyZW50
LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKICAgICAgICAgICAgIFsxLCAxLCAnMTAuOC4y
IDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbMiwgMiwgJzE0MTk3Nycs
IG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAgICAgZXhwZWN0ZWRX
ZWJLaXRDb21taXRUaW1lLCAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMV1dKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMzI0NzMzOTYxODhmNjhjNzM5
ZDc0OGFiZjhhODZmZWQ0YTQwZmZlMS4uYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2Y2JiNDBjMzBj
NGIxODU5YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTc4LDE2ICs3
OCwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIs
IGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUg
bmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsK
IAogICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZlcyIsICgpID0+
IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Ns
YXZlTm90Rm91bmQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
OTUsNyArOTUsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9
dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KGVt
cHR5UmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xMDMsMTEgKzEwMywxMSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBp
bnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3Vi
dmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycp
OwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ25hbWUn
XSwgc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdWyduYW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1sw
XVsncmVwb3NpdG9yeSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTExNSw3ICsxMTUs
NyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2Ri
LnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKQEAgLTEyMywxNCArMTIzLDE0IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgbGV0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQg
cmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgn
MjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25h
bWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lv
biddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0w
NiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRl
cnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
MzgsMTAgKzEzOCwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVy
c2lvbkludmFsaWRDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lv
bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXZpc2lvbicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNDksMzIgKzE0OSwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9y
UmVwb3J0KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Ud29Db21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVj
dEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdHRlcnMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDIpOwogCiAg
ICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCBy
ZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45
JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVz
c2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3ByZXZpb3VzX2NvbW1pdCddLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHJl
cG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1
OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1sw
XVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncHJl
dmlvdXNfY29tbWl0J10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJl
cG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAKICAgICAgICAgICAgIHJlcG9ydGVk
RGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMV07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbidd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWyd0aW1lJ10udG9TdHJpbmco
KSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5nKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydt
ZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRl
ciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzFdWydwcmV2aW91c19jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ2Fj
Y291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1b
J3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwOTo1NDo1Ni4wJykudG9T
dHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnbWVz
c2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMV1bJ2lkJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3ByZXZpb3VzX2NvbW1p
dCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXR0ZXJzWzFdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1sxXVsnYWNjb3VudCddLCBy
ZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTgyLDEwICsxODIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZv
clJlcG9ydChzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25JbnZhbGlkUHJldmlvdXNDb21taXQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFByZXZpb3VzQ29tbWl0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRmFpbGVkVG9GaW5kUHJl
dmlvdXNDb21taXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMjAwLDE4ICsyMDAsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwo
J2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzBdOwog
ICAgICAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IHJlc3VsdFsxXTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0
ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVk
RGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNb
MF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTIyOCwyMyArMjI4LDIzIEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0
cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2lkJ10sIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgZmlyc3REYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydp
ZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGZp
cnN0RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0dGVyc1swXVsnYWNjb3VudCddLCBmaXJzdERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnaWQnXSwgMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmly
c3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjU5LDEyICsyNTksMTIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnY29tbWl0
dGVycycpOwogICAgICAgICB9KS50aGVuKChjb21taXR0ZXJzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgYXV0aG9yWyduYW1lJ10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1
dGhvclsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJz
WzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTMwMiwxNSArMzAyLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3
aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVG
b3JSZXBvcnQoc2FtZVJlcG9zaXRvcnlOYW1lSW5Pd25lZENvbW1pdEFuZE1ham9yQ29tbWl0KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRD
b21taXRBbmRNYWpvckNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdyZXBvc2l0
b3JpZXMnLCB7J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGxl
dCBvc1dlYktpdCA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCB3ZWJraXRSZXBvc2l0b3J5
ID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zV2ViS2l0LmlkLCB3
ZWJraXRSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYktpdC5u
YW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmlj
dEVxdWFsKG9zV2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG51
bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQzLDcgKzM0Myw3IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhP
d25lZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lv
bkNvbW1pdFdpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0cycs
IHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0J30pLAogICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnSmF2YVNjcmlwdENv
cmUgY29tbWl0J30pLApAQCAtMzUxLDU0ICszNTEsNTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAg
ICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2
YVNjcmlwdENvcmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0ID0gcmVzdWx0
WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4Q29tbWl0LCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1
YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsy
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0ID0gcmVzdWx0WzJdWzBd
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoanNjQ29tbWl0LCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4
UmVwb3NpdG9yeSA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
c3hSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChv
c3hSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IHJlc3VsdFs0
XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5LCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QganNjUmVwb3NpdG9yeSA9IHJlc3VsdFs1XVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5ub3RTdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Via2l0UmVwb3Np
dG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0LnJlcG9zaXRvcnks
IGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeFJlcG9zaXRv
cnkub3duZXIsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRv
cnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Vi
a2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29t
bWl0LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJl
cG9zaXRvcnkuaWQpOwogCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVj
dFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdC5pZCwgJ293bmVk
Jzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0
LmlkLCAnb3duZWQnOiBqc2NDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAg
ICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0
UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldl
YktpdENvbW1pdCA9IHJlc3VsdFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
d25lckNvbW1pdEZvcldlYktpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBv
d25lckNvbW1pdEZvckpTQ0NvbW1pdCA9ICByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQsIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICB9KTsK
ICAgICB9KQogCkBAIC00NDgsNyArNDQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRT
bGF2ZUZvclJlcG9ydChtdWx0aXBsZVN5c3RlbVZlcnNpb25Db21taXRzV2l0aE93bmVkQ29tbWl0
cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBtdWx0aXBsZVN5c3RlbVZlcnNpb25D
b21taXRzV2l0aE93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdjb21taXRzJywg
eydyZXZpc2lvbic6ICdTaWVycmExNkQzMid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RS
b3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkM2Nyd9KSwKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ1dlYktpdCBDb21taXQn
fSksCkBAIC00NTgsNDkgKzQ1OCw0OSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8g
d2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxl
Y3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAiV2ViS2l0In0pLAogICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdKYXZhU2NyaXB0Q29y
ZSd9KV0pCiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdC5sZW5ndGgsIDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQwID0gcmVzdWx0WzBdWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENv
bW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1p
dDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRDb21taXQgPSByZXN1bHRbMl1bMF07Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NDb21t
aXQwID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1p
dDAsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdDAs
IG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBqc2NDb21taXQxID0gcmVzdWx0WzRdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5v
dFN0cmljdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WzVdLmxlbmd0aCwgMSkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbNV0ubGVuZ3RoLCAxKQogICAgICAgICAgICAgY29uc3Qgb3N4UmVwb3NpdG9yeSA9IHJl
c3VsdFs1XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hSZXBvc2l0b3J5LCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzZdLmxlbmd0aCwgMSkKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRbNl1bMF07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwg
b3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbN10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbN10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbN11bMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3Np
dG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5v
d25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRv
cnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwg
anNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0MS5y
ZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRv
cnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDEucmVwb3Np
dG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRvcnkuaWQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwganNjUmVwb3NpdG9y
eS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29tbWl0MS5yZXBvc2l0
b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5Lmlk
KTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdjb21t
aXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQwLmlkLCAnb3duZWQnOiB3ZWJraXRD
b21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxl
Y3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3du
ZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKQEAgLTUwOCwyNSAr
NTA4LDI1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVl
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9v
d25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdDEuaWQsICdvd25lZCc6IGpzY0NvbW1pdDEu
aWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dC5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5n
dGgsIDUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDAgPSByZXN1bHRbMF1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21t
aXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1p
dEZvcldlYktpdENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENv
bW1pdDEgPSByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJD
b21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJp
Y3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25l
ckNvbW1pdEZvckpTQ0NvbW1pdDAgPSByZXN1bHRbMl1bMF07Ci0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAsIG51bGwpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQxLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEsIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC01NDgsMTggKzU0OCwxOCBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRXaXRoRW1wdHlPd25l
ZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNv
bW1pdFdpdGhFbXB0eU93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxl
Y3RBbGwoJ3JlcG9zaXRvcmllcycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdF9vd25lcnNoaXBzJywg
J293bmVyJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBs
ZXQgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCByZXBvc2l0b3JpZXMgPSBy
ZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQgY29tbWl0X293bmVyc2hpcHMgPSByZXN1bHRbMl07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVzWzBdLmlkKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXNbMF0ubmFtZSwgJ09TWCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0aCwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVz
WzBdLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNbMF0u
bmFtZSwgJ09TWCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdF9vd25l
cnNoaXBzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01ODcsNyArNTg3
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJz
aW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0YW1wKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRBbmRPd25lZENvbW1pdFdpdGhUaW1lc3Rh
bXApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRp
bWVzdGFtcCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0pOwpAQCAtNjk5LDExICs2OTksMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgIGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICBjb25zdCBjb21taXRz
ID0gcmVzdWx0Wydjb21taXRzJ107Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0
aCwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsKIAogICAg
ICAgICByZXR1cm4gY29tbWl0czsKICAgICB9CkBAIC03MTIsNyArNzEyLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewog
ICAgIHsKICAgICAgICAgYXdhaXQgaW5pdGlhbFJlcG9ydENvbW1pdHMoKTsKICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgY29tbWl0c1VwZGF0ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CiAgICAgICAgIHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8n
KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdFsnY29tbWl0cyddOwogICAgIH0KQEAgLTcyMCw5ICs3
MjAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2Ui
LCBmdW5jdGlvbiAoKSB7CiAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFdpdGhFeHBlY3RlZEZhaWx1
cmUoY29tbWl0c1VwZGF0ZSwgZXhwZWN0ZWRGYWlsdXJlTmFtZSkKICAgICB7CiAgICAgICAgIGNv
bnN0IGNvbW1pdHMgPSBhd2FpdCBzZXRVcFRlc3RzV2l0aEV4cGVjdGVkU3RhdHVzKGNvbW1pdHNV
cGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0
eSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7
CiAgICAgfQogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggIk1pc3NpbmdSZXZpc2lvbiIgaWYg
Y29tbWl0IHVwZGF0ZSBkb2VzIG5vdCBoYXZlIGNvbW1pdCByZXZpc2lvbiBzcGVjaWZpZWQnLCBh
c3luYyAoKSA9PiB7CkBAIC03NDYsMzIgKzc0NiwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0
IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAKICAgICAgICAgbGV0IGNvbW1pdHMgPSBhd2FpdCBk
YXRhYmFzZS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF0ucmVwb3J0ZWQsIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5y
ZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJl
cG9ydGVkLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ucmVw
b3J0ZWQsIHRydWUpOwogCiAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgY29t
bWl0cyBTRVQgY29tbWl0X3JlcG9ydGVkPWZhbHNlJyk7CiAgICAgICAgIGxldCByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKIAogICAgICAgICBjb21taXRzID0gYXdhaXQgZGF0YWJhc2Uuc2VsZWN0QWxsKCdjb21t
aXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBmYWxzZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBmYWxzZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBmYWxzZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBmYWxzZSk7CiAgICAg
fSk7CiAKICAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlIGNvbW1pdHMgbWVzc2FnZSwg
dGltZSwgb3JkZXIsIGF1dGhvciBhbmQgcHJldmlvdXMgY29tbWl0IiwgYXN5bmMgKCkgPT4gewog
ICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1
cyhjb21taXRzVXBkYXRlLCAnT0snKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwg
J0JyZWFrcyBidWlsZHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFi
aWxpdHksICdDcmFzaGVzIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sw
XS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzFdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF0uYXV0aG9yTmFtZSwgJ0NocmlzIER1bWV6Jyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzFdLmF1dGhvck5hbWUsICdaYWxhbiBCdWp0YXMnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF0ub3JkZXIsIDIxMDk0OCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzFdLm9yZGVyLCAyMTA5NDkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV0udGltZSwgMTQ4NDg4NjIzMDY0NSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFd
LnByZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbMF0udGVzdGFiaWxpdHksICdCcmVha3MgYnVpbGRzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2Fn
ZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5tZXNzYWdlLCAnYW5v
dGhlciBtZXNzYWdlJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLmF1
dGhvck5hbWUsICdDaHJpcyBEdW1leicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb21taXRzWzBdLm9yZGVyKSwgMjEwOTQ4KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbW1pdHNbMV0ub3JkZXIpLCAyMTA5NDkpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGltZSwgMTQ4NDg4NjIzMDY0
NSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnByZXZpb3VzQ29tbWl0
LCBjb21taXRzWzBdLmlkKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCBkOWEyY2VkNjcxODM4MGZhYjllMGNkNWIwNTcwNDcy
MTRiZDEzNGZhLi41YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LXRlc3RzLmpzCkBAIC0xMDEsNyArMTAxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBidWls
ZGVyIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkVGltZSI6ICIyMDEz
LTAyLTI4VDEwOjEyOjAzLjM4ODMwNCJ9XSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNzaW5nQnVpbGRlck5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOSwxOCAr
MTA5LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW3siYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLCAiYnVpbGRlclBhc3N3b3Jk
IjogInNvbWVQYXNzd29yZCJ9XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxk
VGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIsICgpID0+IHsKICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFtlbXB0eVJlcG9ydCgpXSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5v
dEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1
cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xMzQsNTggKzEzNCw1OCBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJldmlzaW9ucyI6IHt9fV07CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSku
dGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwg
MCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3QgcmVwb3J0
IHdpdGggIk1pc21hdGNoaW5nQ29tbWl0VGltZSIgaWYgdGltZSBkaWZmZXJlbmNlIGlzIGxhcmdl
ciB0aGFuIDEgc2Vjb25kJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVy
Rm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0
TWlzbWF0Y2hpbmdDb21taXRUaW1lKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vz
c2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
cHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0Nv
bW1pdFRpbWUnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxk
IG5vdCByZWplY3QgcmVwb3J0IGlmIHRoZSBjb21taXQgdGltZSBkaWZmZXJlbmNlIGlzIHdpdGhp
biAxIHNlY29uZCInLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JS
ZXBvcnQoZW1wdHlSZXBvcnQoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoT25l
U2Vjb25kQ29tbWl0VGltZURpZmZlcmVuY2UoKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydw
cm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogCiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0
KCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsK
ICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQgZnJvbSBhIHZhbGlkIGJ1
aWxkZXIiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5
UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAg
ICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbnRlbnQgPSBlbXB0eVJl
cG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVw
b3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRl
bnRbJ2J1aWxkZXJQYXNzd29yZCddOwogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRl
bnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29u
dGVudCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQs
IHN1Ym1pdHRlZENvbnRlbnQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDE4ICsx
OTcsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
cmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
cmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRl
bnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZSByZXBvcnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnRb
J3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgcmVwb3J0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudCwgcmVwb3J0KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxNiwxOSArMjE2LDE5IEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KGVtcHR5U2xhdmVSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5U2xhdmVS
ZXBvcnQoKV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10s
IDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRD
b250ZW50ID0gZW1wdHlTbGF2ZVJlcG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29u
dGVudCA9IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAg
ZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRl
bGV0ZSBzdWJtaXR0ZWRDb250ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3Jl
ZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENv
bnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTIzOCw5ICsyMzgsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9
KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9y
dHNbMF1bJ2NvbnRlbnQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RvcmVkQ29udGVu
dFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1w
dHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CiAgICAgICAgICAgICBhc3NlcnQoISgnYnVpbGRl
clBhc3N3b3JkJyBpbiBzdG9yZWRDb250ZW50KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MjUxLDggKzI1MSw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZF9zbGF2ZXMnKTsKICAgICAgICAgfSkudGhl
bigoc2xhdmVzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzWzBdWyduYW1lJ10sIGVtcHR5UmVw
b3J0KClbJ3NsYXZlTmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbGF2
ZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbGF2ZXNbMF1b
J25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMjYyLDggKzI2Miw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZGVycycpOwogICAgICAgICB9
KS50aGVuKChidWlsZGVycykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUn
XSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZGVyc1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWlsZGVyTmFtZSddKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwog
ICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZHNbMF1bJ3RhZyddLCAxMjMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkc1swXVsndGFnJ10sICcxMjMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4Myw3
ICsyODMsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgZGVsZXRlIHJl
cG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0
KCJzaG91bGQgcmVqZWN0IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBh
bmQgYnVpbGQgdGFnIHdpdGggZGlmZmVyZW50IHZhbHVlcyIsIGFzeW5jICgpID0+IHsKQEAgLTI5
MSw3ICsyOTEsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIGNvbnN0IHJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51
bWJlciA9ICc0NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRj
aCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVp
bGRlck51bWJlclRhZ01pc21hdGNoJyk7CiAgICAgfSkKIAogICAgIGl0KCJzaG91bGQgYWNjZXB0
IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIHdp
dGggaWRlbnRpY2FsIHZhbHVlIiwgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDcgKzI5OSw3IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVwb3J0
ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gcmVwb3J0LmJ1
aWxkVGFnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxk
IGFkZCB0aGUgcGxhdGZvcm0iLCAoKSA9PiB7CkBAIC0zMDgsOCArMzA4LDggQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdwbGF0Zm9y
bXMnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjcsMTQgKzMyNywxNCBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSBy
ZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzFdOwogICAgICAg
ICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0WzJdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0
KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2Vi
S2l0JywgJ21hY09TJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9u
c1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1p
dHNbMV1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0
aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0
X2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1p
dHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxk
X2NvbW1pdCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1p
dHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKIAogICAgICAgICAgICAgbGV0IHJlcG9z
aXRvcnlJZFRvTmFtZSA9IHt9OwogICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiBy
ZXBvc2l0b3JpZXMpCkBAIC0zNDQsOSArMzQ0LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZm9yIChsZXQgY29tbWl0IG9mIGNvbW1pdHMpCiAg
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRv
TmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbidd
LCAnMTAuOC4yIDEyQzYwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5h
bWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3NycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11b
J3RpbWUnXS50b1N0cmluZygpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2
MCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZp
c2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0
aW1lJ10udG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAw
ODo1NToyMC45JykudG9TdHJpbmcoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzYwLDE2
ICszNjAsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVp
bGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzgyLDE2ICszODIsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9y
dCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRS
ZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDIp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDE1LDE3ICs0MTUsMTcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZv
clJlcG9ydChmaXJzdFJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVu
KChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hp
bmdDb21taXRSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5nQ29tbWl0UmV2aXNpb24nKTsKICAgICAgICAgICAg
IGFzc2VydChKU09OLnN0cmluZ2lmeShyZXNwb25zZSkuaW5kZXhPZignMTQxOTc3JykgPj0gMCk7
CiAgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE1
MDAwMCcpID49IDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJl
U3RvcmVkJ10sIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9j
ZXNzZWRSdW5zJ10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNDg3LDggKzQ4Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICBmdW5jdGlvbiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBv
cnQpCiAgICAgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdn
cmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFs
c2UpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICAgICB9KTsKICAgICB9CkBA
IC01MTEsNyArNTExLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVw
b3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0
cy5tYXAoKHJvdykgPT4geyByZXR1cm4gcm93WyduYW1lJ107IH0pLnNvcnQoKSwKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdHMubWFwKChyb3cpID0+IHsgcmV0dXJuIHJv
d1snbmFtZSddOyB9KS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydDU1MnLCAnRE9NJywgJ0R1
bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAnVHJhdmVy
c2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC01MjYsMTQgKzUyNiwxNCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9u
YW1lJ11dID0gbmV3IEFycmF5OwogICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jv
d1sndGVzdF9uYW1lJ11dLnB1c2goW3Jvd1snbWV0cmljX25hbWUnXSwgcm93WydhZ2dyZWdhdG9y
X25hbWUnXV0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1Rp
bWUnLCAnQXJpdGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtb
J1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRp
YyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydN
b2RpZnlOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxd
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBs
ZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10s
IFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXSwg
WydUaW1lJywgJ0dlb21ldHJpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydUaW1lJywgJ0FyaXRo
bWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRv
TWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snTW9k
aWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBu
dWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0
cmljc1snYXBwbGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1l
JywgbnVsbF1dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU0Miw3ICs1NDIsNyBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoYFNFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmlj
cywgdGVzdF9jb25maWd1cmF0aW9ucwogICAgICAgICAgICAgV0hFUkUgdGVzdF9pZCA9IG1ldHJp
Y190ZXN0IEFORCBtZXRyaWNfaWQgPSBjb25maWdfbWV0cmljCiAgICAgICAgICAgICBBTkQgdGVz
dF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDJgLCBbdGVzdE5hbWUsIG1ldHJpY05hbWVd
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
LnJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0LnJvd3MubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJvd3Nb
MF07CiAgICAgICAgICAgICB9KTsKICAgICB9CkBAIC01NjUsMjAgKzU2NSwyMCBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNv
bnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwg
Z3JvdXA6IG51bGwsIHZhbHVlOiA1MDAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAg
ICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MTAsIHJl
bGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjog
MiwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MjAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAg
ICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MzAs
IHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7CiAgICAgICAgICAgICBjb25zdCBzdW0gPSA1MDAgKyA1
MTAgKyA1MjAgKyA1MzA7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hl
J10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICogNTEwICsgNTIwICogNTIw
ICsgNTMwICogNTMwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5f
Y2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1MDAgKiA1MDAgKyA1MTAg
KiA1MTAgKyA1MjAgKiA1MjAgKyA1MzAgKiA1MzApOwogICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0NTUycsICdUaW1lJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAg
ICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVlOiAxMDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAog
ICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAx
MDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBv
cmRlcjogMiwgZ3JvdXA6IDAsIHZhbHVlOiAxMDMsIHJlbGF0aXZlX3RpbWU6IG51bGx9LApAQCAt
NjAwLDkgKzYwMCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBzdW0gKz0gdmFsdWU7CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9
IHZhbHVlICogdmFsdWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0
Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNjEzLDE1ICs2MTMsMTUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0
IHJ1bklkID0gcmVzdWx0LnJ1blsnaWQnXTsKICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWyg1MDAgKyAxMDApIC8gMiwgKDUxMCArIDExMCkgLyAyLCAoNTIwICsgMTIwKSAvIDIs
ICg1MzAgKyAxMzApIC8gMl07Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5p
dGVyYXRpb25zLCBbCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5p
dGVyYXRpb25zLCBbCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAwLCBncm91
cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1
ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAg
ICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZh
bHVlc1syXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVu
SWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzNdLCByZWxh
dGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gZXhwZWN0ZWRWYWx1
ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZTsgfSwg
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJl
c3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydz
dW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7
IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwg
c3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVy
biBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC02NDIsMTAgKzY0MiwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZh
bHVlOwogICAgICAgICAgICAgICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklk
LCBvcmRlcjogaSwgZ3JvdXA6IE1hdGguZmxvb3IoaSAvIDUpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1
ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0
ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNo
ZSddLCBzdW0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNo
ZSddLCBzcXVhcmVTdW0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVu
Z3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBz
dW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNo
ZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAzLDEwICs3MDMs
MTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
c3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOwogICAgICAgICAgICAg
ZXhwZWN0ZWRJdGVyYXRpb25zLnB1c2goe3J1bjogcnVuSWQsIG9yZGVyOiBpLCBncm91cDogTWF0
aC5mbG9vcihpIC8gMiksIHZhbHVlOiBleHBlY3RlZFZhbHVlLCByZWxhdGl2ZV90aW1lOiBudWxs
fSk7CiAgICAgICAgIH0KLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9u
cywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9j
YWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRp
b25zLmxlbmd0aCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSdd
LCBzdW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIHNxdWFyZVN1bSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMg
d2l0aG91dCBhbnkgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAg
LTczNywyNyArNzM3LDI3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0
aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBy
dW4gPSBiZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2ht
YXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAw
LCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVu
LCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEz
KSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3Vw
OiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVu
Z3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQu
aXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEp
ICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwg
Z3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxs
fSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJh
dGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIz
KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3Vw
OiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwog
CiAgICAgICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgo
dG90YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVh
cmVTdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+
IHRvdGFsICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwg
c3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5y
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
ZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJl
U3VtKTsKIAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1
bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0FTdWJUZXN0JywgJ1RpbWUnKTsKICAgICAgICAgcnVuID0g
c29tZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0
UmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21l
VGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiAzMSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICB7
cnVuLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMiwgcmVsYXRpdmVfdGltZTogbnVs
bH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVu
WydtZWFuX2NhY2hlJ10sIDMxLjUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1
bHQucnVuWydzdW1fY2FjaGUnXSwgNjMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RS
ZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDMxICogMzEgKyAzMiAqIDMyKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCAz
MS41KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3Vt
X2NhY2hlJ10sIDYzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7CiAgICAgfSk7CiAK
ICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMgbWlzc2luZyB0aGUgbWF0Y2hpbmcgbWV0cmlj
IGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAgLTc5MiwyNyArNzkyLDI3IEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgYmVu
Y2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVt
bXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBydW4gPSBiZW5jaG1hcmtSZXN1
bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQu
aXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEp
ICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6
IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHty
dW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0
aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsg
MTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1
biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRp
dmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAo
KDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9y
ZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsg
MTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogCiAgICAgICAgIGNvbnN0IHN1
bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90
YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVhcmVTdW0gPSBiZW5jaG1hcmtS
ZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVl
ICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5y
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1h
cmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJl
bmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVu
WydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKIAogICAgICAgICBj
b25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRy
aWMoJ0F1eGlsaWFyeVJlc3VsdCcsICdBbGxvY2F0aW9ucycpOwogICAgICAgICBydW4gPSBzb21l
VGVzdFJlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3RSZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0
UmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgIHtydW4sIG9yZGVyOiAwLCBncm91cDog
bnVsbCwgdmFsdWU6IDMxICsgNDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAg
e3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIgKyA0MiwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1
bHQucnVuWydtZWFuX2NhY2hlJ10sICgzMSArIDQxICsgMzIgKyA0MikgLyAyKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDMxICsgNDEgKyAz
MiArIDQyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3F1YXJl
X3N1bV9jYWNoZSddLCBNYXRoLnBvdygzMSArIDQxLCAyKSArIE1hdGgucG93KDMyICsgNDIsIDIp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9j
YWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQxICsgMzIgKyA0Mik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQyLCAyKSk7
CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBhIHJlcG9ydCB3aGVuIHRoZXJlIGFy
ZSBtb3JlIHRoYW4gb25lIG5vbi1tYXRjaGluZyBhZ2dyZWdhdG9ycyBpbiBhIHN1YnRlc3QiLCBh
c3luYyAoKSA9PiB7CkBAIC04NDgsNyArODQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfX07CiAKICAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25z
ZShyZXBvcnRXaXRoQW1iaWdpb3VzQWdncmVnYXRvcnMpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRj
aGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcpOwogICAgIH0pOwogCiAgICAgZnVuY3Rpb24g
cmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpCkBAIC04OTIsMTYgKzg5MiwxNiBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiByZXBvcnRBZnRl
ckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCkp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5z
ZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgbGV0IG5ld1JlcG9ydCA9
IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKTsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWls
ZFRhZyA9ICIxMjUiOwogICAgICAgICAgICAgbmV3UmVwb3J0LmJ1aWxkVGltZSA9ICIyMDEzLTAy
LTI4VDEyOjE3OjI0LjEiOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtuZXdSZXBvcnRdKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAgfSkudGhlbigodGVzdHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC05MzAsMTcgKzkzMCwxNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVz
dDEnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1
bV9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRp
b25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
WydtZWFuX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3VtX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1
YXJlX3N1bV9jYWNoZSddLCA5KTsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVy
YXRpb25zRm9yTWV0cmljKCdzdWl0ZScsICdDb21iaW5lZCcpOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC05NjIsMTMgKzk2MiwxMyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygndGVzdCcsICdGcmFtZVJhdGUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3N1bV9jYWNoZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzcXVhcmVfc3VtX2NhY2hlJ10sIDE2ICsgMjUgKyA5KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA0LCByZWxhdGl2ZV90aW1lOiAwfSwK
ICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1
ZTogNSwgcmVsYXRpdmVfdGltZTogMTAwfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwg
b3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogMywgcmVsYXRpdmVfdGltZTogMjA1fV0pOwpA
QCAtMTAwNiw3ICsxMDA2LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZm
ZXJlbnRUZXN0c1swXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0Rp
ZmZlcmVudFRlc3RzWzBdXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChvcmlnaW5hbENvbmZpZykgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdE
aWZmZXJlbnRUZXN0c1syXV0pLnRoZW4oKCkgPT4gewpAQCAtMTAyMywxNiArMTAyMywxNiBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRC
dWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKG9yaWdpbmFsQ29uZmln
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdXSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgICAgICB9KS50aGVuKChjb25maWcpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQob3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAgICAgICAgIGFzc2VydChj
b25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdf
cnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQn
XSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDY5LDcgKzEw
NjksNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3Jl
Z2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJlcXVlc3QpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwNzcsMjIgKzEw
NzcsMjIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dy
ZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6ICcxMjMnfSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0
Zm9ybXMnLCB7bmFtZTogJ01vdW50YWluIExpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIFthbm90aGVyUmVwb3J0V2l0aFNhbWVCdWlsZFJlcXVlc3RdKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvVXBkYXRlQnVpbGRSZXF1
ZXN0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJv
d3MoJ2J1aWxkcycsIHt0YWc6ICcxMjQnfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0Zm9ybXMnLCB7bmFt
ZTogJ0xpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0
LWdyb3Vwcy5qcwppbmRleCBjMDE5YTQyZGIxNzI0MTIxOTMyNTg4MjUwZWI5MzU5MDExMWQ5NGY5
Li4xNjI5ZDRiYjBhZjFmZjRiMmQ2OTNjMWNhNzVkZjcwN2U4MDhiYmNhIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vw
cy5qcwpAQCAtMTEsMzkgKzExLDM5IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVu
Y3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3Rp
ZmljYXRpb24nLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgZ2l2ZSBhbiBlbXB0eSBsaXN0
IGlmIHRoZXJlIGlzIG5vdCBleGlzdGluZyB0ZXN0IGdyb3VwIGF0IGFsbCcsIGFzeW5jICgpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywg
W10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBpbmNsdWRlIGEgdGVz
dCBncm91cCB3aXRoICJjYW5jZWxlZCIgc3RhdGUgaW4gYXQgbGVhc3Qgb25lIGJ1aWxkIHJlcXVl
c3QnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21w
bGV0ZWQnLCAnY2FuY2VsZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZv
ci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1
cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vw
cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVz
dHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRz
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVx
dWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5j
b21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3Vs
ZCBsaXN0IGFsbCB0ZXN0IGdyb3VwcyB3aXRoIHBlbmRpbmcgbm90aWZpY2F0aW9uJywgYXN5bmMg
KCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2Nv
bXBsZXRlZCddKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNh
dGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gY29udGVudC50ZXN0
R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5pZCwgNjAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAudGFzaywgNTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24sIHRydWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAy
JywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNvbW1p
dFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5pZCksIDYwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3Vw
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmhpZGRlbiwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbiwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
dGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMydd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNl
dHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIG5vdCBsaXN0IGhpZGRlbiB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewpA
QCAtNTEsMTIgKzUxLDEyIEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsn
Y29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAg
ICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3Vw
cyBTRVQgdGVzdGdyb3VwX2hpZGRlbiA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7
CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtd
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCB0ZXN0IGdyb3Vw
cyB3aXRob3V0IG5lZWRzIG5vdGlmaWNhdGlvbiBmbGFnJywgYXN5bmMgKCkgPT4gewpAQCAtNjQs
MjQgKzY0LDI0IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJhc2UsIFsnY29tcGxl
dGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAgICAgICAg
ICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQg
dGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiA9IEZBTFNFIFdIRVJFIHRlc3Rncm91cF9pZCA9
IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9u
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZp
bGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgYSB0
ZXN0IGdyb3VwIHRoYXQgaGFzIHNvbWUgaW5jb21wbGV0ZWQgYnVpbGQgcmVxdWVzdHMnLCBhc3lu
YyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBb
J2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1bm5pbmcnXSk7CiAgICAg
ICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOCwxOCArMTM4LDE4IEBAIGRlc2NyaWJlKCcvYXBp
L3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEu
YWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0
ZWQnLCAnZmFpbGVkJywgJ2NvbXBsZXRlZCddLCBmYWxzZSk7CiAgICAgICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBT
RVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91
cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVkLW1vcmUtcmVxdWVz
dHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVz
dCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRo
b3IsIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAuaGlkZGVuKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3
MDInLCAnNzAzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuY29t
bWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3
MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10p
OwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBz
IG1heSBuZWVkIGFkZGl0aW9uYWwgYnVpbGQgcmVxdWVzdHMnLCBhc3luYyAoKSA9PiB7CkBAIC0x
NTgsMzEgKzE1OCwzMSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeSgnVVBEQVRF
IGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25lZWRfbW9yZV9yZXF1ZXN0
cyA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBT
RVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91
cF9pZCA9IDYwMScpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVkLW1vcmUtcmVxdWVz
dHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgY29uc3Qgb25lVGVzdEdyb3VwID0gY29udGVudC50
ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5pZCwg
NjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAudGFzaywgNTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBn
cm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRlc3RHcm91
cC5pZCksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob25l
VGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9u
ZVRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIW9uZVRlc3RHcm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9uZVRl
c3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2sob25lVGVz
dEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9u
ZVRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
bmVUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob25lVGVzdEdyb3VwLmNvbW1pdFNldHMsIFsn
NDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9uZVRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywn
NzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsK
IAogICAgICAgICAgICAgY29uc3QgYW5vdGhlclRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vw
c1sxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLmlkLCA2MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAudGFzaywgNTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLm5hbWUsICdhbm90aGVy
IHRlc3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3Vw
LmF1dGhvciwgJ3dlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGFub3RoZXJUZXN0R3JvdXAuaWQpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAudGFzayksIDUwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5vdGhlciB0ZXN0
IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91
cC5hdXRob3IsICd3ZWJraXQnKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RH
cm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFhbm90aGVyVGVzdEdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayhhbm90aGVyVGVzdEdyb3Vw
Lm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJU
ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5v
dGhlclRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcxMCcsJzcxMScsICc3MTInLCAnNzEzJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChhbm90aGVyVGVzdEdyb3VwLmNvbW1pdFNl
dHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDIn
LCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMK
aW5kZXggZmZmMmFjZjFmYjYzOWFiM2U5OGEyYjFiN2IzZDQwNmRmMWFjYzdlMS4uYmJmOTMzNjY1
MGU1ZWE0MTU3ZGZmYTRkOTYyZWJiOTU5MDQ3ZTk0MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10
cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMzAsMTQgKzMwLDE0IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVj
dCB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZycsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IHt9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUg
bm8gc2xhdmVzJywgKCkgPT4gewogICAgICAgICBjb25zdCB1cGRhdGUgPSB7c2xhdmVOYW1lOiBl
bXB0eVVwZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6IGVtcHR5VXBkYXRlLnNsYXZlUGFz
c3dvcmR9OwogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91
bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00OCw3ICs0OCw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBjb25zdCByZXBvcnQgPSB7c2xhdmVOYW1lOiBlbXB0eVVwZGF0ZS5zbGF2ZU5h
bWUsIHNsYXZlUGFzc3dvcmQ6ICdiYWRQYXNzd29yZCd9OwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC01OCw3ICs1OCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MywxMCArNzMsMTAgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Ry
aWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC04NywxMiArODcsMTIgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgc21hbGxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdWyd0ZXN0J10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ3BsYXRmb3JtJ10sIHNtYWxsVXBk
YXRlLmNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVzdCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBz
bWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMDgsNyArMTA4LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29uZmlndXJhdGlv
bkVudHJ5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZENvbmZpZ3VyYXRpb25FbnRyeScpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTM3LDcgKzEzNyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlH
cm91cHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwcycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTQ5LDcgKzE0OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91
cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE2
MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1
cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzMsNyAr
MTczLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRl
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJl
cG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTg1LDcgKzE4NSw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlEYXRhJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnlEYXRhJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdE
dXBsaWNhdGVSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjIxLDE4ICsyMjEsMTggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2Ri
LnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndGVzdCcpLCBkYi5zZWxl
Y3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJyldKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9z
aXRvcnlHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmln
dXJhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0
aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRp
b25zWzBdWyd0ZXN0J10sIE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10sIE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2Vy
YWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5l
bXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjUzLDgg
KzI1Myw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2lu
aXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNdID0gaW5pdGlhbFJl
c3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVwb3NpdG9yeUdyb3Vw
c10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRpb25z
LCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlv
bnMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
LCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAgICAgIH0pCiAgICAgfSk7CiAKQEAgLTI3
NSw4ICsyNzUsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRp
YWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlH
cm91cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0
aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3Vy
YXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBA
IC0yOTAsMTQgKzI5MCwxNCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4o
KHJlcG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAn
c3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgc2Vjb25kVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigoKSA9PiBkYi5zZWxlY3RB
bGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4oKHJlcG9zaXRvcnlHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFt
ZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCAndGhpcyBncm91cCBpcyBhd2Vzb21lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUn
XSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM5ICszNDQsMzkgQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0
IHJlcG9zaXRvcnlHcm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1l
KFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLmFsbCgpKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdXZWJLaXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ21hY09TJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lz
dGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNj
ZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCks
ICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdl
YmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCks
ICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2go
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJp
Z2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRU
b3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9z
aXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5h
Y2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSht
YWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3Rz
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0
c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdl
YmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5h
bWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21S
b290cygpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTM5NSwyOSArMzk1LDI5IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFt
ZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5
JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBb
cmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2Vy
YWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUn
XSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwg
J3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgp
KTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3JvdXBzOwogCiAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91
cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2Nr
RGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5
R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5t
YWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwog
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxl
Y3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUnKSwgZGIuc2VsZWN0
QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScpXSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRvcnlHcm91
cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxHcm91cHMpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKIAogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAo
cmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBv
c2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEu
bWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFs
R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3Vw
KS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0
b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3Jv
dXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTQzNiwxNyArNDM2LDE3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFt
ZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5
JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBb
cmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2Vy
YWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUn
XSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwg
J3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgp
KTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3JvdXBzOwogCiAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91
cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2Nr
RGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5
R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0YS5t
YWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9z
aXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOwog
ICAgICAgICAgICAgaW5pdGlhbFJlcG9zaXRvcmllcyA9IHJlcG9zaXRvcmllczsKIAogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwpAQCAtNDU1LDEzICs0NTUs
MTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbcmVwb3Np
dG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIGluaXRp
YWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgaW5p
dGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ21hYy1vbmx5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFi
bGUnXSwgaW5pdGlhbEdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMsIGluaXRpYWxSZXBvc2l0
b3JpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMs
IGluaXRpYWxSZXBvc2l0b3JpZXMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3Qt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxv
YWQtcm9vdC10ZXN0cy5qcwppbmRleCBhOGIxOTFkNzVmYzFjODAxNjZiYTM2ZTEzNTMzNWIwMTA2
MTg4OWY4Li40OTgyZjA5OGJlODE3NjU5NTdmYTE1MjNjYjdmZGFhM2Q2NzA3NWY0IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9v
dC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS11cGxvYWQtcm9vdC10ZXN0cy5qcwpAQCAtMTIxLDcgKzEyMSw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdo
ZW4gcm9vdCBmaWxlIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCB7fSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3Jh
cnlGaWxlKCdzb21lLmRhdCcsICdzb21lIGNvbnRlbnQnKS50aGVuKChyb290RmlsZSkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcv
YXBpL3VwbG9hZC1yb290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTM5LDcgKzEzOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQuc2xhdmVOYW1lOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZl
TmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0OSw3
ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxkZXJOYW1lOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkZXJOYW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZEJ1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTksNyArMTU5LDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRhZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRhZycpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDcgKzE3MCw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5idWlsZE51
bWJlciA9ICcxYWJjJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51bWJlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51bWJlcicpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTc5LDcgKzE3OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9h
ZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9y
dChyb290RmlsZSk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICc0NTYnOwogICAgICAg
ICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1E
YXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0Y2gnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1iZXJUYWdN
aXNtYXRjaCcpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBhY2NlcHQgaWYgYm90aCBidWls
ZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyBleGlzdHMgd2l0aCBzYW1lIHZhbHVlJywgYXN5bmMgKCkg
PT4gewpAQCAtMTg4LDM5ICsxODgsMzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgY29uc3Qgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25l
ZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNv
bnN0IHJvb3RGaWxlID0gYXdhaXQgYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAg
ICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwg
WydXZWJLaXQnXSk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRh
ZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hv
dWxkIGNvbnRpbnVlIHdvcmtpbmcgd2l0aCBidWlsZCBudW1iZXIgaWYgYnVpbGQgdGFnIGlzIG5v
dCBwcmVzZW50JywgYXN5bmMgKCkgPT4gewpAQCAtMjI5LDQwICsyMjksNDAgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBvd25lZEpT
QyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7
CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAg
ICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTYxNjEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgIGNvbnN0IHJvb3RGaWxlID0gYXdhaXQgYWRkU2xhdmVBbmRDcmVh
dGVSb290RmlsZSgpOwogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxl
LCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgIGRlbGV0ZSByZXBvcnQu
YnVpbGRUYWc7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICcxMjMnOwogICAgICAgICBj
b25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRh
KCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdo
ZW4gYnVpbGQgdGltZSBpcyBtaXNzaW5nJywgKCkgPT4gewpAQCAtMjcxLDcgKzI3MSw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRl
bGV0ZSByZXBvcnQuYnVpbGRUaW1lOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGltZScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MSw3ICsyODEsNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVpbGRUaW1l
ID0gJ1dlZCwgMTAgTWF5IDIwMTcgMDM6MDI6MzAgR01UJzsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBy
ZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVp
bGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yOTEsNyArMjkxLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVs
ZXRlIHJlcG9ydC5idWlsZFJlcXVlc3Q7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVz
dCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAxLDcgKzMwMSw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5i
dWlsZFJlcXVlc3QgPSAnYWJjJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDksNyArMzA5LDcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVB
bmRDcmVhdGVSb290RmlsZSgpLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgbWFrZVJlcG9ydChyb290RmlsZSkpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRC
dWlsZFJlcXVlc3RUeXBlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdFR5cGUnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTMxOSw3ICszMTksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnJlcG9zaXRvcnlMaXN0
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRh
KCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0zMjksNyArMzI5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJ2Er
Yic7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURh
dGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM0Nyw2NiArMzQ3LDY2IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1y
b290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAg
ICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRj
aCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNv
bW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgcmV0
dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSkudGhlbigocm9vdEZp
bGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUs
IGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBv
cnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IHVw
bG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAg
ICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9v
dFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVz
dEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVl
c3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3Qs
IGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxs
Um9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtd
KTsKICAgICAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdK
YXZhU2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZhU2NyaXB0IENvbnRlbnQgMCcpOwogICAgICAg
ICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFr
ZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFt7b3duZXJSZXBvc2l0b3J5V3Jv
bmdLZXk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIw
MTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5Rm9yUmVwb3NpdG9yeScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRLZXlGb3JS
ZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00MjQsNjYgKzQyNCw2NiBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7
CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBv
cnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3Vw
bG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVu
c3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRh
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3Nv
bWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZp
bGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAg
ICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91
cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRl
ZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNG
aW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxs
Um9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5
RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNj
cmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5p
ZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdDInLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZh
U2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJv
b3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01MDEsNzkgKzUw
MSw3OSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAg
ICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQ
ZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjkn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
c2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAy
MjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RG
aWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCkpKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRh
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0g
VXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxv
YWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3Qu
ZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2Fk
ZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0
R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
Y29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1
ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0
LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjkn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdCwgdXBsb2FkZWRSb290KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNo
YXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01ODcsNyArNTg3LDcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9z
aXRvcnlMaXN0ID0gJyJhIic7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3Qn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYwMSw4ICs2MDEsOCBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVw
b3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAiQmFkUmVwb3NpdG9yeU5hbWUiXSc7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBs
b2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3Np
dG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFt
ZSddLCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSddLCAnQmFkUmVwb3Np
dG9yeU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYxNiw4ICs2MTYsOCBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAibWFjT1MiXSc7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2Fk
LXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9y
eScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSdd
LCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSddLCAnbWFjT1MnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTYzNSwzNCArNjM1LDM0IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290
LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAg
ICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRj
aCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAn
cGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgcmV0dXJu
IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUp
ID0+IHsKQEAgLTY3MCw0NSArNjcwLDQ1IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290Lycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdbIldl
YktpdCIsICJTaGFyZWQiXSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdE
YXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290
ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1
cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJv
b3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBs
b2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50
ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAg
ICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRS
ZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1
ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3Qp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBsb2FkZWRSb290KTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
dXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB3
ZWJraXRQYXRjaCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkUm9vdCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAn
ODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCB1cGxvYWRlZFJvb3QpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MjcsODcgKzcyNyw4NyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91
cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAg
ICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAg
ICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5k
YXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAg
ICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0p
LnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVw
b3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2Fk
LXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSdd
OwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRv
bih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdz
b21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVp
bGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVz
dCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVk
QnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVt
cG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50
IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVy
UmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31d
LCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9h
ZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICBq
c2NSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRh
LmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NS
b290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ0phdmFTY3JpcHRDb3JlLVJv
b3QuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWls
ZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAg
ICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0
LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRC
dWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290LCBqc2NSb290XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBs
b2FkZWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKaW5kZXggYmVkYzU0NzdkNTVhNGM3NDdiMjFk
NzA5NDg1NTJlMzU3ZjQ2MmE5NC4uMDJlMWQ4OWZjYzFkMjJlYTY4NmFjZWQxNjAyMjkyMzIxZmRk
ZDhkMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCkBAIC03LDE5ICs3LDE4IEBA
IGdsb2JhbC5Gb3JtRGF0YSA9IHJlcXVpcmUoJ2Zvcm0tZGF0YScpOwogCiBjb25zdCBUZXN0U2Vy
dmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKIGNvbnN0IFRlbXBv
cmFyeUZpbGUgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcycpLlRlbXBv
cmFyeUZpbGU7Citjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2Vz
L2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7CiAKIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7Ci0gICAgdGhpcy50aW1lb3V0KDUwMDAp
OwotICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7Ci0KKyAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlz
KTsKICAgICBUZW1wb3JhcnlGaWxlLmluamVjdCgpOwogCiAgICAgaXQoJ3Nob3VsZCByZXR1cm4g
IkludmFsaWRBcmd1bWVudHMiIHdoZW4gbmVpdGhlciBwYXRoIG5vciBzaGEyNTYgcXVlcnkgaXMg
c2V0JywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3VwbG9hZGVkLWZpbGUnKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlk
QXJndW1lbnRzJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvJyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFs
aWRBcmd1bWVudHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydz
dGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTI3LDcgKzI2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS91
cGxvYWRlZC1maWxlLzEnKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTM1LDcgKzM0LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS91
cGxvYWRlZC1maWxlL2ZvbycpLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MDQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNDcsNyArNDYsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSdd
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1
ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHt1cGxvYWRlZEZpbGVbJ2lkJ119YCwgJ0dFVCcsIG51
bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjgsMTMgKzY3LDEzIEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hv
dWxkIHJldHVybiAiTm90Rm91bmQiIHdoZW4gdGhlIHNwZWNpZmllZCBTSEEyNTYgaXMgaW52YWxp
ZCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9YWJjJykudGhlbigoY29udGVudCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZv
dW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIk5v
dEZvdW5kIiB3aGVuIHRoZXJlIGlzIG5vIGZpbGUgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZCBTSEEy
NTYgJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1Nj01MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdk
NmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1JykudGhlbigoY29udGVudCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91
bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwg
J05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04Niw3ICs4NSw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1
cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL3VwbG9hZGVkLWZpbGUvP3No
YTI1Nj0ke3VwbG9hZGVkRmlsZVsnc2hhMjU2J119YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9hZGVkRmlsZSwgcmVz
cG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodXBsb2FkZWRGaWxlLCByZXNwb25zZVsndXBsb2FkZWRGaWxlJ10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtOTcsMTEgKzk2LDExIEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAg
ICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKLSAgICAgICAgICAgIHJldHVy
biBkYi5jb25uZWN0KCkudGhlbigoKSA9PiBkYi5xdWVyeShgVVBEQVRFIHVwbG9hZGVkX2ZpbGVz
IFNFVCBmaWxlX2RlbGV0ZWRfYXQgPSBub3coKSBhdCB0aW1lIHpvbmUgJ3V0YydgKSk7CisgICAg
ICAgICAgICByZXR1cm4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9maWxlcyBTRVQgZmlsZV9k
ZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TihgL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9JHt1cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWAp
OwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTExNywxNiArMTE2LDE2IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2Uu
aGVhZGVyczsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1
ZGVzKCdldGFnJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2V0YWcnXSwg
dXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aGVhZGVyc1snZXRhZyddLCB1cGxvYWRlZEZpbGVbJ3NoYTI1NiddKTsKIAogICAgICAgICAgICAg
YXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdhY2NlcHQtcmFuZ2VzJykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1yYW5nZXMnXSwgJ2J5dGVz
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snYWNjZXB0LXJhbmdl
cyddLCAnYnl0ZXMnKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMp
LmluY2x1ZGVzKCdjb250ZW50LWRpc3Bvc2l0aW9uJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXSwgYGF0dGFjaG1lbnQ7IGZpbGVuYW1l
Kj11dGYtOCcnc29tZS5kYXRgKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFk
ZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxlbmFtZSo9dXRmLTgn
J3NvbWUuZGF0YCk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5p
bmNsdWRlcygnY29udGVudC1sZW5ndGgnKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVh
ZGVyc1snY29udGVudC1sZW5ndGgnXSwgdXBsb2FkZWRGaWxlWydzaXplJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVk
RmlsZVsnc2l6ZSddKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMp
LmluY2x1ZGVzKCdsYXN0LW1vZGlmaWVkJykpOwogICAgICAgICB9KTsKQEAgLTE0NCw3ICsxNDMs
NyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgbGFzdE1vZGlmaWVkID0gcmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0
KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddLCBsYXN0TW9kaWZpZWQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFz
dE1vZGlmaWVkKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw5ICsxNTUsOSBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9h
ZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAn
Ynl0ZXM9NS0nfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAg
ICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA1LTExLzEyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnY29udGVudCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0
ZXMgNS0xMS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCw5
ICsxNjksOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0
KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6
IHsnUmFuZ2UnOiAnYnl0ZXM9NC05J319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNC05LzEyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnIGNvbnRl
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJh
bmdlJ10sICdieXRlcyA0LTkvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZS5yZXNwb25zZVRleHQsICcgY29udGUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTE4NCw5ICsxODMsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0
dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwg
e2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTQnfX0pOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA4
LTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0
LCAndGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29u
dGVudC1yYW5nZSddLCAnYnl0ZXMgOC0xMS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3RlbnQnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE5OCw5ICsxOTcsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwg
bnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTEwMCd9fSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2Uu
aGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwg
J2J5dGVzIDAtMTEvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNw
b25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDAtMTEvMTInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRl
bnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsyMDksNyBAQCBkZXNjcmli
ZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaWQgPSByZXNwb25zZVsndXBsb2FkZWRG
aWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5z
ZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBu
dWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz0xMi0nfX0pCi0gICAgICAgICAgICAgICAg
LnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVy
cm9yKSA9PiBhc3NlcnQuZXF1YWwoZXJyb3IsIDQxNikpOworICAgICAgICAgICAgICAgIC50aGVu
KCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikg
PT4gYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MTYpKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTIyMCw3ICsyMTksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
Y29uc3QgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2Fk
ZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdi
eXRlcz0yLTEnfX0pCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuZXF1YWwoZXJyb3Is
IDQxNikpOworICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCA0MTYpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIzMiwxNSArMjMxLDE1IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBp
ZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxl
LyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBj
b250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNw
b25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwg
J0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2UnOiAn
Ynl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmll
ZCddfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29u
c3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFk
ZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQs
ICdlbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjUyLDE1ICsyNTEsMTUgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlk
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUv
JHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNv
bnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAn
R0VUJywgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6ICdi
eXRlcyA9IDktMTAnLCAnSWYtUmFuZ2UnOiByZXNwb25zZS5oZWFkZXJzWydldGFnJ119fSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJz
ID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRl
bnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzIsMTMgKzI3MSwxMyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaWQgPSByZXNwb25z
ZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdH
RVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAn
c29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxs
LCBudWxsLAogICAgICAgICAgICAgICAgIHsnUmFuZ2UnOiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJh
bmdlJzogJ2Zvbyd9KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29t
ZSBjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDMsNyArMzAyLDcgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgZW5kQnl0ZSAtIHN0YXJ0Qnl0ZSArIDE7IGkrKykgewogICAg
ICAgICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IHJlc3BvbnNlQnVmZmVyW2ldOwogICAgICAgICAg
ICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYnVmZmVyW3N0YXJ0Qnl0ZSArIGldOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBgVGhlIGJ5dGUgYXQgaW5kZXgg
JHtpfSBzaG91bGQgYmUgaWRlbnRpY2FsLiBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7
YWN0dWFsfWApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhY3R1YWwsIGV4
cGVjdGVkLCBgVGhlIGJ5dGUgYXQgaW5kZXggJHtpfSBzaG91bGQgYmUgaWRlbnRpY2FsLiBFeHBl
Y3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKQEAgLTMxNSw4ICszMTQsOCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1JhbmdlJzogYGJ5
dGVzID0gJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX1gfSwgcmVzcG9uc2VIYW5kbGVyfSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0g
cmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQt
cmFuZ2UnXSwgYGJ5dGVzICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9LyR7ZmlsZVNpemV9YCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10s
IGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWApOwogICAgICAgICAg
ICAgdmVyaWZ5QnVmZmVyKCk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVp
bGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCAxNGU5
NDU2ZDJlNjdhNWM3MTAwMTIwYjE1NDY0ODBjMjcxNmRlYmY0Li5iMTA3NDlhMGQxZTkwMzhlMWZi
MmU5MTM5MzRhNjNhYTIyNTBkZDVlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwpAQCAtNzksNyArNzksNyBAQCBhc3luYyBm
dW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNpb25zID0gWyIxOTE2
MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmly
c3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0Lm1ldHJpY3MoKVswXS5p
ZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAgIGNvbnN0IHRlc3RSdW5zID0gYXdh
aXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7
CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQg
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAg
ICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKQEAg
LTE0MCwyMyArMTQwLDIzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywgeydncm91cCc6IGluc2VydGVkR3JvdXBJZCwgbWF5
TmVlZE1vcmVSZXF1ZXN0czogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBh
d2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9
IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRl
ZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0
cygpLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQo
KSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1
ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKIAogICAgICAgICBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVzdHMnLCB7Z3JvdXA6
IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KTsKIAogICAgICAgICBjb25zdCB1cGRhdGVk
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCksIDQp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pbml0aWFsUmVwZXRpdGlv
bkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1
ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHVwZGF0ZWRH
cm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCkpLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwg
Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIHRydWUpOwogICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiB1cGRhdGVkR3JvdXBz
WzBdLnJlcXVlc3RlZENvbW1pdFNldHMoKSkgewogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1
ZXN0cyA9IHVwZGF0ZWRHcm91cHNbMF0ucmVxdWVzdHNGb3JDb21taXRTZXQoY29tbWl0U2V0KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAg
ICAgICB9CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGNvbnN0
IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25z
dCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaW5pdGlh
bFJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpKSwgMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpLCAy
KTsKICAgICAgICAgYXdhaXQgZ3JvdXAudXBkYXRlSGlkZGVuRmxhZyh0cnVlKTsKIAogICAgICAg
ICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdEFkZFRvSGlkZGVuVGVzdEdyb3VwJywgYXN5bmMg
KCkgPT4gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3Rz
Jywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSkpCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwppbmRl
eCA5OTZkMmRkMzJkNzZiYTU0NzUzZTYzOWZmOGFmOWIzNTZmMjc5N2Q4Li4wZTY4NjFiN2VjNmJl
YmU1NTJhNjRkODczZmU1NzY2YjVkMTE3NDJmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNr
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKQEAgLTExMyw3ICsxMTMs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7fSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJy
b3IsICdNaXNzaW5nTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnTWlzc2luZ05hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyMSw3ICsxMjEs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgZW5kUnVu
OiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlz
aXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
SW52YWxpZEVuZFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
SW52YWxpZEVuZFJ1bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM3LDcgKzEzNyw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBi
cm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1
bjogImZvbyIsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJv
cikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVu
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRS
dW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2
aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEsIGVuZFJ1
bjogImZvbyJ9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRFbmRSdW4nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRFbmRSdW4nKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1
bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1h
bmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxMDAsIGVuZFJ1bjogMX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNjgsNyArMTY4LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dz
ZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1
bjogMSwgZW5kUnVuOiAxMDB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0s
IChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFs
aWRFbmRSdW4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJ
bnZhbGlkRW5kUnVuJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC0xODAsNyArMTgwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlz
aXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtu
YW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkVGltZVJhbmdlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTkyLDcgKzE5Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBp
JywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEsIGVuZFJ1bjogMn0p
LnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlzbWF0Y2gnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSdW5Db25maWdNaXNtYXRj
aCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjEyLDIwICsy
MTIsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3
aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmln
Um93KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywg
e2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNr
Jywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0
UnVuc1sxXVsnaWQnXX0pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRhc2spID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
Lm5hbWUoKSwgJ2hpJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1l
KCksICdoaScpOwogICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdl
VHlwZSgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCku
bGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
Lm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rl
c3QxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNDQsMjIgKzI0NCwyMiBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBw
cml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25m
aWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hp
Jywgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCdd
fSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBB
bmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKICAgICAgICAgfSkudGhl
bigodGFzaykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnaGkn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7CiAg
ICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghdGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2su
Y2F1c2VzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygp
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29t
ZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVz
dCgpLmxhYmVsKCksICd0ZXN0MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suc3Rh
cnRUaW1lKCksIDE0NDU5NjAwOTEwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
ZW5kVGltZSgpLCAxNDQ1OTY2ODYxMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNr
LmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5zdGFydFRpbWUoKSwgMTQ0NTk2MDA5
MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5lbmRUaW1lKCksIDE0
NDU5NjY4NjEwMDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgwLDcgKzI4MCw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93
c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6
IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIHN0YXJ0
SWQgPSB0ZXN0UnVuc1swXVsnaWQnXTsKICAgICAgICAgICAgIGVuZElkID0gdGVzdFJ1bnNbMV1b
J2lkJ107CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHN0YXJ0SWQsIGVuZFJ1
bjogZW5kSWR9KTsKQEAgLTI4OCwxMiArMjg4LDEyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHN0YXJ0SWQsIGVuZFJ1bjogZW5k
SWR9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRHVwbGljYXRlQW5hbHlzaXNUYXNrJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRHVwbGljYXRlQW5hbHlz
aXNUYXNrJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdhbmFseXNpc190YXNrcycpOwogICAgICAgICB9
KS50aGVuKCh0YXNrcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2tzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFza3MubGVuZ3RoLCAxKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxMiw3ICszMTIsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lk
J119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAgICAgICAgICAgICAg
bmFtZTogJ2hpJywKICAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10s
CkBAIC0zMzAsOCArMzMwLDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAg
IGZvciAobGV0IHN0cmF0ZWd5IG9mIHN0cmF0ZWdpZXMpCiAgICAgICAgICAgICAgICAgc3RyYXRl
Z3lJZE1hcFtzdHJhdGVneVsnaWQnXV0gPSBzdHJhdGVneTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1snc2VnbWVudGF0aW9uJ11dWyduYW1lJ10sICJ0
aW1lIHNlcmllcyBzZWdtZW50YXRpb24iKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzdHJh
dGVneUlkTWFwW3Rhc2tSb3dbJ3Rlc3RfcmFuZ2UnXV1bJ25hbWUnXSwgInN0dWRlbnQncyB0LXRl
c3QiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tS
b3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSddLCAidGltZSBzZXJpZXMgc2VnbWVudGF0aW9uIik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1hcFt0YXNrUm93Wyd0
ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3MgdC10ZXN0Iik7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0zNDYsNyArMzQ2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAg
ICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0
Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJv
dygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgp
LCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMg
PSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lk
J119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0
IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygncmVwb3NpdG9y
aWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdlYmtpdElkID0gd2Via2l0
UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM3MSw3ICszNzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUg
cGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmly
c3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0u
aWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMg
PSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lk
J119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0
IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygncmVwb3NpdG9y
aWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdlYmtpdElkID0gd2Via2l0
UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM4NywxOCArMzg3LDE4IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBp
JywgZnVuCiAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CiAKICAgICAgICAgY29uc3Qg
dGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0
KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCghdGFzay5oYXNQZW5kaW5nUmVx
dWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3Jt
KCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
bWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRh
c2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VU
eXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgp
LmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0
ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDApOwogICAgIH0pOwogCiAgICAgaXQoJ3No
b3VsZCBjcmVhdGUgYW4gYW5hbHlzaXMgdGFzayB3aXRoIHRlc3QgZ3JvdXAgd2hlbiBjb21taXQg
c2V0IGxpc3QgYW5kIGEgcG9zaXRpdmUgcmVwZXRpdGlvbiBjb3VudCBpcyBzcGVjaWZpZWQnLCBh
c3luYyAoKSA9PiB7CkBAIC00MjYsNyArNDI2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4K
ICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQp
OwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVz
dF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0
Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2Fp
dCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IG9uZVJl
dmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAgICAg
Y29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYy
Myd9fTsKQEAgLTQzNiwzOCArNDM2LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAg
ICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1b
J2lkJ119KTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNo
QnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUo
KSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAn
Y29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAg
YXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVz
ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEn
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rl
c3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwogICAgICAgICBhc3NlcnQu
b2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgYnVpbGRS
ZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJs
ZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
MF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSks
IHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBd
LnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXAp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRh
c2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBs
YXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZv
cm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNU
YXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwg
dGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgp
LCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRl
c3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0u
aXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmlzQnVpbGQo
KSk7CkBAIC00NzcsOCArNDc3LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAg
Y29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAg
ICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgp
OwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3
ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtp
dFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9y
eSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vj
b25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNp
b24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogfSk7CiAKQEAgLTUwMCw3ICs1MDAsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9y
bS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9
IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzog
dGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwog
ICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycs
IHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1
bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0
aCwgMik7CiAKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeVJvdyA9IGF3YWl0IGRiLnNl
bGVjdEZpcnN0Um93KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dlYktpdCd9KTsKICAgICAgICAg
Y29uc3Qgd2Via2l0SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93LmlkOwpAQCAtNTQ4LDcgKzU0OCw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBu
b2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQ
bGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0g
YXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0
ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAg
ICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywg
e2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVu
cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3Ro
LCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2
aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtb
d2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CkBAIC01NTgsMzggKzU1OCwzOCBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBw
cml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBd
WydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7CiAKICAgICAgICAgY29uc3QgdGFz
ayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0
YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0
cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hh
bmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5s
YWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRy
aWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5m
aXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUo
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFi
ZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
bWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAn
Q29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwg
J0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwg
dHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRy
aWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdn
ZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91
cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0
YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQo
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lz
VGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CiAKICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydC5v
ayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAtNTk5LDggKzU5OSw4IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZp
bGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3Np
dG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0SWQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5y
ZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRT
ZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkx
NjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRG
b3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0
b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIGFu
ZCByZXNwZWN0IHRoZSAibmVlZHNOb3RpZmljYXRpb24iIGZsYWcgaW4gdGhlIGh0dHAgcmVxdWVz
dCcsIGFzeW5jICgpID0+IHsKQEAgLTYyOCw3ICs2MjgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1
bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZv
cm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93
KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCks
IHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9
IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQn
XX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qg
b25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIyJ319OwogICAg
ICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAn
MTkxNjIzJ319OwpAQCAtNjM4LDM4ICs2MzgsMzggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkK
ICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVu
c1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAogICAgICAgICBjb25zdCB0
YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQo
IXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVl
c3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5j
aGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgp
LmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1l
dHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNr
LmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlw
ZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5s
YWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCks
ICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgp
LCAnQ29uZmlybScpOwogICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCks
IHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmln
Z2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3Jv
dXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3Jv
dXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwg
dGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlk
KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNp
c1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAgICAg
IGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQu
b2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTY3OSw3ICs2NzksNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9z
aXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSku
cmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5
MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0
Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRl
c3RzLmpzCmluZGV4IDA5Y2QzN2FiNDM2Y2IzYTdiYjdjYjhmODQ5YmNhOWRlMjI3YzE0NDEuLmRk
ZjQ5OTNhNGY4ZTE5NmQ5YzMyMzRlZjZkZGIxNTA3MjBiYzNhMTQgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRl
c3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtODMsNyAr
ODMsNyBAQCBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNpb25z
ID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAgICAgIG5hbWU6IG5hbWUsCiAg
ICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBAIC0xMzcsNyArMTM3LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZE5hbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWROYW1lJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTUzLDcgKzE1Myw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1l
OiAndGVzdCcsIHRhc2s6ICdmb28nLCBjb21taXRTZXRzOiBbWzFdXX0pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNjEsNyArMTYx
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAx
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3Qn
LCB0YXNrOiAxLCByZXBldGl0aW9uQ291bnQ6IDEsIGNvbW1pdFNldHM6IHt9fSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCBy
ZXBldGl0aW9uQ291bnQ6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NSw3
ICsxODUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCByZXBldGl0aW9uQ291
bnQ6ICdmb28nLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTkzLDcgKzE5Myw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEs
IHJlcGV0aXRpb25Db3VudDogLTUsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yMDEsNyArMjAxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgdGFzazogMSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIxMCw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6
IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdUcmlnZ2Vy
YWJsZU5vdEZvdW5kRm9yVGFzaycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMjAsNyArMjIwLDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIzMSw3ICsyMzEs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNl
dHM6IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7fV19KS50aGVuKChj
b250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNDIsNyArMjQyLDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRz
OiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fV19KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydGb28n
OiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JlcG9zaXRvcnlOb3RGb3Vu
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1JlcG9zaXRv
cnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MjYyLDcgKzI2Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IGNvbW1pdFNldHM6IHsnV2ViS2l0JzogWycxJ119fSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwpAQCAtMjc0LDcgKzI3NCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTog
J3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI4Niw3ICsyODYsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnQW1iaWd1b3VzUmV2aXNpb24nKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI5OCw3ICsyOTgsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
Jywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMTAsNyArMzEwLDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVXBsb2FkZWRGaWxlJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmlsZScp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzIxLDcgKzMyMSw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0
c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcG9zaXRvcnknKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwb3Np
dG9yeScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzMxLDcg
KzMzMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1p
dFNldHM6IHsnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ10sICdtYWNPUyc6IFsnMTVBMjg0
J119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21t
aXRTZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zNDUs
NyArMzQ1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdE
dXBsaWNhdGVUZXN0R3JvdXBOYW1lJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnRHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzYyLDcgKzM2Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkT3duZXJSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTM3OCw3ICszNzgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
SW52YWxpZENvbW1pdE93bmVyc2hpcCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGVycm9yLCAnSW52YWxpZENvbW1pdE93bmVyc2hpcCcpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMzkzLDE3ICszOTMsMTcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0
J30sIFtvd25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJl
dmlzaW9uOiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJ
ZCwgcmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigo
Y29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMn
XSwgJ09LJyk7CiAgICAgICAgICAgICBncm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBncm91cElkKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7
CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAg
ICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KHJl
cXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXJlcXVlc3RzWzBdLmlz
VGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAt
NDE4LDE0ICs0MTgsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKICAgICAgICAg
ICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNv
bnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAu
cmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtp
dCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
b3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkx
OTEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ0MCwxNyArNDQwLDE3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAge1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVBMjg0J30sIFtqc2Mu
aWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJSZXZpc2lvbjogJzE5Mjcz
Nid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25D
b3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElkKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgIGNvbnN0
IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1swXS5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1swXS5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTQ2NSwxMyArNDY1LDEz
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBzZXQw
ID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVx
dWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygp
KSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9z
aXRvcmllcygpKSwgW293bmVkSlNDLCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293
bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygp
KSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC00ODIsMjggKzQ4MiwyOCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAgICAgICAgICAgY29u
c3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlk
KCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBv
c2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIz
Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0c1sw
XS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3Jv
dXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAu
bmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDApKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MSkpOwog
ICAgICAgICAgICAgfSk7CkBAIC01MjEsMjQgKzUyMSwyNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVw
b3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cC5uYW1lKCksICd3ZWJraXQtb25seScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3dl
YmtpdC1vbmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cCwgcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwpA
QCAtNTUzLDMzICs1NTMsMzMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQg
PSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElk
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNl
cnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdy
b3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5
LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktp
dCcpWzBdOwogICAgICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5hbGwoKS5m
aWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdtYWNPUycpWzBdOwog
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwg
c2V0MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRC
eU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJr
aXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwg
c2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CiAKICAgICAgICAgICAgICAgICBjb25z
dCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnJl
cG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3Vw
KCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwg
cmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpLCBy
ZXBvc2l0b3J5R3JvdXApOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAu
YWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5h
Y2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwpAQCAtNjAwLDI4ICs2MDAsMjggQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCdd
OwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAg
ICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQzJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2ZkMWEyOWM2MzNiYTU3ZTg3
OTUzMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzJjZWRhNDVkM2NkNjNjZGU1OGQwZGJmNTc2NzcxNGUwM2Q5MDJlNDMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICc1NDcxYThkZGMxZjY2MTY2M2NjZmQxYTI5
YzYzM2JhNTdlODc5NTMzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwogCiAgICAgICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91
cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUo
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1lKCksICdzeXN0
ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMSA9IHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91
cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXBv
c2l0b3J5R3JvdXAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3VwMSwgcmVwb3NpdG9yeUdyb3VwMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJl
cG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJl
cG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTY0Miwz
MiArNjQyLDMyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVu
dFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0
U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKIAogICAgICAgICAgICAg
ICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAo
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1lKCks
ICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
c2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydCghcmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDEpKTsKIAogICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3Jv
dXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMS5uYW1l
KCksICd3ZWJraXQtb25seScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXAxLCByZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDEubmFtZSgpLCAnd2Via2l0LW9u
bHknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
MSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dCghcmVwb3NpdG9yeUdyb3VwMS5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQocmVwb3NpdG9yeUdyb3VwMS5hY2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwpAQCAt
NjkxLDI4ICs2OTEsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAgICAgICAgICAgICAgICAgY29u
c3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdP
bmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW1VwbG9hZGVk
RmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1cGxvYWRlZEZpbGUpXSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZv
clJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbVXBsb2FkZWRGaWxlLmVuc3VyZVNp
bmdsZXRvbih1cGxvYWRlZEZpbGVbJ2lkJ10sIHVwbG9hZGVkRmlsZSldKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3Np
dG9yeShtYWNvcykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC03NDAsNTAgKzc0MCw1MCBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50
KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5k
QnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQo
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlz
QnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAg
ICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAg
ICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1p
dEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBh
dGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0
KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0
MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTgwNSw2MCArODA1LDYw
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJ
ZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9
IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRz
Tm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwg
VGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVz
dCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0g
Z3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1
aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVp
bGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWls
ZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWls
ZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWls
ZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNCdWls
ZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rl
c3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVz
dCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgp
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVp
bGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0u
aXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCks
IHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0
KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3Nd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1h
Y29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnko
bWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVw
b3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9v
dHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtq
c2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
c2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVp
bGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1
ZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CkBAIC04ODAsNjEgKzg4MCw2MSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRH
cm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RH
cm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRl
c3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxh
dGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5z
b21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0
Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwg
ZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNU
ZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sx
XS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9
IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3Np
dG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBv
c2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnko
bWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAn
b3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcx
OTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KGpzYyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCks
IHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2Ms
IHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRv
cmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1
QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAg
ICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTk2Myw2OCArOTYzLDY4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBj
b250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5k
QnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQo
KSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNU
ZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNd
LmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVx
dWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNb
MV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29t
bWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNv
bW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5j
b21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0u
Y29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygp
KSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
NjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkoanNjKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNl
dDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNl
dCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5j
b21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmll
cygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworCisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworCisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTA1Nyw3NyArMTA1Nyw3NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0g
Y29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3Qu
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlk
KCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQ
bGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3Qo
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJl
cXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNv
bW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5j
b21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
Y29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVd
LmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbanNjLCBvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbanNjLCBvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLQotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZh
bHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7Ci0KLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAn
anNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0
KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtv
d25lZEpTQywganNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywganNjLCB3ZWJraXQsIG1hY29zXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10p
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwg
dHJ1ZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29z
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwg
ZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdv
d25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0
Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdq
c2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICdqc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMo
c2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTExNTQsNDUgKzExNTQsNDUgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRl
ZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmlj
YXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZp
bmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9y
bUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRl
c3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5i
dWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVp
bGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJd
LmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAg
ICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNv
bnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEu
cmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3Np
dG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRT
ZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10u
Y29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVw
b3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDEucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVB
Mjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTEyMTcsNyArMTIxNyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdQYXRjaE5vdEFjY2VwdGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsICdQYXRjaE5vdEFjY2VwdGVkJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xMjMwLDI0ICsxMjMwLDI0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9
IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0
ZXN0R3JvdXBzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJl
c3VsdFsndGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10s
IHRydWUpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3Ro
ZXIgdGFzaycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUo
KSwgJ290aGVyIHRhc2snKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgYXNzZXJ0Lm9rKGdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAg
IGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2V0
MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJl
cG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5j
dXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAgICB9KTsKIAogICAgIGl0KCdz
aG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSB0ZXN0IGdyb3VwIHdpdGggbmVlZHMtbm90aWZpY2F0
aW9uIGZsYWcgdW5zZXQnLCBhc3luYyAoKSA9PiB7CkBAIC0xMjU5LDI0ICsxMjU5LDI0IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsK
IAogICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0ZXN0R3JvdXBzXSA9IGF3YWl0IFByb21p
c2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3VsdFsndGFza0lkJ10pLCBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpXSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9
IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRl
ZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAxKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRT
ZXQoKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Vi
a2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAu
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGN1c3RvbSB0
ZXN0IGdyb3VwIGZvciBhbiBleGlzdGluZyBjdXN0b20gYW5hbHlzaXMgdGFzaycsICgpID0+IHsK
QEAgLTEyOTYsNDMgKzEyOTYsNDQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7bmFtZTogJ3Rlc3Qy
JywgdGFzazogcmVzdWx0Wyd0YXNrSWQnXSwgcGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZv
cm1JZCgpLCB0ZXN0LCByZXZpc2lvblNldHMsIHJlcGV0aXRpb25Db3VudDogMn0pOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHNlY29uZFJlc3VsdCA9IHJlc3Vs
dDsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFJlc3VsdFsndGFza0lkJ10sIHNlY29u
ZFJlc3VsdFsndGFza0lkJ10pOworICAgICAgICAgICAgLy8gcGcgZnVudGlvbnMgd2lsbCByZXR1
cm4gYWxsIGRhdGEgYXMgc3RyaW5nLCBzbyB3ZSBuZWVkIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbXBh
cmUgYXMgaW50CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZmlyc3RS
ZXN1bHRbJ3Rhc2tJZCddKSwgcGFyc2VJbnQoc2Vjb25kUmVzdWx0Wyd0YXNrSWQnXSkpOwogICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3Vs
dFsndGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRy
dWUpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
W2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDIpOwogICAgICAgICAg
ICAgVGVzdEdyb3VwLnNvcnRCeU5hbWUodGVzdEdyb3Vwcyk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzWzBdLm5hbWUoKSwgJ3Rlc3QxJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1swXS5uYW1lKCksICd0ZXN0MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50
KCksIDEpOwogICAgICAgICAgICAgbGV0IHJlcXVlc3RzID0gdGVzdEdyb3Vwc1swXS5idWlsZFJl
cXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAg
ICAgICAgICAgbGV0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAg
IGxldCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjMnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNb
MV0ubmFtZSgpLCAndGVzdDInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
WzFdLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworCisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1sxXS5uYW1lKCksICd0ZXN0MicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMV0ucmVwZXRpdGlvbkNvdW50
KCksIDIpOwogICAgICAgICAgICAgcmVxdWVzdHMgPSB0ZXN0R3JvdXBzWzFdLmJ1aWxkUmVxdWVz
dHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAg
ICAgICBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBzZXQxID0g
cmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
cXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcXVl
c3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Vi
a2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9v
dHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRl
LXJ1bi1zdGF0dXMuanMKaW5kZXggNDNiNDA3ZWNhOWRkMDI5ZGFhYWI4NDYzN2E2ZGMxMjU2M2Rm
MTU5MS4uYjU3YTAyMTFlNjg3ZjlhM2M3Mjc0Yzc3NDliNmQ1ZTFmZmFhZGExYSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11
cGF0ZS1ydW4tc3RhdHVzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcwpAQCAtMzksMTMgKzM5LDEz
IEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZp
c2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0
QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291
bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1sw
XVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgaWQgPSBydW5Sb3dzWzBd
WydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tl
bigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUzLDEwICs1MywxMCBAQCBkZXNjcmli
ZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rl
c3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hl
J10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtl
ZF9vdXRsaWVyJ10sIHRydWUpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjUsMTEgKzY1
LDExIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhS
ZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2Vs
ZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBSZW1vdGVBUEkuY2xlYXJDb29raWVz
KCk7CkBAIC03Nyw3ICs3Nyw3IEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1
bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlk
VG9rZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRU
b2tlbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODUsMTggKzg1LDE4IEBAIGRlc2Ny
aWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBm
YWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2Vu
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFJlbW90ZUFQ
SS5wb3N0SlNPTldpdGhTdGF0dXMoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cycs
IHt0b2tlbjogJ2JhZCd9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDUsMjMgKzEwNSwyMyBAQCBkZXNjcmliZSgi
L3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5z
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93
c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1zdGF0dXMnLCB7J3J1bic6
IHJ1blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVyJzogdHJ1ZX0pOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycp
OwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Nb
MF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycsIHsncnVuJzogcnVu
Um93c1swXVsnaWQnXSwgJ21hcmtlZE91dGxpZXInOiBmYWxzZX0pOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwog
ICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1b
J21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
Um93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICB9KTsKICAgICB9KTsK
IH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9w
cml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAt
dGVzdHMuanMKaW5kZXggMDIxMTZlZDhkOGJiZTkyMGRiZjE4ZDYxN2U4Zjk1OTMyYzc4MzU5OS4u
MjJmZDBmZWM2ZTM0YjE4YmMyMWE5ZGJkYTViOWExNWMxNDZhODU5MCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUt
dGVzdC1ncm91cC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCkBAIC03OSw3
ICs3OSw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRS
ZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKICAgICBjb25zdCBjb25maWdSb3cgPSBh
d2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRl
c3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgY29u
c3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKIAotICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIp
OworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgIGNvbnN0
IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlz
aXMtdGFzaycsIHsKICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgc3RhcnRSdW46IHRlc3RS
dW5zWzBdWydpZCddLApAQCAtMTY1LDIwICsxNjUsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2Vy
dGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29u
c3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlv
blNlbnRBdCgpKTsKIAogICAgICAgICBjb25zdCBub3RpZmljYXRpb25TZW50QXQgPSBuZXcgRGF0
ZTsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3Qt
Z3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbmVlZHNOb3RpZmljYXRpb246IGZhbHNl
LCBub3RpZmljYXRpb25TZW50QXQ6IG5vdGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpfSk7
CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZv
clRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRh
dGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBz
WzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCkudG9JU09TdHJpbmcoKSwgbm90aWZp
Y2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBk
YXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlvblNlbnRBdCgpLnRvSVNP
U3RyaW5nKCksIG5vdGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpKTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgIm5lZWRzX25vdGlmaWNhdGlvbiIgZmll
bGQgdG8gdHJ1ZScsIGFzeW5jICgpID0+IHsKQEAgLTE5MCwxOCArMTkwLDE4IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAg
ICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0
Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOwogICAgICAgICBhc3NlcnQub2soIWdy
b3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91cElk
LCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91
cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVl
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmlj
YXRpb24oKSwgdHJ1ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2Vu
dEF0KCkpOwogICAgIH0pOwogCkBAIC0yMTQsMTAgKzIxNCwxMCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3Qg
aW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAgICAgICAgIGFzc2VydC5vaygh
Z3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAgICAgfSk7CkBAIC0yMzEsMjIgKzIzMSwy
MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJ
ZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7
CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3Qt
Z3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1
ZX0pOwogCiAgICAgICAgIGxldCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91
cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKIAogICAg
ICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcs
IHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiBmYWxzZX0pOwog
CiAgICAgICAgIHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vw
cy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVw
ZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0
ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAgICAgfSk7CiAKICAg
ICBpdCgnc2hvdWxkIGNsZWFyICJtYXlfbmVlZF9tb3JlX3JlcXVlc3RzIiB3aGVuIGhpZGluZyBh
IHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CkBAIC0yNTgsMjIgKzI1OCwyMiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAg
ICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3Vs
dFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAKICAgICAgICAg
YXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3Jv
dXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1ZX0pOwogCiAgICAg
ICAgIGxldCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1
bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVl
ZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0
ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRH
cm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKIAogICAgICAgICBhd2FpdCBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5z
ZXJ0ZWRHcm91cElkLCBoaWRkZW46IHRydWV9KTsKIAogICAgICAgICB1cGRhdGVkR3JvdXBzID0g
YXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmlzSGlkZGVuKCksIHRydWUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJl
cXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91
cHNbMF0uaXNIaWRkZW4oKSwgdHJ1ZSk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5q
cwppbmRleCBlMGY4YTI4ZGZlNjEzMTI4OWE5MjYxNjlkMTE4OTE2OTBiZGZhZmIwLi40N2U5Mzhh
MjMzNDk4OTI3NGExYjkwYjdlYWQ3MTQ5YTdkMDk4NGQ5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRl
c3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKQEAgLTI3LDcgKzI3LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge30sIHt1c2VGb3Jt
RGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VG
b3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxlU2l6ZUxpbWl0RXhj
ZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdGaWxl
U2l6ZUxpbWl0RXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9
KTsKQEAgLTUxLDE1ICs1MSwxNSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2Vb
J3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2Fk
ZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlLnNpemUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZS5maWxlbmFtZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkw
NWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZS5zaGEyNTYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUu
aWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNp
emUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlLnNpemUp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29t
ZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1l
LCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdi
MjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTc5LDE2ICs3OSwxNiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlMiA9
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RB
bGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxl
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlMS5zaXpl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZp
bGUxLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lv
biwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUy
NTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2
ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2Fk
ZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh1cGxv
YWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sw
XS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUp
LCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZl
YzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0
YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBs
b2FkZWRGaWxlMS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTA4LDE2ICsx
MDgsMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNwb25zZVsndXBsb2FkZWRGaWxl
J107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdp
ZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmlsZTIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdk
NmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxl
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVk
RmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dz
WzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxl
MS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFt
ZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5m
aWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJl
ZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOSwyNiArMTM5LDI2IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxv
YWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJu
IGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigo
cm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHVwbG9hZGVkRmlsZTEuaWQs
IHVwbG9hZGVkRmlsZTIuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUx
LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmlkLCB1cGxvYWRlZEZpbGUy
LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUxLmlk
LCB1cGxvYWRlZEZpbGUyLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwg
cGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMV0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIuaWQpKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCB1cGxvYWRlZEZp
bGUyLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMi5maWxl
bmFtZSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5N
QiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUs
IHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5z
aXplLCB1cGxvYWRlZEZpbGUyLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uc2l6ZSwgcm93c1sxXS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3
N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNo
YTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwg
cGFyc2VJbnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMi5zaXpl
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaXplLCByb3dzWzFd
LnNpemUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAn
NTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFj
ZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2
LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTIuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1Niwgcm93c1sxXS5zaGEyNTYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZXh0ZW5zaW9uLCAnLmRhdCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDEyICsxNzAsMTIgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycs
ICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0u
c2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLm90aGVyLnRhci5nejUnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50YXIuZ3o1Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAy
NTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEw
MjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLm1pbWUs
ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFyLmd6NScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2
MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk1LDEzICsxOTUsMTMgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxl
cycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHJv
d3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sx
XS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5m
aWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sy
XS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxl
bmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93
c1swXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KQog
ICAgIH0pOwogCkBAIC0yMTcsMTQgKzIxNywxNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZv
cm1EYXRhOiB0cnVlfSk7CiAgICAgICAgIH0KICAgICAgICAgbGV0IHJvd3MgPSBhd2FpdCBkYi5z
ZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgc3BsaXRDb3VudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0
aCwgc3BsaXRDb3VudCk7CiAKICAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgVGVtcG9yYXJ5
RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZU9mU2l6ZUluTUIoJ2xpbWl0LmRhdCcsIGxpbWl0SW5NQiwg
J2EnKTsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZp
bGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSk7CiAgICAgICAgIHJv
d3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgc3BsaXRDb3VudCArIDEpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKICAgICAgICAgY29uc3QgZGVs
ZXRlZEZpbGVzID0gcm93cy5maWx0ZXIoKHJvdykgPT4gcm93WydkZWxldGVkX2F0J10pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoZGVsZXRlZEZpbGVzLmxlbmd0aCwgMTYpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZGVsZXRlZEZpbGVzLmxlbmd0aCwgMTYpOwogICAgIH0pOwogCiAgICAg
aXQoJ3Nob3VsZCBub3QgcHJ1bmUgZmlsZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCcsIGFzeW5j
ICgpID0+IHsKQEAgLTI4MSw3ICsyODEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
bG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3Jt
RGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVk
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdGaWxlU2l6
ZVF1b3RhRXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTMxMiwxMyArMzEyLDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSku
dGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRj
aCcpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLnBh
dGNoJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5k
YXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwg
J290aGVyLnBhdGNoJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5k
ZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJd
LmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MzQ2LDEzICszNDYsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVu
KChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAncm9vdC50YXIuZ3onKTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAncm9vdC50
YXIuZ3onKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzFdLmRlbGV0
ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZmls
ZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zODIs
NyArMzgyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1
cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJyk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0
aW9ucy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L2NvbW1vbi1vcGVyYXRpb25zLmpzCmluZGV4IDU4YjUxMTMxMTliZjYxMGM0N2UyODQ3ZmEwNzMw
N2UxZTVhZjJmNmYuLjE5YjljMTFmZjBjZjNjNGFmM2M5MjQzYTkwMzE5NDI5NjNmMzc0NTMgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L2NvbW1vbi1vcGVyYXRpb25zLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzCkBAIC01Niw3ICs1Niw3IEBA
IGFzeW5jIGZ1bmN0aW9uIGFzc2VydFRocm93cyhleHBlY3RlZEVycm9yLCB0ZXN0RnVuY3Rpb24p
CiAgICAgICAgICAgICBhd2FpdCB0ZXN0RnVuY3Rpb24oKQogICAgIH0gY2F0Y2goZXJyb3IpIHsK
ICAgICAgICAgdGhyb3duRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCBleHBlY3RlZEVycm9yKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCBl
eHBlY3RlZEVycm9yKTsKICAgICB9CiAgICAgYXNzZXJ0Lm9rKHRocm93bkV4Y2VwdGlvbik7CiB9
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy90ZW1wb3JhcnktZmlsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzCmluZGV4IDdiODRiMjRiZmU2YTg4Mzdl
ZWM3NDI3Yzg3NjBlNGIyMDFkZGIwYzcuLjI2MmIyZmQ0ZTE3MjBiNjM1NjY4YjY2ZTBkOGViODc1
ZDA4NjA4OWYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzCkBAIC0xMiw3ICsx
Miw3IEBAIGNsYXNzIFRlbXBvcmFyeUZpbGUgewogICAgICAgICBsZXQgbWVnYWJ5dGVTdHJpbmcg
PSBjaGFyYWN0ZXJUb0ZpbGw7CiAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykK
ICAgICAgICAgICAgIG1lZ2FieXRlU3RyaW5nID0gbWVnYWJ5dGVTdHJpbmcgKyBtZWdhYnl0ZVN0
cmluZzsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG1lZ2FieXRlU3RyaW5nLmxlbmd0aCwgMTAyNCAq
IDEwMjQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWVnYWJ5dGVTdHJpbmcubGVuZ3Ro
LCAxMDI0ICogMTAyNCk7CiAKICAgICAgICAgbGV0IGNvbnRlbnQgPSAnJzsKICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBzaXplSW5NQjsgaSsrKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRi
b3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKaW5kZXggNjA0ZGE3MzRkYTBjZTNiMGNlYzBiMDk1YWZm
OTAxNWNkZDk3NzFkOS4uNDUwZjBjM2E4MzM2ZjU0ZGZmMmRmZjhjMDE5NjhkOTA0ZWVlZjYwNiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1i
dWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBAIC0x
MSw4ICsxMSw4IEBAIGNvbnN0IE1vY2tMb2dnZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2Nr
LWxvZ2dlci5qcycpLk1vY2tMb2dnZXI7CiAKIGZ1bmN0aW9uIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKHJlcXVlc3QsIG1ldGhvZCwgdXJsLCBjb250ZW50KQogewotICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKLSAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC51cmwsIHVy
bCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QubWV0aG9kLCBtZXRob2QpOworICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKICAgICByZXF1ZXN0LnJlc29s
dmUoY29udGVudCk7CiB9CiAKQEAgLTQwLDQ1ICs0MCw0NSBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVp
bGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRh
dGEsIHsnaWQnOiA3MDIsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKLSAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiA3MDIsICdmb3JjZXNjaGVkdWxlcic6ICdmb3Jj
ZS1zb21lLWJ1aWxkZXItMSd9fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRh
dGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdw
YXJhbXMnOgorICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4x
MSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoeydidWlsZHMnOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigp
LnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVk
dWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApAQCAtOTcsMzggKzk3LDM4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1
aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Nyw3MCArMTQ3LDcwIEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5y
ZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA5OTl9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVy
IDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
OSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdn
ZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdn
ZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3Nj
aGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0zNDksNjIgKzM0
OSw2MiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVl
c3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZShNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1
ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5t
b2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDIzLDcwICs0MjMsNzAgQEAgZGVzY3JpYmUo
J0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
RGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
ZGF0YSwgeydpZCc6ICc3MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAn
L2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
ZGF0YSwgeydpZCc6ICc3MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEw
LjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxlcic6
ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3
fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWls
ZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQ
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5j
Q29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTA1LDUw
ICs1MDUsNTAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRS
ZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVk
dWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVx
dWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhU
d29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU3
MCw4NiArNTcwLDg2IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWlsZGJvdEJ1
aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJl
cXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcxMCcs
ICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcxMCcs
ICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAg
ICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRl
ci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29s
dmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
cmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcxMCwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
OSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
N10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1aWxkcycgOiBb
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxk
ZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAx
MjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjcxLDkx
ICs2NzEsOTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ucmVzb2x2ZSgnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAn
anNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9k
LCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUt
YnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzExJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3dr
JzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MTEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzExLCBidWls
ZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAxLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElk
OiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5yZXNvbHZlKE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1
aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdy
dW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAn
cnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dp
dGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVk
dWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMp
LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
Nzc2LDYwICs3NzYsNjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIHJl
cXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywg
J21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzog
JzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZl
LCAxMCkpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNb
Ml0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJl
c29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJv
dEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbNF0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRj
aEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVy
cygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEw
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC04NTQsMjcgKzg1NCwyNyBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5p
bmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMl0sICdQT1NU
JywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRh
dGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdw
YXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcx
OTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
LAogICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s0
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwK
ICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKQEAgLTg4MywyMCArODgzLDIwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzddLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVx
dWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdC
dWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKQEAgLTkxOCw1OCArOTE4LDU4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJh
YmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcw
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcw
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAg
ICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVp
bGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5m
ZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWls
ZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVx
dWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
OTg4LDQyICs5ODgsNDIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIApAQCAtMTA0NSwyMyArMTA0NSwyMyBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7
J2lkJzogJzcxMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVB
Mjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsKQEAgLTEwNzksNzEgKzEwNzks
NzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGxldCBidWlsZFJl
cXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLmZp
bmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVp
bGRzJzogW01vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSks
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAg
ICAgYXdhaXQgc3luY1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2Nl
cHRpbmdCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxk
UmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgbGV0IGFu
b3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJl
dXNlIHRoZSByb290cyBmcm9tIGEgY29tcGxldGVkIGJ1aWxkIHJlcXVlc3Qgd2l0aCB0aGUgc2Ft
ZSBjb21taXQgc2V0JywgYXN5bmMgKCkgPT4gewpAQCAtMTE1OCw3OCArMTE1OCw3OCBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJl
cXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CiAgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9y
aW5nUm9vdChhbm90aGVyQ29tbWl0U2V0KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1p
dFNldC5lcXVhbHMoYW5vdGhlckNvbW1pdFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgw
MH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
IDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHti
dWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CiAgICAgICAg
ICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2Nr
VGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1l
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVu
Z3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlk
cy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgZGVmZXIgc2NoZWR1bGluZyBhIGJ1aWxkIHJlcXVlc3QgaWYg
dGhlcmUgaXMgYSAicnVubmluZyIgYnVpbGQgcmVxdWVzdCB3aXRoIHNhbWUgY29tbWl0IHNldCwg
YnV0IHNob3VsZCBzY2hlZHVsZSB0aGUgYnVpbGQgcmVxdWVzdCBpZiAicnVubmluZyIgYnVpbGQg
cmVxdWVzdCB3aXRoIHNhbWUgY29tbWl0IHNldCBmYWlscyBsYXRlciBvbicsIGFzeW5jICgpID0+
IHsKQEAgLTEyNDQsMTE0ICsxMjQ0LDExNCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwog
ICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDAp
OwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
KCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgbGV0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQ29t
bWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGFz
c2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0
KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUo
eydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgw
MX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAg
ICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNo
QWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBi
dWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFu
b3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2ZhaWxl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMTIzKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSldfSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0uZGF0YSwgeydpZCc6IDkw
MCwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0uZGF0YSwgeydpZCc6ICc5MDAnLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6
ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ3drLXBhdGNoJzogJ2h0dHA6Ly9sb2Nh
bGhvc3Q6ODE4MC9hcGkvdXBsb2FkZWQtZmlsZS8xMDAudHh0JywKICAgICAgICAgICAgICAgICAn
YnVpbGQtcmVxdWVzdC1pZCc6ICc5MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTInfX0pOwogICAgICAgICB9KTsKQEAgLTEzNjgsNzggKzEzNjgsNzggQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwog
ICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVhbHNJZ25vcmlu
Z1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFjb21taXRT
ZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9
KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogOTAwLCBidWlsZGVySWQ6IDN9KV19KTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQgc3luY1By
b21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVyKCku
dHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJz
LzMvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzMvYnVpbGRzLzEyNCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIG5vdCB1cGRhdGUgYnVpbGQgcmVxdWVzdHMgZnJvbSBhbm90aGVyIHRyaWdnZXJhYmxl
JywgYXN5bmMgKCkgPT4gewpAQCAtMTUzNCwyMiArMTUzNCwyMiBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gTWFu
aWZlc3QuZmV0Y2goKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKICAgICAgICAgICAgICAgICB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmFsbCgpWzBdOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgp
LCAnYnVpbGQtd2Via2l0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5m
aW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHBs
YXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1
cmF0aW9uKHRlc3QsIHBsYXRmb3JtKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRm
b3JtKSwgbnVsbCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJs
ZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMo
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LXN2bicp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3Nd
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3lu
Y0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMgPSB7CkBAIC0xNTg0LDIyICsxNTg0LDIyIEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsK
IAogICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21l
VGVzdElkKCkpOwogICAgICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRC
eUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwogICAgICAgICAgICAgICAgIGxldCB0cmln
Z2VyYWJsZSA9IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRm
b3JtKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAn
YnVpbGQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdn
ZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLXdlYmtpdCcpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qg
Z3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJs
ZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5h
bWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdDdXN0b20gUm9vdHMnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5uYW1lKCks
ICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Z3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLmRlc2NyaXB0aW9uKCksICdDdXN0b20gUm9vdHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
c1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNv
c10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0
c0N1c3RvbVJvb3RzKCksIHRydWUpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
TW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKICAgICAgICAg
ICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IFsgXTsKQEAgLTE2MTEsMTMgKzE2MTEs
MTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxl
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwo
KS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2Vy
YWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFRy
aWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGUuYWxsKClbMF0u
cmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1l
KCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFu
ZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vw
c1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKICAgICAgICAgICAgIH0pCiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTYzMiwxMiArMTYzMiwxMiBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGdldEJ1
aWxkZXJOYW1lVG9JRE1hcFByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmdldEJ1aWxkZXJO
YW1lVG9JRE1hcCgpOwogICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBnZXRCdWls
ZGVyTmFtZVRvSURNYXBQcm9taXNlLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRl
ciJdLCAxKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBb
InNvbWUtYnVpbGRlci0xIl0sIDIpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
ZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIDIiXSwgMykKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJvdGhlciBidWlsZGVyIl0sIDQpCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSB0ZXN0ZXIiXSwg
NSkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJhbm90
aGVyIHRlc3RlciJdLCA2KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRlciJdLCAxKQorICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUtYnVpbGRlci0xIl0sIDIpCisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29t
ZSBidWlsZGVyIDIiXSwgMykKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRlck5hbWVUb0lETWFwWyJvdGhlciBidWlsZGVyIl0sIDQpCisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSB0ZXN0ZXIiXSwgNSkKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJhbm90
aGVyIHRlc3RlciJdLCA2KQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1v
cy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCmluZGV4IDdiMmU1MTdjMzFm
MDU1OWExMjEzYzExMmM0OWQ0YWFkYmQyNjcxZDMuLmUzMTMzY2E0ZDBlNmFiZTViYTc1YjI4MWJi
N2FhMGI1YzNhYzg2MWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMu
anMKQEAgLTExMCwxMyArMTEwLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0
aW9uKCkgewogICAgIGRlc2NyaWJlKCdPU0J1aWxkZXJGZXRjaGVyLl9jb21wdXRlT3JkZXInLCAo
KSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgY2FsY3VsYXRlIHRoZSByaWdodCBvcmRlciBmb3Ig
YSBnaXZlbiB2YWxpZCByZXZpc2lvbicsICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGZldGNo
ZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZl
dGNoZXIuX2NvbXB1dGVPcmRlcignU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNkQzMjEnKSwgMTYwMzAz
MjEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcx
NmQzMjEnKSwgMTYwMzAzMjEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5f
Y29tcHV0ZU9yZGVyKCcxNkQzMjF6JyksIDE2MDMwMzIxMjYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxWicpLCAxNjAzMDMyMTI2KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEyLjMgMTZE
MzInKSwgMTYwMzAwMzIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29t
cHV0ZU9yZGVyKCcxMC4xMi4zIFNpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignU2llcnJhMTZEMzIn
KSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5f
Y29tcHV0ZU9yZGVyKCcxNkQzMjEnKSwgMTYwMzAzMjEwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNmQzMjEnKSwgMTYwMzAzMjEwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcx
NkQzMjF6JyksIDE2MDMwMzIxMjYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZl
dGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxWicpLCAxNjAzMDMyMTI2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEyLjMgMTZEMzIn
KSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5f
Y29tcHV0ZU9yZGVyKCcxMC4xMi4zIFNpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDApOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93IGFzc2VydGlvbiBlcnJvciB3aGVuIGdp
dmVuIGEgaW52YWxpZCByZXZpc2lvbicsICgpID0+IHsKQEAgLTE0MSwxMyArMTQxLDEzIEBAIGRl
c2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qg
ZmV0Y2hDb21taXRzUHJvbWlzZSA9IGZldGNoZXIuX2NvbW1pdHNGb3JBdmFpbGFibGVCdWlsZHMo
WydsaXN0JywgJ2J1aWxkMSddLCAnXlxcLiokJyk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRG
b3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJv
Y2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQx
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1v
Y2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0cyA9IHthbGxSZXZpc2lvbnM6IFsi
MTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sIGNvbW1pdHNXaXRoVGVzdGFiaWxpdHk6IHt9
fTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29s
dmUoJzE2RDMyMVxuMTZFMzIxelxuXG4xNkYzMjEnKTsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
SW5mbyA9IGF3YWl0IGZldGNoQ29tbWl0c1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGV4cGVjdGVkUmVzdWx0cywgYnVpbGRJbmZvKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoZXhwZWN0ZWRSZXN1bHRzLCBidWlsZEluZm8pOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRoZSBjb21tYW5kIG91dHB1dCBhcyBKU09OIGZv
cm1hdCcsIGFzeW5jICgpID0+IHsKQEAgLTE1NywxMyArMTU3LDEzIEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgZmV0Y2hDb21taXRz
UHJvbWlzZSA9IGZldGNoZXIuX2NvbW1pdHNGb3JBdmFpbGFibGVCdWlsZHMoWydsaXN0JywgJ2J1
aWxkMSddKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3V0cHV0T2JqZWN0ID0ge2FsbFJldmlzaW9uczogWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYz
MjEiXSwgY29tbWl0c1dpdGhUZXN0YWJpbGl0eTogeyIxNkQzMjEiOiAiUGFuaWMifX07CiAgICAg
ICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KG91dHB1dE9iamVjdCkpOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJbmZvID0g
YXdhaXQgZmV0Y2hDb21taXRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3V0cHV0T2JqZWN0LCBidWlsZEluZm8pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChvdXRwdXRPYmplY3QsIGJ1aWxkSW5mbyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNzMsOSArMTczLDkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKICAgICAgICAgICAg
IGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGwsIG51bGwsIE1vY2tT
dWJwcm9jZXNzLCBsb2dnZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGZldGNoZXIu
X2NvbW1pdHNXaXRoaW5SYW5nZShbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCAiT1NY
IiwgMTYwNDAwMDAwMCwgMTYwNjAwMDAwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBd
LCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMy
MXonfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBvc2l0
b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAsIHJldmlzaW9uOiAnMTZGMzIxJ30pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1swXSwge3JlcG9zaXRvcnk6ICdPU1gn
LCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcxNkUzMjF6J30pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzFdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9y
ZGVyOiAxNjA1MDMyMTAwLCByZXZpc2lvbjogJzE2RjMyMSd9KTsKIAogICAgICAgICB9KTsKIApA
QCAtMTgzLDggKzE4Myw4IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAg
ICBjb25zdCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBNb2Nr
U3VicHJvY2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBmZXRjaGVy
Ll9jb21taXRzV2l0aGluUmFuZ2UoWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwgIk9T
WCIsIDE2MDQwMDAwMDAsIDE2MDUwMDAwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1sw
XSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcxNkUz
MjF6J30pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1swXSwge3JlcG9z
aXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcxNkUzMjF6J30pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk2LDI0ICsxOTYsMjQgQEAgZGVzY3JpYmUoJ09T
QnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBhZGRvd25lZENv
bW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZChbb3N4Q29tbWl0
LCBhbm90aGVyT1NYQ29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSk7
CiAKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3Vi
cHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMy
J10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1N1YnByb2Nlc3MucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1
YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnBy
b2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZFMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzMidd
KTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9taXNlOwogICAgICAgICAgICAgfSkudGhl
bigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMF1bJ3JlcG9z
aXRvcnknXSwgb3N4Q29tbWl0WydyZXBvc2l0b3J5J10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRzWzBdWydyZXZpc2lvbiddLCBvc3hDb21taXRbJ3JldmlzaW9uJ10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1swXVsnb3duZWRDb21taXRz
J10sIG93bmVkQ29tbWl0V2l0aFdlYktpdCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHNbMV1bJ3JlcG9zaXRvcnknXSwgYW5vdGhlck9TWENvbW1pdFsncmVwb3NpdG9yeSdd
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1sxXVsncmV2aXNpb24nXSwg
YW5vdGhlck9TWENvbW1pdFsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXN1bHRzWzFdWydvd25lZENvbW1pdHMnXSwgYW5vdGhlcm93bmVkQ29tbWl0V2l0
aFdlYktpdCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0c1swXVsn
cmVwb3NpdG9yeSddLCBvc3hDb21taXRbJ3JlcG9zaXRvcnknXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMF1bJ3JldmlzaW9uJ10sIG9zeENvbW1pdFsncmV2
aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRz
WzBdWydvd25lZENvbW1pdHMnXSwgb3duZWRDb21taXRXaXRoV2ViS2l0KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0c1sxXVsncmVwb3NpdG9yeSddLCBhbm90aGVy
T1NYQ29tbWl0WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRzWzFdWydyZXZpc2lvbiddLCBhbm90aGVyT1NYQ29tbWl0WydyZXZpc2lvbidd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ293
bmVkQ29tbWl0cyddLCBhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIApAQCAtMjI0LDE1ICsyMjQsMTUgQEAgZGVzY3JpYmUoJ09TQnVp
bGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBhZGRvd25lZENvbW1p
dFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZChbb3N4Q29tbWl0XSwg
Wydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSkKIAogICAgICAgICAgICAgcmV0dXJu
IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMy
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1p
dCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAgICAgICAgICAgICAg
TW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVqZWN0KCdGYWlsZWQgZ2V0dGluZyBvd25l
ZC1jb21taXQnKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBhZGRvd25lZENvbW1pdFByb21p
c2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICAgICAgfSwgKGVycm9yX291dHB1dCkg
PT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZXJyb3Jfb3V0cHV0KTsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yX291dHB1dCwgJ0ZhaWxlZCBnZXR0aW5nIG93
bmVkLWNvbW1pdCcpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJy
b3Jfb3V0cHV0LCAnRmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0Jyk7CiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yNDUsMTUgKzI0NSwxNSBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1
aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKQogCiAg
ICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsK
ICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNvbHZlKCd7
IldlYktpdCI6eyJSYW5kb21LZXkiOiAiUmFuZG9tVmFsdWUifX0nKTsKIAogICAgICAgICAgICAg
ICAgIHJldHVybiBhZGRvd25lZENvbW1pdFByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgICAgICAgICAgfSwgKGVycm9yX291dHB1dCkgPT4gewogICAgICAgICAgICAgICAgICAgICBh
c3NlcnQoZXJyb3Jfb3V0cHV0KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yX291dHB1dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3IgW0VSUl9BU1NFUlRJT05dJyk7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvcl9vdXRwdXQubmFtZSwgJ0Fz
c2VydGlvbkVycm9yJyk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSkKQEAgLTI5MCw0MCArMjkwLDQwIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcics
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09T
WC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwg
MTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocGFyc2VJbnQocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10pKSwgMTYwMzAwNjgwMCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQw
MDMzMDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZv
Y2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAg
ICAgICAgICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0Y2hB
dmFpbGFibGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRp
b25Qcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2
RDY4XG5TaWVycmExNkQ2OVxuJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9j
ZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2
OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmExNkUz
M1xuU2llcnJhMTZFMzNoXG5TaWVycmExNkUzNCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAn
U2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zvcics
ICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShh
bm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CkBAIC0zMzEsMjkgKzMzMSwyOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZl
dGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBmZXRjaFJlcG9ydEFuZFVwZGF0
ZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxk
cyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAg
ICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZENjhcblNpZXJy
YTE2RDY5XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRB
bmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3Ry
aW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2RTMzXG5TaWVycmEx
NkUzM2hcblNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9j
ZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUz
M2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgaW52b2Nh
dGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2Vi
S2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewpAQCAtMzcwLDM0ICszNzAsMzQgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRj
aGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNo
ID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzNCA9IHJl
c3VsdHNbNF07CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9y
eS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0
b3J5WzBdWydvd25lciddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jl
cG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVw
b3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25lcidd
LCAxMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZE
NjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgp
OwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZF
MzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBd
WydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2
MDMwMDY5MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAw
MCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDIzLDQwICs0MjMsNDAgQEAgZGVzY3Jp
YmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2
MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkQ2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgICAgICBjb25zdCB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNo
ZXIuX2ZldGNoQXZhaWxhYmxlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRG
b3JJbnZvY2F0aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZE
eHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNP
Ti5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zvcics
ICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4
IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsK
ICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJl
c3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNz
LnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENv
bW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTQ2NCwyOSArNDY0LDI5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlz
ZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52
b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0
JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAg
ICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVk
Q29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vz
cy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVz
ZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90
aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10p
OwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJv
bWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNTAzLDM0ICs1MDMsMzQgQEAg
ZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg
Y29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgICAgICBjb25z
dCBvc3hDb21taXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293
bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3Np
dG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NS
ZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5
J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBd
WydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVw
b3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQw
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTU1
LDQxICs1NTUsNDEgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAK
ICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89
MTYwMzA5OTkwMCcpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAgICAgICAg
ICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKIAogICAgICAgICAgICAgY29u
c3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVw
ZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3Mud2FpdEZvcklu
dm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICBhd2FpdCBNb2Nr
U3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAn
Zm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1p
dCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICBpbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkp
OwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5z
dHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgYXdhaXQgTW9ja1N1
YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICBpbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhX
ZWJLaXQpKTsKICAgICAgICAgICAgIGF3YWl0ICBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsK
IAogICAgICAgICAgICAgYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwogCkBAIC02
MDEsNDMgKzYwMSw0MyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IGF3YWl0IGRiLnNlbGVjdFJvd3Mo
J2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzaCd9KTsKICAgICAgICAgICAgIGNv
bnN0IG9zeENvbW1pdDE2RTM0ID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2
aXNpb24nOiAnU2llcnJhMTZFMzQnfSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBv
c2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjgubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVyJ10sIDE2MDMwMDY4
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWyd0ZXN0YWJp
bGl0eSddLCAiUGFuaWMiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkQ2OC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXInXSksIDE2MDMwMDY4MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWyd0ZXN0
YWJpbGl0eSddLCAiUGFuaWMiKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZE
NjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkQ2OVswXVsndGVzdGFiaWxpdHknXSwgIlNwaW4gQ1BVIik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9y
eSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29t
bWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsndGVzdGFiaWxpdHknXSwgIlNwaW4gQ1BVIik7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMS5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsnb3JkZXIn
XSwgMTYwNDAwMzEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFb
MF1bJ3Rlc3RhYmlsaXR5J10sICJXZWJLaXQgY3Jhc2hlcyIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMxLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMxWzBdWydv
cmRlciddKSwgMTYwNDAwMzEwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZFMzFbMF1bJ3Rlc3RhYmlsaXR5J10sICJXZWJLaXQgY3Jhc2hlcyIpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2
MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMz
aC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwg
MTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZF
MzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAog
ICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMw
OTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCByZXBvcnQgY29tbWl0cyB3aXRob3V0IG93bmVkLWNvbW1pdHMgaWYgIm93bmVkQ29t
bWl0Q29tbWFuZCIgaXMgbm90IHNwZWNpZmllZCBpbiBjb25maWcnLCBhc3luYyAoKSA9PiB7CkBA
IC02NTksMjUgKzY1OSwyNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAx
MCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBv
cnRlZCc6IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAw
NjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAz
MDA2ODAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAw
MDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwog
CiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJv
Y2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRB
bmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwog
ICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4
IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVy
cmFEKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQg
PSBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC02OTQsMzAgKzY5NCwzMCBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVw
b3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChq
c2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1b
J29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMz
aFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0
WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10s
IDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
KSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209
MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQw
MCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVwb3J0IGNvbW1pdHMgd2l0
aGluIHNwZWNpZmllZCByZXZpc2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsKQEAgLTczOCwyNSAr
NzM4LDI1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNp
b24nOiAnU2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1
ZX0pXSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMw
MDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwog
CiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYw
NDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAg
ICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9t
aXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogCiAgICAgICAgICAg
ICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAog
ICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlv
bigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBi
dWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5n
aWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZl
dGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTc3MywzMCArNzczLDMwIEBAIGRlc2NyaWJl
KCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29t
bWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0
ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRv
cnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxl
bmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9y
eS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRv
cnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSks
IDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNo
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRl
ciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVy
J10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJv
bT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2
OTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAw
JnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1cGRhdGUgY29tbWl0cyB3aXRoaW4gc3BlY2lm
aWVkIHJldmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpAQCAtODE3LDI5ICs4MTcsMjkgQEAg
ZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVy
cmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0cnVlfSldKTsKIAog
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0x
NjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAg
ICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZF
MzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgIGNvbnN0IHdh
aXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9u
KCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRj
aGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogCiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
SW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAgICAgICAgYXdh
aXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JT
aWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoQXZhaWxhYmxlQnVp
bGRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQuY29tbWl0c1RvVXBk
YXRlLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmNv
bW1pdHNUb1VwZGF0ZS5sZW5ndGgsIDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIHVzZSAibGFzdC1yZXBvcnRlZCIgb3JkZXIgKyAxIGFzICJtaW5PcmRlciInLCBhc3luYyAo
KSA9PiB7CkBAIC04NTMsMTUgKzg1MywxNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVw
b3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZEMTAwJywgJ29yZGVyJzogMTYwMzAx
MDAwMCwgJ3JlcG9ydGVkJzogdHJ1ZX0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAw
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMTAwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDAnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDMwMTAwMDApOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlv
blByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgY29uc3QgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVw
ZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNl
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWls
ZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNo
QW5kUmVwb3J0UHJvbWlzZTsKQEAgLTg3NiwxOSArODc2LDE5IEBAIGRlc2NyaWJlKCdPU0J1aWxk
RmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZENjkg
PSByZXN1bHRzWzJdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAwYSA9IHJlc3Vs
dHNbM107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0
aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0
aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgs
IDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0
aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwYVswXVsncmVw
b3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAw
YVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZEMTAwYS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDEwMGFbMF1bJ29yZGVy
J10pLCAxNjAzMDEwMDAxKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJv
bT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwYScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDEw
MDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwYScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
MzAxMDAwMSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXNlIG1pblJldmlz
aW9uIGluIHRoZSBjb25maWcgaWYgdGhlcmUgaXMgbm8gY29tbWl0JywgYXN5bmMgKCkgPT4gewpA
QCAtOTAxLDEzICs5MDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAx
MCwgJ25hbWUnOiAnT1NYJ30pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMCk7CiAKICAgICAgICAgICAgIGNv
bnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2Ug
PSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBhd2Fp
dCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAg
ICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAtOTI0
LDIzICs5MjQsMjMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDAgPSByZXN1bHRzWzNdOwogICAgICAgICAg
ICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAxID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwWzBdWydvcmRlciddLCAxNjAzMDEwMDAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDAubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDBbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSksIDE2MDMwMTAwMDApOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDFbMF1bJ29yZGVyJ10sIDE2MDMwMTAx
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMVsw
XVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddKSwgMTYwMzAxMDEwMCk7CiAKICAgICAg
ICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAw
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgJ1NpZXJyYTE2RDEwMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDEwMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZEMTAxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAwKTsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCBzdG9wIHJlcG9ydGluZyBpZiBhbnkgY3VzdG9tIGNvbW1hbmQgZmFp
bHMnLCAoKSA9PiB7CkBAIC05NjMsNjAgKzk2Myw2MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVw
b3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMw
Nyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2Nh
dGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAg
ICAgICAgICAgIGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRV
cGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Q
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4
eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShy
ZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vz
cy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjkn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZF
eHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10p
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
cmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nl
c3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2
RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9u
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogICAgICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlamVjdCgnQ29tbWFuZCBmYWlsZWQnKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmV0Y2hBbmRSZXBvcnRQcm9taXNlLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxlZCcpOworICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0LCAnQ29tbWFuZCBmYWlsZWQnKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10s
IDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
KSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkKICAgICB9KQpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5j
LWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCmlu
ZGV4IDcxYTFkNTM5ZWI2MmZlZjJhZWI3Y2UwYzE5NjQwYjE2NGMyZmNmMTAuLjY5YTkxZjVlNjEx
MzA2ZWFkYjhmMjEyN2I4OGQwNWRlYWI5NWIxMGIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xz
LXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKQEAgLTE0NSw4ICsxNDUsOCBAQCBj
b25zdCBjb25maWdXaXRoVHdvVGVzdGVycyA9IHsKIAogZnVuY3Rpb24gYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRlbnRUb1Jlc29sdmUpCiB7Ci0gICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9kLCBtZXRob2QpOwotICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5tZXRob2Qs
IG1ldGhvZCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOwogICAg
IHJlcXVlc3QucmVzb2x2ZShjb250ZW50VG9SZXNvbHZlKTsKIH0KIApAQCAtMjY1LDIzICsyNjUs
MjMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJyksIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0
YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVlc3RJZDogc2Vjb25k
VGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWls
ZFJlcXVlc3RJZDogZmlyc3RUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0pKTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdhbm90aGVyIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwog
ICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6
IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElk
OiBzZWNvbmRUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0pLApAQCAtMjkyLDQ1ICsyOTIsNDUg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYW5vdGhlclRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDQsMzYgKzM0NCwzNiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBjb25zdCB0YXNrSWQg
PSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICBsZXQgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFz
c2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgbGV0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNj
cmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgbGV0IG90aGVyQ29tbWl0U2V0ID0g
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKQEAgLTM4MSwzMiArMzgxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcs
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVk
LWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWls
ZHMnfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLAogICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0p
KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVy
SURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVy
OiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0J1aWxkaW5nIFdlYktpdCd9
KSk7CkBAIC00MTUsMzkgKzQxNSwzOSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKIAogICAgICAgICBsZXQgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0J1aWxkaW5nIFdlYktpdCcpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAt
NDU2LDI2ICs0NTYsMjYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2NyaXB0
aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwg
YnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGlsaW5n
IFdURid9KSk7CkBAIC00ODQsODAgKzQ4NCw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBm
aXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RG
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRj
aCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0
KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICBhd2FpdCB1cGxvYWRSb290
KGJ1aWxkUmVxdWVzdC5pZCgpLCBmaXJzdEJ1aWxkTnVtYmVyKTsKKyAgICAgICAgYXdhaXQgdXBs
b2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIGZpcnN0QnVpbGROdW1iZXIpOwog
CiAgICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZp
cnN0QnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGlu
ZyBXVEYnKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBh
dGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAg
ICAgICBsZXQgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwpAQCAtNTY2LDMyICs1NjYsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVy
fSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWls
ZHMnLCAnT0snKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7
J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6
CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcy
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWls
ZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTYwMyw4
MyArNjAzLDgzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAg
ICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJz
dEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5k
YXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
Jywgc2Vjb25kQnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKLSAgICAgICAgYXdhaXQgdXBsb2FkUm9v
dChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICBhd2FpdCB1cGxvYWRSb290
KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogCiAgICAgICAgIHRlc3RH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmly
c3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAg
ICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJX
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7
CiAgICAgfSk7CiAKQEAgLTY5NCwzNCArNjk0LDM0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAg
ICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtNzI5LDMyICs3Mjks
MzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7
J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQt
ZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxk
cyd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC03NjMsNzYgKzc2Myw3NiBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEy
Myk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3Qu
aWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC04NDEsMzIgKzg0MSwzMiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMics
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVp
bGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAt
ODc4LDgwICs4NzgsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAg
ICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAg
ICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0Lmlk
KCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRl
c3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNo
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRS
b290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRh
dCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTk2
NywzNCArOTY3LDM0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRl
c3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9
IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtMTAwMiwzMiArMTAwMiwzMiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywg
J3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRz
JywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ3BsYXRmb3JtLW5h
bWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJ
ZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVz
dElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC0x
MDM2LDc2ICsxMDM2LDc2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNv
bW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChi
dWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBh
cnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
ICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3Rd
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTExMTQs
MzIgKzExMTQsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAog
ICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NU
JywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAn
anNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAg
ICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2No
ZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWls
ZC13ayc6IHRydWUsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0x
MTUxLDgwICsxMTUxLDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAg
ICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
b3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAg
ICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0
Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5k
YXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0x
MjQxLDIyICsxMjQxLDIyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9
IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmlkKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdC5pZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3Qu
aWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KDEsIDQ1KTsKQEAgLTEyNjUsMzkg
KzEyNjUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogCiAgICAgICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAg
ICAgICAgIGNvbnN0IHJvb3RzID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxl
cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvb3RzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGZp
cnN0Um9vdCA9IHJvb3RzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyb290c1sw
XS5maWxlbmFtZSgpLCAncm9vdDQ1LmRhdCcpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
b3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyUm9vdHMgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlclJvb3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlclJvb3RzWzBdLmZpbGVuYW1lKCksICdyb290NDYuZGF0Jyk7CiAgICAgICAgICAgICBz
eW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2Vy
YWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzog
WwpAQCAtMTMwNywxMyArMTMwNywxMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZd
LCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi10ZXN0cycsICdPSycp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzog
JzMnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICczJywnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItdGVzdHMnLCAncm9v
dHMnOiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290LnVybCgpfV0pfX0pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIFsKICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklE
Rm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwKICAgICAgICAgICAg
IF0pOwpAQCAtMTMyMSw3ICsxMzIxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAg
ICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTM0MywzNiArMTM0MywzNiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVU
ZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAg
ICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQo
KSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKSwgdXBsb2FkUm9vdCgxLCAxMjMpXSk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTM4
MywxMyArMTM4MywxMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
OSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTQw
MSwyNCArMTQwMSwyNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKIAogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMSk7CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMDAyKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEwMDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTQzMiw0OSArMTQzMiw0OSBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVUZXN0R3JvdXBX
aXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAg
ICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkp
LCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnb3RoZXIgYnVp
bGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IDMxMn0pKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicsIDIpLApAQCAtMTQ4MywyOCArMTQ4MywyOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXFldXN0cyA9IHRlc3RHcm91cHNb
MF0uYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxZXVzdHNbMF0u
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0c1swXS5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNMYWJl
bCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1sw
XS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhlciBidWlsZGVyJywgMzEyKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3Rh
dHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxZXVzdHNbMF0uc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnb3RoZXIgYnVp
bGRlcicsIDMxMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVz
dHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxZXVz
dHNbMV0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0c1sxXS5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0
dXNMYWJlbCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFl
dXN0c1sxXS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXFldXN0c1sxXS5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gYXNzZXJ0VGVzdEJ1aWxkSGFz
RmFpbGVkKHJlcXVlc3QpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFy
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdGYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIGFzc2VydFRlc3RCdWlsZEhhc0ZhaWxlZChidWlsZFJlcWV1c3RzWzJdKTsKQEAg
LTE1MjQsMzYgKzE1MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJl
cG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dl
cmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpA
QCAtMTU2MSwzMiArMTU2MSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAn
T0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydp
ZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgog
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScs
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7
IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJKYXZh
U2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1
aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKQEAgLTE1OTUsODUgKzE1OTUsODUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5u
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAg
ICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMykudGhlbigoKSA9
PiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAn
V2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEw
VDAyOjU0OjA5LjY2NicpKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50
KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKS50aGVuKCgpID0+IHVwbG9hZFJvb3QocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3du
ZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2
NicpKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3Qg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
OwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwpAQCAtMTY4MiwzMiArMTY4MiwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1
ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywg
J09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsn
aWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoK
ICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzIn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBg
eyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2
YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTE3MTks
OTUgKzE3MTksOTUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAg
ICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9v
dChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChvdGhl
ckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3du
ZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2
NicpKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCkpLCAxMjQpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1
aWxkUmVxdWVzdC5pZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVk
UmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYn
KSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAg
ICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsK
ICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCBvdGhl
cldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IG90
aGVySlNDUm9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckpTQ1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAncm9v
dDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckpTQ1Jvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290LCBvdGhlckpT
Q1Jvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xODI0LDM2ICsxODI0LDM2IEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdGFza0lk
ID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAg
ICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRK
U0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNv
bW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTE4NjEsMzIgKzE4NjEsMzIgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzog
JzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoi
b3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlz
aW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDog
TW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElk
OiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVy
SURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC0xODk1
LDEyNiArMTg5NSwxMjYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBj
b21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9v
dChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBj
b25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBv
c2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVx
dWVzdC5pZCgpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0
b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOworICAg
ICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAx
MjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNj
cmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlND
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSgob3duZWRKU0MpKTsKICAgICAgICAgICAgIGFzc2Vy
dChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtp
dFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVy
QnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTIwMjMsMzIgKzIwMjMs
MzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3
ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lv
biI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJS
ZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewog
ICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0yMDYwLDE0MSArMjA2MCwxNDEgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBj
b25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBv
c2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NS
b290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3Qs
IGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpLCAxMjQpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAg
ICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25l
ZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
ICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3Rd
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNv
bW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtp
dFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQu
ZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7Ci0gICAgICAgICAgICByZXR1cm4gdXBsb2Fk
Um9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2Vi
S2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAy
OjU0OjA5LjY2NicpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBv
d25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDku
NjY2Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCBv
dGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
V2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0
IG90aGVySlNDUm9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckpTQ1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckpTQ1Jv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290LCBvdGhl
ckpTQ1Jvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwppbmRleCAzMGJkMjVmMGFj
ZDAxN2U0NWY4YTgwODFmY2VlMWI4ZDA5N2Y2ODgxLi41MmNiMWVjMjQzYjlmMTY1ZGY3ZGM3ZDY5
MGU0MDdhMDgwOWVlODRhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgQnVpbGRi
b3RCdWlsZEVudHJ5IHsKIAogICAgIGluaXRpYWxpemUoc3luY2VyLCByYXdEYXRhKQogICAgIHsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwgcmF3RGF0YVsnYnVpbGRl
cmlkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoc3luY2VyLmJ1aWxk
ZXJJRCgpKSwgcGFyc2VJbnQocmF3RGF0YVsnYnVpbGRlcmlkJ10pKTsKIAogICAgICAgICB0aGlz
Ll9zeW5jZXIgPSBzeW5jZXI7CiAgICAgICAgIHRoaXMuX2J1aWxkYm90QnVpbGRSZXF1ZXN0SWQg
PSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddOwpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBCdWls
ZGJvdEJ1aWxkRW50cnkgewogCiAgICAgYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRhdGVJc05lZWRl
ZChyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QuaWQoKSwgdGhp
cy5fYnVpbGRSZXF1ZXN0SWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5p
ZCgpLCB0aGlzLl9idWlsZFJlcXVlc3RJZCk7CiAgICAgICAgIGlmICghcmVxdWVzdCkKICAgICAg
ICAgICAgIHJldHVybiBudWxsOwogICAgICAgICBpZiAodGhpcy5pc1BlbmRpbmcoKSkgewpAQCAt
MTE3LDcgKzExNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgbGV0IHByb3Bl
cnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlcXVl
c3RzSW5Hcm91cCk7CiAKICAgICAgICAgYXNzZXJ0KHByb3BlcnRpZXNbJ2ZvcmNlc2NoZWR1bGVy
J10sIGBmb3JjZXNjaGVkdWxlciB3YXMgbm90IHNwZWNpZmllZCBpbiBidWlsZGJvdCBwcm9wZXJ0
aWVzIGZvciBidWlsZCByZXF1ZXN0ICR7bmV3UmVxdWVzdC5pZCgpfSBvbiBwbGF0Zm9ybSAiJHtu
ZXdSZXF1ZXN0LnBsYXRmb3JtKCkubmFtZSgpfSIgZm9yIGJ1aWxkZXIgIiR7dGhpcy5idWlsZGVy
TmFtZSgpfSJgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKCF0aGlzLl9zbGF2ZVByb3BlcnR5TmFt
ZSwgIXNsYXZlTmFtZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCghdGhpcy5fc2xhdmVQ
cm9wZXJ0eU5hbWUsICFzbGF2ZU5hbWUpOwogICAgICAgICBpZiAodGhpcy5fc2xhdmVQcm9wZXJ0
eU5hbWUpCiAgICAgICAgICAgICBwcm9wZXJ0aWVzW3RoaXMuX3NsYXZlUHJvcGVydHlOYW1lXSA9
IHNsYXZlTmFtZTsKIApAQCAtMzM3LDcgKzMzNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsK
IAogICAgICAgICBhc3NlcnQoY29uZmlnLmJ1aWxkUmVxdWVzdEFyZ3VtZW50LCAnYnVpbGRSZXF1
ZXN0QXJndW1lbnQgbXVzdCBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB1c2VkIHRv
IHN0b3JlIHRoZSBidWlsZCByZXF1ZXN0IElEJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5
cGVvZihjb25maWcucmVwb3NpdG9yeUdyb3VwcyksICdvYmplY3QnLCAncmVwb3NpdG9yeUdyb3Vw
cyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRp
b24nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihjb25maWcucmVwb3NpdG9y
eUdyb3VwcyksICdvYmplY3QnLCAncmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0
aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24nKTsKIAogICAgICAgICBjb25z
dCByZXBvc2l0b3J5R3JvdXBzID0ge307CiAgICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBjb25m
aWcucmVwb3NpdG9yeUdyb3VwcykKQEAgLTQxNiw3ICs0MTYsNyBAQCBjbGFzcyBCdWlsZGJvdFN5
bmNlciB7CiAKICAgICBzdGF0aWMgX3BhcnNlUmVwb3NpdG9yeUdyb3VwKG5hbWUsIGdyb3VwKQog
ICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC5yZXBvc2l0b3JpZXMpLCAn
b2JqZWN0JywKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihncm91cC5yZXBvc2l0
b3JpZXMpLCAnb2JqZWN0JywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9
IiBkb2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXNgKTsKICAgICAg
ICAgYXNzZXJ0KCEoJ2Rlc2NyaXB0aW9uJyBpbiBncm91cCkgfHwgdHlwZW9mKGdyb3VwWydkZXNj
cmlwdGlvbiddKSA9PSAnc3RyaW5nJywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIk
e25hbWV9IiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb25gKTsKQEAgLTQzMSw3ICs0MzEsNyBA
QCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0g
UmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUocmVwb3NpdG9yeU5hbWUpOwogICAgICAgICAg
ICAgYXNzZXJ0KHJlcG9zaXRvcnksIGAiJHtyZXBvc2l0b3J5TmFtZX0iIGlzIG5vdCBhIHZhbGlk
IHJlcG9zaXRvcnkgbmFtZWApOwogICAgICAgICAgICAgcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0
b3J5TmFtZV0gPSByZXBvc2l0b3J5OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihv
cHRpb25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBhIG5vbi1k
aWN0aW9uYXJ5IHZhbHVlYCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9m
KG9wdGlvbnMpLCAnb2JqZWN0JywgYCIke3JlcG9zaXRvcnlOYW1lfSIgc3BlY2lmaWVzIGEgbm9u
LWRpY3Rpb25hcnkgdmFsdWVgKTsKICAgICAgICAgICAgIGFzc2VydChbdW5kZWZpbmVkLCB0cnVl
LCBmYWxzZV0uaW5jbHVkZXMob3B0aW9ucy5hY2NlcHRzUGF0Y2gpLAogICAgICAgICAgICAgICAg
IGAiJHtyZXBvc2l0b3J5TmFtZX0iIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVl
OiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuYWNjZXB0c1BhdGNoKX1gKTsKICAgICAgICAgICAg
IGlmIChvcHRpb25zLmFjY2VwdHNQYXRjaCkKQEAgLTQ0MSw3ICs0NDEsNyBAQCBjbGFzcyBCdWls
ZGJvdFN5bmNlciB7CiAgICAgICAgIH0KICAgICAgICAgYXNzZXJ0KHBhcnNlZFJlcG9zaXRvcnlM
aXN0Lmxlbmd0aCwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHNwZWNpZnkg
YW55IHJlcG9zaXRvcnlgKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnRl
c3RQcm9wZXJ0aWVzKSwgJ29iamVjdCcsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVj
aWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlkIHR5cGVgKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihncm91cC50ZXN0UHJvcGVydGllcyksICdv
YmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSB0ZXN0IGNv
bmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7CiAKICAgICAgICAgY29uc3QgcmVz
b2x2ZVJlcG9zaXRvcnkgPSAocmVwb3NpdG9yeU5hbWUpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlOYW1lXTsKQEAgLTQ3MCw3
ICs0NzAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0pOwogICAgICAgICBh
c3NlcnQoIWdyb3VwLmFjY2VwdHNSb290cyA9PSAhc3BlY2lmaWVzUm9vdHMsCiAgICAgICAgICAg
ICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgYWNjZXB0cyByb290cyBidXQgZG9lcyBub3Qg
c3BlY2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllc2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9yaWVzLnNpemUsCisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWRSZXBvc2l0b3J5TGlzdC5sZW5ndGgsIHRlc3RS
ZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9
IiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBpbiB0ZXN0aW5n
YCk7CiAKICAgICAgICAgbGV0IGJ1aWxkUHJvcGVydGllc1RlbXBsYXRlID0gbnVsbDsKQEAgLTUw
NCw3ICs1MDQsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBhc3NlcnQo
cGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplIHx8IGhhc093bmVkUmV2aXNpb25zLCBg
UmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIGZvciBi
dWlsZGluZyBidXQgZG9lcyBub3QgYWNjZXB0IGFueSBwYXRjaGVzIG9yIG5lZWQgdG8gYnVpbGQg
b3duZWQgY29tcG9uZW50c2ApOwogICAgICAgICAgICAgZm9yIChjb25zdCByZXBvc2l0b3J5IG9m
IHBhdGNoUmVwb3NpdG9yaWVzKQogICAgICAgICAgICAgICAgIGFzc2VydChyZXZpc2lvblJlcG9z
aXRvcmllcy5oYXMocmVwb3NpdG9yeSksIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVj
aWZpZXMgYSBwYXRjaCBmb3IgIiR7cmVwb3NpdG9yeS5uYW1lKCl9IiBidXQgZG9lcyBub3Qgc3Bl
Y2lmeSBhIHJldmlzaW9uYCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocGF0Y2hBY2NlcHRp
bmdSZXBvc2l0b3J5TGlzdC5zaXplLCBwYXRjaFJlcG9zaXRvcmllcy5zaXplLAorICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSwg
cGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91
cCAiJHtuYW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQg
aW4gYnVpbGRpbmcgYSBwYXRjaGApOwogICAgICAgICB9CiAKQEAgLTU2NCwxMiArNTY0LDEyIEBA
IGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAg
ICAgICAgICAgICBjYXNlICdwcm9wZXJ0aWVzJzogLy8gRmFsbHRocm91Z2gKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdCdWlsZCBwcm9wZXJ0
aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdCdWlsZCBwcm9wZXJ0aWVzIHNob3Vs
ZCBiZSBhIGRpY3Rpb25hcnknKTsKICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZ1sncHJvcGVy
dGllcyddKQogICAgICAgICAgICAgICAgICAgICBjb25maWdbJ3Byb3BlcnRpZXMnXSA9IHt9Owog
ICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjb25maWdbJ3Byb3BlcnRpZXMnXTsK
ICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdmFsdWUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVp
bGQgcHJvcGVydGllcyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0
eXBlICIke3R5cGVvZih2YWx1ZSl9ImApOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0cmluZycsIGBCdWlsZCBwcm9wZXJ0aWVz
ICIke25hbWV9IiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIiR7dHlwZW9m
KHZhbHVlKX0iYCk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbbmFtZV0gPSB2YWx1
ZVtuYW1lXTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01
ODAsNyArNTgwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgICAgIGNv
bmZpZ1tuYW1lXSA9IHZhbHVlLnNsaWNlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlICdidWlsZGVyJzogLy8gRmFsbHRocm91Z2gKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBv
ZiBzdHJpbmcgdHlwZWApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBl
b2YodmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9mIHN0cmluZyB0eXBlYCk7
CiAgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlICdidWlsZGVySUQnOgpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCmlu
ZGV4IDQwZGUwYTU2OTdjODdjZWIwOTgzNTg3MmQ3ZTJlMDg1MzM5YmIzYzMuLjI5YzFlNTA4Y2Zl
ZDY1NjRjNWMyMzlmMDYwNTk4NGU4ZTQxOTZmMzIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKQEAgLTE0
Nyw3ICsxNDcsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFzc2VydCh0cmlnZ2VyYWJs
ZSBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlLCAnTXVzdCBzcGVjaWZ5IGEgdmFsaWQgdHJpZ2dlcmFi
bGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksIHRoaXMu
X25hbWUsICdNdXN0IHNwZWNpZnkgdGhlIHRyaWdnZXJhYmxlIG9mIHRoaXMgc3luY2VyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0aGlzLl9u
YW1lLCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicpOwogICAg
ICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdC5yZXBvc2l0b3J5R3JvdXAo
KTsKICAgICAgICAgICAgIGlmICghcmVwb3NpdG9yeUdyb3VwKSB7CiAgICAgICAgICAgICAgICAg
dGhpcy5fbG9nZ2VyLmVycm9yKGBCdWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSBkb2VzIG5v
dCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSBncm91cC4gU3VjaCBhIGJ1aWxkIHJlcXVlc3QgaXMgbm8g
bG9uZ2VyIHN1cHBvcnRlZC5gKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKaW5kZXggYWNmMDQ5ZDM4OGZjNjc3YWZhMDg0
ODg4MDYxNWRhNjFjYzFjZWUzOS4uMjY0MjU1MmRlY2YzMDFmYWE1NDA0NDQ3ZDhkOTNkZDQwYzRh
NzA1OCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1
cC1jb21wb25lbnQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21h
cmt1cC1jb21wb25lbnQuanMKQEAgLTEsNCArMSw2IEBACisndXNlIHN0cmljdCc7CiAKK2NvbnN0
IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogY29uc3QgTWFya3VwRG9jdW1lbnQgPSBuZXcg
Y2xhc3MgTWFya3VwRG9jdW1lbnQgewogICAgIGNvbnN0cnVjdG9yKCkKICAgICB7CkBAIC0yNyw3
ICsyOSw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50
IHsKIAogICAgIF9pZEZvckNsb25lKG9yaWdpbmFsKQogICAgIHsKLSAgICAgICAgY29uc29sZS5h
c3NlcnQob3JpZ2luYWwgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKKyAgICAgICAgYXNzZXJ0Lm9r
KG9yaWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAgICAgICAgIHJldHVybiB0aGlzLl9u
b2RlSWQrKzsKICAgICB9CiAKQEAgLTM4LDcgKzQwLDcgQEAgY29uc3QgTWFya3VwRG9jdW1lbnQg
PSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogCiAgICAgbWFya3VwKG5vZGUpCiAgICAgewot
ICAgICAgICBjb25zb2xlLmFzc2VydChub2RlIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CisgICAg
ICAgIGFzc2VydC5vayhub2RlIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAgICAgICAgIHJldHVy
biBub2RlLl9tYXJrdXAoKTsKICAgICB9CiAKQEAgLTU2LDcgKzU4LDcgQEAgY29uc3QgTWFya3Vw
RG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogY2xhc3MgTWFya3VwTm9kZSB7
CiAgICAgY29uc3RydWN0b3IoaWQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBl
b2YoaWQpID09ICdudW1iZXInKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHR5cGVvZihpZCkgPT0gJ251
bWJlcicpOwogICAgICAgICB0aGlzLl9pZCA9IGlkOwogICAgICAgICB0aGlzLl9wYXJlbnROb2Rl
ID0gbnVsbDsKICAgICB9CkBAIC03Myw5ICs3NSw5IEBAIGNsYXNzIE1hcmt1cE5vZGUgewogCiAg
ICAgX2Nsb25lTm9kZURhdGEoY2xvbmVkTm9kZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHR5cGVvZihjbG9uZWROb2RlLl9pZCkgPT0gJ251bWJlcicpOwotICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGNsb25lZE5vZGUuX3BhcmVudE5vZGUgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayh0
eXBlb2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHRo
aXMuX2lkICE9IGNsb25lZE5vZGUuX2lkKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGNsb25lZE5vZGUu
X3BhcmVudE5vZGUgPT0gbnVsbCk7CiAgICAgfQogCiAgICAgcmVtb3ZlKCkKQEAgLTExMyw3ICsx
MTUsNyBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiAgICAg
ICAgIGlmIChjaGlsZC5fcGFyZW50Tm9kZSkKICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpOwog
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOworICAg
ICAgICBhc3NlcnQub2soY2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAgICAgICAgIHRoaXMu
X2NoaWxkTm9kZXMucHVzaChjaGlsZCk7CiAgICAgICAgIGNoaWxkLl9wYXJlbnROb2RlID0gdGhp
czsKICAgICB9CkBAIC0xMjMsNyArMTI1LDcgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRl
bmRzIE1hcmt1cE5vZGUgewogICAgICAgICBpZiAoY2hpbGQuX3BhcmVudE5vZGUgIT0gdGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9jaGlsZE5v
ZGVzLmluZGV4T2YoY2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwKTsK
KyAgICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0aGlzLl9jaGlsZE5vZGVz
LnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgIGNoaWxkLl9wYXJlbnROb2RlID0gbnVsbDsKICAg
ICB9CkBAIC0xNDIsMTAgKzE0NCwxMCBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMg
TWFya3VwTm9kZSB7CiAKICAgICAgICAgaWYgKG5ld0NoaWxkLl9wYXJlbnROb2RlKQogICAgICAg
ICAgICAgbmV3Q2hpbGQucmVtb3ZlKCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG5ld0NoaWxk
Ll9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQub2sobmV3Q2hpbGQuX3BhcmVu
dE5vZGUgPT0gbnVsbCk7CiAKICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9jaGlsZE5vZGVz
LmluZGV4T2Yob2xkQ2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwKTsK
KyAgICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0aGlzLl9jaGlsZE5vZGVz
LnNwbGljZShpbmRleCwgMSwgbmV3Q2hpbGQpOwogICAgICAgICBvbGRDaGlsZC5fcGFyZW50Tm9k
ZSA9IG51bGw7CiAgICAgICAgIG5ld0NoaWxkLl9wYXJlbnROb2RlID0gdGhpczsKQEAgLTE1NSw4
ICsxNTcsOCBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiBj
bGFzcyBNYXJrdXBDb250ZW50Um9vdCBleHRlbmRzIE1hcmt1cFBhcmVudE5vZGUgewogICAgIGNv
bnN0cnVjdG9yKGlkLCBob3N0KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaG9zdCBp
bnN0YW5jZW9mIE1hcmt1cEVsZW1lbnQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChob3N0Ll9j
b250ZW50Um9vdCA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3QgaW5zdGFuY2VvZiBN
YXJrdXBFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3QuX2NvbnRlbnRSb290ID09IG51
bGwpOwogICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2hvc3RFbGVtZW50ID0gbnVs
bDsKICAgICAgICAgaG9zdC5fY29udGVudFJvb3QgPSB0aGlzOwpAQCAtMTc1LDcgKzE3Nyw3IEBA
IGNsYXNzIE1hcmt1cEVsZW1lbnQgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2RlIHsKICAgICBjb25z
dHJ1Y3RvcihpZCwgbmFtZSkKICAgICB7CiAgICAgICAgIHN1cGVyKGlkKTsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodHlwZW9mKG5hbWUpID09ICdzdHJpbmcnKTsKKyAgICAgICAgYXNzZXJ0Lm9r
KHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwog
ICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fdmFsdWUg
PSBudWxsOwpAQCAtMzY0LDcgKzM2Niw3IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0
ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhp
cy5fbmFtZSA9IGNvbXBvbmVudHNCeUNsYXNzLmdldChuZXcudGFyZ2V0KTsKICAgICAgICAgY29u
c3QgY29tcG9uZW50ID0gY29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGNvbXBvbmVudCwgYENvbXBvbmVudCAiJHt0aGlzLl9uYW1lfSIgaGFzIG5v
dCBiZWVuIGRlZmluZWRgKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGNvbXBvbmVudCwgYENvbXBvbmVu
dCAiJHt0aGlzLl9uYW1lfSIgaGFzIG5vdCBiZWVuIGRlZmluZWRgKTsKICAgICAgICAgdGhpcy5f
Y29tcG9uZW50SWQgPSBjb21wb25lbnQuaWQ7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBudWxs
OwogICAgICAgICB0aGlzLl9jb250ZW50Um9vdCA9IG51bGw7CkBAIC00MTIsNyArNDE0LDcgQEAg
Y2xhc3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2Ugewog
CiAgICAgc3RhdGljIHJ1blJlbmRlckxvb3AoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoIWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFzc2VydC5vayghY3Vy
cmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKICAgICAgICAgZG8gewogICAgICAgICAgICAgY29u
c3QgY3VycmVudFNldCA9IFsuLi5jb21wb25lbnRzVG9SZW5kZXJdOwogICAgICAgICAgICAgY29t
cG9uZW50c1RvUmVuZGVyLmNsZWFyKCk7CkBAIC00MjksMTQgKzQzMSwxNCBAQCBjbGFzcyBNYXJr
dXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICByZW5k
ZXJSZXBsYWNlKHBhcmVudE5vZGUsIGNvbnRlbnQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJlbnROb2RlKTsKKyAgICAg
ICAgYXNzZXJ0Lm9rKGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9PSB0aGlzKTsKKyAgICAg
ICAgYXNzZXJ0Lm9rKHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJlbnROb2RlKTsKICAg
ICAgICAgcGFyZW50Tm9kZS5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAgICAgICBpZiAoY29udGVu
dCkgewogICAgICAgICAgICAgTWFya3VwQ29tcG9uZW50QmFzZS5fYWRkQ29udGVudFRvRWxlbWVu
dChwYXJlbnROb2RlLCBjb250ZW50KTsKIAogICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0g
Y29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChjb21wb25lbnQpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbXBvbmVudCk7CiAgICAgICAg
ICAgICB0aGlzLl9hcHBseVN0eWxlT3ZlcnJpZGVzKHBhcmVudE5vZGUsIGNvbXBvbmVudC5zdHls
ZU92ZXJyaWRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ5Myw3ICs0OTUsNyBAQCBjbGFzcyBN
YXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICBz
dGF0aWMgcmVzZXQoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWN1cnJlbnRseVJl
bmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFzc2VydC5vayghY3VycmVudGx5UmVuZGVyaW5n
Q29tcG9uZW50KTsKICAgICAgICAgTWFya3VwRG9jdW1lbnQucmVzZXQoKTsKICAgICAgICAgY29t
cG9uZW50c01hcC5jbGVhcigpOwogICAgICAgICBjb21wb25lbnRzQnlDbGFzcy5jbGVhcigpOwpA
QCAtNTY3LDkgKzU2OSw5IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21t
b25Db21wb25lbnRCYXNlIHsKIAogICAgIHN0YXRpYyBkZWZpbmVFbGVtZW50KG5hbWUsIGNvbXBv
bmVudENsYXNzKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWNvbXBvbmVudHNNYXAu
Z2V0KG5hbWUpLCBgVGhlIGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZp
bmVkYCk7CisgICAgICAgIGFzc2VydC5vayghY29tcG9uZW50c01hcC5nZXQobmFtZSksIGBUaGUg
Y29tcG9uZW50ICIke25hbWV9IiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWRgKTsKICAgICAgICAg
Y29uc3QgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcyA9IGNvbXBvbmVudHNCeUNsYXNzLmdldChj
b21wb25lbnRDbGFzcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFleGlzdGluZ0NvbXBvbmVu
dEZvckNsYXNzLCBleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzCisgICAgICAgIGFzc2VydC5vaygh
ZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcwogICAg
ICAgICAgICAgPyBgVGhlIGNvbXBvbmVudCBjbGFzcyAiJHtleGlzdGluZ0NvbXBvbmVudEZvckNs
YXNzfSIgaGFzIGFscmVhZHkgYmVlbiB1c2VkIHRvIGRlZmluZSBhbm90aGVyIGNvbXBvbmVudCAi
JHtleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzLm5hbWV9ImAgOiAnJyk7CiAgICAgICAgIGNvbXBv
bmVudHNNYXAuc2V0KG5hbWUsIHsKICAgICAgICAgICAgIGNsYXNzOiBjb21wb25lbnRDbGFzcywK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1m
ZXRjaGVyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZl
dGNoZXIuanMKaW5kZXggOTkzNDA3OWQ2YjNhYTQ5ZDg3ZWU0M2RhNTk1MWE3ZGMxMDJjMDlmYy4u
MmQ2ZjUwYTk1NzMwZGNkNjZjNDc0NTgzMWJiOGViN2ViN2YyM2E2YiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanMKQEAg
LTEyMSw3ICsxMjEsNyBAQCBjbGFzcyBPU0J1aWxkRmV0Y2hlciB7CiAgICAgICAgICAgICAgICAg
dGhpcy5fbG9nZ2VyLmxvZyhgR290ICR7T2JqZWN0LmtleXMoKG93bmVkQ29tbWl0cykpLmxlbmd0
aH0gb3duZWQgY29tbWl0cyBmb3IgIiR7Y29tbWl0WydyZXZpc2lvbiddfSJgKTsKICAgICAgICAg
ICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5TmFtZSBpbiBvd25lZENvbW1pdHMpIHsKICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgb3duZWRDb21taXQgPSBvd25lZENvbW1pdHNbcmVwb3NpdG9y
eU5hbWVdOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KG93bmVkQ29tbWl0KSwgWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhvd25lZENvbW1pdCksIFsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2Yob3duZWRDb21taXRbJ3JldmlzaW9u
J10pID09ICdzdHJpbmcnKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY29t
bWl0Wydvd25lZENvbW1pdHMnXSA9IG93bmVkQ29tbWl0czsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCmluZGV4IGFmNmFhMzY4ZWY1MGJiODc4MzE3NjdmNmFi
NzU2MzFjMjgxZGUwYzcuLjQ3NzM3NjY2MDY2MGI4MDZkNDExMTk5MjA3Zjk0MjhkY2E0NDcyNjAg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwpAQCAtMzEs
MTQgKzMxLDE0IEBAIGNsYXNzIE5vZGVSZW1vdGVBUEkgZXh0ZW5kcyBDb21tb25SZW1vdGVBUEkg
ewogICAgIGNvbmZpZ3VyZShzZXJ2ZXIpCiAgICAgewogICAgICAgICBhc3NlcnQoc2VydmVyLnNj
aGVtZSA9PT0gJ2h0dHAnIHx8IHNlcnZlci5zY2hlbWUgPT09ICdodHRwcycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycsICdob3N0IHNob3VsZCBi
ZSBhIHN0cmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5o
b3N0KSwgJ3N0cmluZycsICdob3N0IHNob3VsZCBiZSBhIHN0cmluZycpOwogICAgICAgICBhc3Nl
cnQoIXNlcnZlci5wb3J0IHx8IHR5cGVvZihzZXJ2ZXIucG9ydCkgPT0gJ251bWJlcicsICdwb3J0
IHNob3VsZCBiZSBhIG51bWJlcicpOwogCiAgICAgICAgIGxldCBhdXRoID0gbnVsbDsKICAgICAg
ICAgaWYgKHNlcnZlci5hdXRoKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNl
cnZlci5hdXRoKSwgJ29iamVjdCcsICdhdXRoIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkgd2l0aCB1
c2VybmFtZSBhbmQgcGFzc3dvcmQgYXMga2V5cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHR5cGVvZihzZXJ2ZXIuYXV0aC51c2VybmFtZSksICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29u
dGFpbiBhIHN0cmluZyB1c2VybmFtZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVv
ZihzZXJ2ZXIuYXV0aC5wYXNzd29yZCksICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBh
IHN0cmluZyBwYXNzd29yZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVv
ZihzZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5IHdp
dGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3RyaW5nJywgJ2F1dGgg
c2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAnc3RyaW5nJywgJ2F1dGgg
c2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcgcGFzc3dvcmQnKTsKICAgICAgICAgICAgIGF1dGggPSB7
CiAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHNlcnZlci5hdXRoLnVzZXJuYW1lLAogICAgICAg
ICAgICAgICAgIHBhc3N3b3JkOiBzZXJ2ZXIuYXV0aC5wYXNzd29yZCwK
</data>
<flag name="commit-queue"
          id="441400"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422320</attachid>
            <date>2021-03-04 18:54:51 -0800</date>
            <delta_ts>2021-03-05 14:09:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210304185448.patch</filename>
            <type>text/plain</type>
            <size>876656</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi5iMGNiOTFkZWI2
YzFhNGE4MzdjNWI0Y2U0YmUwODk1MWVjN2I0YzU3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAyMS0wMy0wNCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzZXJ2ZXIgdGVzdCBydW4gd2l0aCBuZXcg
bm9kZSB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjI0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAgICAgICAgKENvbW1pdFNl
dC5wcm90b3R5cGUucGF0Y2hGb3JSZXBvc2l0b3J5KTogbWFrZSBzdXJlIHJldHVybiBudWxsIGlu
c3RlYWQgb2YgdW5kZWZpZW5kCisgICAgICAgIChDb21taXRTZXQucHJvdG90eXBlLnJvb3RGb3JS
ZXBvc2l0b3J5KTogbWFrZSBzdXJlIHJldHVybiBudWxsIGluc3RlYWQgb2YgdW5kZWZpZW5kCisg
ICAgICAgICogcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzOgorICAgICAgICAoRGF0YU1v
ZGVsT2JqZWN0LmZpbmRCeUlkKTogbWFrZSBzdXJlIHJldHVybiBudWxsIGluc3RlYWQgb2YgdW5k
ZWZpZW5kCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzOgorICAgICAg
ICAoUmVwb3NpdG9yeS5wcm90b3R5cGUub3duZWRSZXBvc2l0b3JpZXMpOiBtYWtlIHN1cmUgcmV0
dXJuIG51bGwgaW5zdGVhZCBvZiB1bmRlZmllbmQKKyAgICAgICAgKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTCk6IG1ha2Ugc3VyZSB0aGUgb3JkZXIgaXMgbW9yZSBz
dGFibGUgZXZlbiB0d28gbmFtZXMgb2YgZGlmZmVyZW50IHJlcG9zIGFyZSB0aGUgc2FtZQorICAg
ICAgICAoUmVwb3NpdG9yeSk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jt
cy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9y
dC10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRl
c3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAoYXNzZXJ0Q29t
bWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQpOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVt
b3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAgICAgICAgKHJldHVybi5UZXN0U2Vy
dmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAg
ICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQt
c2V0LXRlc3RzLmpzOgorICAgICAgICAoc2V0IHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0
cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6CisgICAgICAgIChlbXB0eVJlcG9ydC50aGVu
KToKKyAgICAgICAgKGFzeW5jIGluaXRpYWxSZXBvcnRDb21taXRzKToKKyAgICAgICAgKGFzeW5j
IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0dXMpOgorICAgICAgICAoYXN5bmMgdGVzdFdpdGhF
eHBlY3RlZEZhaWx1cmUpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3Rz
LmpzOgorICAgICAgICAoZW1wdHlSZXBvcnQudGhlbik6CisgICAgICAgIChhc3luYyBhd2FpdCk6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qczoKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qczoKKyAgICAgICAgKHVw
ZGF0ZS50aGVuKToKKyAgICAgICAgKHRoZW4ucmVzcG9uc2UuZGIuc2VsZWN0QWxsLnN0cmluZ19h
cHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAodGhlbi5kYi5zZWxlY3RBbGwuc3RyaW5nX2Fw
cGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuLk1hbmlmZXN0LmZldGNoLnRoZW4pOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanM6CisgICAgICAg
IChhc3luYyBjb25zdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxl
LXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04u
c3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczoKKyAgICAgICAgKGFzeW5jIGNy
ZWF0ZUFuYWx5c2lzVGFzayk6CisgICAgICAgIChjb25zdC5jb21taXRTZXQub2YudXBkYXRlZEdy
b3Vwcy4wLnJlcXVlc3RlZENvbW1pdFNldHMpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2
aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAg
ICAgIChjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lz
VGFzay5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHJldHVybi5hZGRUcmln
Z2VyYWJsZUFuZENyZWF0ZVRhc2suc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAg
IChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChhc3lu
YyBjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qczoKKyAgICAgICAgKFRlc3RTZXJ2ZXIudGVzdENvbmZp
Zy51cGxvYWRGaWxlTGltaXRJbk1CLjEudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jl
c291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93
cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoK
KyAgICAgICAgKFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6
CisgICAgICAgIChhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZSk6CisgICAgICAgICh0aGVuLnJlZmV0
Y2hNYW5pZmVzdC50aGVuKToKKyAgICAgICAgKGdldEJ1aWxkZXJOYW1lVG9JRE1hcFByb21pc2Uu
dGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVz
dHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdy
YXRpb24tdGVzdHMuanM6CisgICAgICAgIChhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdCk6CisgICAg
ICAgICogdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzOgorICAgICAgICAoQnVpbGRib3RCdWls
ZEVudHJ5LnByb3RvdHlwZS5pbml0aWFsaXplKToKKyAgICAgICAgKEJ1aWxkYm90QnVpbGRFbnRy
eS5wcm90b3R5cGUuYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRhdGVJc05lZWRlZCk6CisgICAgICAg
IChCdWlsZGJvdEJ1aWxkRW50cnkpOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBl
LnNjaGVkdWxlUmVxdWVzdCk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyk6
CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fcGFyc2VSZXBvc2l0b3J5R3JvdXApOgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcpOgorICAgICAgICAoQnVp
bGRib3RTeW5jZXIpOgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpz
OgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuX3ZhbGlkYXRlUmVxdWVz
dHMpOgorICAgICAgICAqIHRvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanM6CisgICAgICAgIChj
b25zdC5NYXJrdXBEb2N1bWVudC5uZXcuTWFya3VwRG9jdW1lbnQucHJvdG90eXBlLl9pZEZvckNs
b25lKToKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERvY3VtZW50Lm5ldy5NYXJrdXBEb2N1bWVudC5w
cm90b3R5cGUubWFya3VwKToKKyAgICAgICAgKiB0b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpz
OgorICAgICAgICAocHJvdG90eXBlLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZCk6CisgICAgICAg
ICogdG9vbHMvanMvcmVtb3RlLmpzOgorICAgICAgICAoTm9kZVJlbW90ZUFQSS5wcm90b3R5cGUu
Y29uZmlndXJlKToKKwogMjAyMS0wMi0xOCAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggYSBidWcgdGhhdCBhIHN5bmNpbmcgc2NyaXB0IG1heSB0cnkgdG8g
cmV1c2UgYSBkZWxldGUgcm9vdC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCmluZGV4IDA0MjI5ZTFlMDBiMjlkNzgz
NTY5ODlmNDk5ZjA1ODk1ZWQzMmRkMzYuLjAzODMyNWE0ZDY2ZmM5NzA0OWRmMjViZjJlYWUyMmM2
ZDA1ZmFjMTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL2NvbW1pdC1zZXQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LXNldC5qcwpAQCAtOTIsOCArOTIsOCBAQCBjbGFzcyBDb21taXRT
ZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICByZXR1cm4gY29tbWl0ID8gY29t
bWl0LnJldmlzaW9uKCkgOiBudWxsOwogICAgIH0KIAotICAgIHBhdGNoRm9yUmVwb3NpdG9yeShy
ZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5VG9QYXRjaE1hcC5nZXQocmVwb3Np
dG9yeSk7IH0KLSAgICByb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlz
Ll9yZXBvc2l0b3J5VG9Sb290TWFwLmdldChyZXBvc2l0b3J5KTsgfQorICAgIHBhdGNoRm9yUmVw
b3NpdG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5VG9QYXRjaE1hcC5o
YXMocmVwb3NpdG9yeSkgPyB0aGlzLl9yZXBvc2l0b3J5VG9QYXRjaE1hcC5nZXQocmVwb3NpdG9y
eSkgOiBudWxsOyB9CisgICAgcm9vdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4g
dGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuaGFzKHJlcG9zaXRvcnkpID8gdGhpcy5fcmVwb3Np
dG9yeVRvUm9vdE1hcC5nZXQocmVwb3NpdG9yeSkgOiBudWxsOyB9CiAgICAgcmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVJlcXVp
cmVzQnVpbGRNYXAuZ2V0KHJlcG9zaXRvcnkpIHx8IGZhbHNlOyB9CiAKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcmV0dXJuIGEgRGF0ZSBvYmplY3QuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcwppbmRleCBmMTg5
Mjk4YTQ3YjQ1OGRjYWI3YjdiYTlmMzU1ZmViOWY0ZWM4MGNhLi5lNTZjODEyMGMyMzQwYmIxNGU2
YzFiZjc2NTE4NWY0NTZiYzFiMDAyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMKQEAgLTQ0LDcgKzQ0LDcgQEAg
Y2xhc3MgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBzdGF0aWMgZmluZEJ5SWQoaWQpCiAgICAgewog
ICAgICAgICB2YXIgaWRNYXAgPSB0aGlzLm5hbWVkU3RhdGljTWFwKCdpZCcpOwotICAgICAgICBy
ZXR1cm4gaWRNYXAgPyBpZE1hcFtpZF0gOiBudWxsOworICAgICAgICByZXR1cm4gaWRNYXAgPyAo
aWRNYXAuaGFzT3duUHJvcGVydHkoaWQpID8gaWRNYXBbaWRdIDogbnVsbCkgOiBudWxsOwogICAg
IH0KIAogICAgIHN0YXRpYyBsaXN0Rm9yU3RhdGljTWFwKG5hbWUpCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcwppbmRl
eCA5MzE5ODk5ZGRjZjYwMjc1OWQwMjQ4MDkwMzU5NTdmZTA2M2YxYTRiLi4wMTJmODJjZWRlMzg0
OGExNmYxYjg0YmUxMjhlM2IzOWM2MjIzMjJkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMKQEAgLTQ5LDcgKzQ5
LDcgQEAgY2xhc3MgUmVwb3NpdG9yeSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgIG93bmVk
UmVwb3NpdG9yaWVzKCkKICAgICB7CiAgICAgICAgIGNvbnN0IG93bmVyc2hpcHMgPSB0aGlzLm5h
bWVkU3RhdGljTWFwKCdyZXBvc2l0b3J5T3duZXJzaGlwcycpOwotICAgICAgICByZXR1cm4gb3du
ZXJzaGlwcyA/IG93bmVyc2hpcHNbdGhpcy5pZCgpXSA6IG51bGw7CisgICAgICAgIHJldHVybiBv
d25lcnNoaXBzID8gKG93bmVyc2hpcHMuaGFzT3duUHJvcGVydHkodGhpcy5pZCgpKSA/IG93bmVy
c2hpcHNbdGhpcy5pZCgpXSA6IG51bGwpIDogbnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChyZXBvc2l0b3JpZXMpCkBAIC02MCw3ICs2MCw3
IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5uYW1lKCkgPCBi
Lm5hbWUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChhLmlkKCkpIC0gcGFy
c2VJbnQoYi5pZCgpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoYi5fYmxhbWVVcmwpIC8vIGEg
PiBiCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICByZXR1cm4gLTE7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBs
YXRmb3Jtcy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCmluZGV4IDExMmIwOTE1ZmY4Zjk5NDI1ZWU2ODQ2NTNj
Mjk1NDJhNDc5OTliYzQuLjNiZGVkZWM3YjljMmMxYmY3ZjRhMzkwYzZiNzhjYmRjNzcyMzBlMzMg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4t
cGxhdGZvcm1zLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCkBAIC00NSwxOSArNDUsMTkgQEAgZGVzY3Jp
YmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnLCAnbmFtZScpOwogICAgICAgICB9KS50aGVuKChwbGF0
Zm9ybXMpID0+IHsKICAgICAgICAgICAgIG9sZFBsYXRmb3JtcyA9IHBsYXRmb3JtczsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4g
TGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSdd
LCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9sZFBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zWzFdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zWzJdWyduYW1lJ10s
ICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0
YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21l
cmdlJywgJ2lkJzogb2xkUGxhdGZvcm1zWzFdWydpZCddLCAnZGVzdGluYXRpb24nOiBvbGRQbGF0
Zm9ybXNbMl1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnKTsKICAgICAgICAgfSkudGhlbigobmV3UGxh
dGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3UGxhdGZvcm1zLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jtc1swXSwgb2xk
UGxhdGZvcm1zWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3UGxhdGZvcm1z
WzFdLCBvbGRQbGF0Zm9ybXNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5l
d1BsYXRmb3Jtcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1swXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxhdGZvcm1zWzJdKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTY5LDE1ICs2OSwxNSBAQCBkZXNjcmliZSgiL2FkbWluL3Bs
YXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeShxdWVy
eUZvclJ1bnMpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIG9s
ZFRlc3RSdW5zID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVz
dFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sw
XVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24n
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNo
ZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3BsYXRm
b3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncnVuX3N1bV9j
YWNoZSddLCAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1sw
XVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVu
c1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob2xkVGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNo
ZSddLCAxOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbM11b
J3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAog
ICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkVGVzdFJ1bnNbMV1b
J3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9p
ZCddfSk7CkBAIC04NSwyMCArODUsMjAgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBuZXdUZXN0
UnVucyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5z
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1
bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRl
c3RSdW5zWzFdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1
bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0
UnVuc1syXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5z
WzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xkVGVzdFJ1
bnNbM11bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sz
XVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZpZyddLCBuZXdUZXN0
UnVuc1szXVsncnVuX2NvbmZpZyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVucy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5l
d1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFtZSdd
LCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1
bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sxXVsncnVuX2lkJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNb
Ml1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVu
c1syXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lk
J10sIG9sZFRlc3RSdW5zWzNdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1szXVsncnVu
X3N1bV9jYWNoZSddLCAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVz
dFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1bl9jb25maWcnXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTQsMTMgKzExNCwxMyBAQCBkZXNjcmliZSgiL2Fk
bWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVy
eShxdWVyeUZvckNvbmZpZywgW3JlcG9ydHNbMF1bJ3BsYXRmb3JtJ10sIHJlcG9ydHNbMl1bJ3Bs
YXRmb3JtJ11dKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBv
bGRDb25maWdzID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29u
Zmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1b
J3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1swXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdi
YXNlbGluZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ3BsYXRm
b3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob2xkQ29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlncy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgcmVwb3J0c1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob2xkQ29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10s
ICdiYXNlbGluZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1l
UmF0ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ2Nv
bmZpZ190eXBlJ10sICdjdXJyZW50Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0
YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21l
cmdlJywgJ2lkJzogb2xkQ29uZmlnc1swXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzog
b2xkQ29uZmlnc1sxXVsncGxhdGZvcm1faWQnXX0pOwpAQCAtMTI4LDEzICsxMjgsMTMgQEAgZGVz
Y3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBv
cnRzWzJdWydwbGF0Zm9ybSddXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgbmV3Q29uZmlncyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld0NvbmZpZ3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10s
ICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydj
b25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdD
b25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFt
ZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzFdWydjb25maWdf
dHlwZSddLCAnY3VycmVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0Nv
bmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25m
aWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdG
cmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBd
Wydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3Jt
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJp
Y19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCmluZGV4IDJm
ZjUzY2JmODhhYzI0YjBlOTIxNmIwYTcyZTRlMzcwOTIyN2E4ODEuLmIwOGFmOWZkZjljNmI0MzA1
MDI5MGRjNzVhMjM0NWE3MjY1MWY4ZTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBv
cnQtdGVzdHMuanMKQEAgLTQ4LDEwICs0OCwxMCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vz
cy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHNpbXBsZVJlcG9ydFdpdGhSZXZpc2lvbnMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7
J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50aGVuKChyZXBvc2l0b3JpZXMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJlcHNpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdLm93bmVyID09
IDEgPyByZXBvc2l0b3JpZXNbMV0uaWQgOiByZXBvc2l0b3JpZXNbMF0uaWQ7CiAgICAgICAgICAg
ICByZXR1cm4gZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnMjEzMjE0Jywg
J3JlcG9zaXRvcnknOiB3ZWJraXRSZXBzaXRvcnlJZH0pOwogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKQEAgLTY1LDI3ICs2NSwyNyBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHNpbXBsZVJlcG9ydFswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgnYnVpbGRzJyksIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgYnVpbGRz
ID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgcmVwb3J0cyA9IHJlc3VsdFsxXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxOTg2KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRz
WzBdWyd0YWcnXSwgJzE5ODYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICByZXBvcnRJZCA9IHJlcG9ydHNbMF1bJ2lkJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0c1swXVsnYnVpbGRfdGFnJ10sIDE5ODYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZydd
LCAnMTk4NicpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBT
RVQgcmVwb3J0X2J1aWxkID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYnVpbGRzJyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoYC9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0P3JlcG9ydD0ke3JlcG9y
dElkfWApOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxOTg2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZHNbMF1bJ3RhZyddLCAnMTk4NicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
OTUsMTAgKzk1LDEwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoc2ltcGxlUmVwb3J0
WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3JlcG9y
dHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdCA9IHJlcG9y
dHNbMF07CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCBy
ZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CkBAIC0xMDYsMTQgKzEwNiwxNCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vz
cy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChy
ZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IG5ld1BvcnQgPSByZXBvcnRzWzBdOwogICAgICAgICAgICAgb3JpZ2lu
YWxSZXByb3RbJ2NvbW1pdHRlZF9hdCddID0gbnVsbDsKICAgICAgICAgICAgIG5ld1BvcnRbJ2Nv
bW1pdHRlZF9hdCddID0gbnVsbDsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvcmlnaW5h
bFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9ydFsnYnVpbGQnXSk7CisgICAgICAgICAgICBhc3NlcnQu
bm90U3RyaWN0RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10p
OwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RbJ2J1aWxkJ10gPSBudWxsOwogICAgICAgICAg
ICAgbmV3UG9ydFsnYnVpbGQnXSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG9yaWdpbmFsUmVwcm90LCBuZXdQb3J0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3JpZ2luYWxSZXByb3QsIG5ld1BvcnQpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0p
OwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCA4M2ZiZTU5N2ZlNzlhM2Ex
YmY4MDUwYWM4Mzc3YmRkODY0NzQ0ZTY2Li5jZGU1ZWRmMmJiMWYyN2Q1ZDM5NzE1Y2IzNmFlZjYw
Y2JlNTEyYjA5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwpAQCAtMTMsNyAr
MTMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKIAog
ICAgIGl0KCdzaG91bGQgcmV0dXJuICJUcmlnZ2VyYWJsZU5vdEZvdW5kIiB3aGVuIHRoZSBkYXRh
YmFzZSBpcyBlbXB0eScsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKS50aGVuKChj
b250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10s
ICdUcmlnZ2VyYWJsZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnc3RhdHVzJ10sICdUcmlnZ2VyYWJsZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yMSwxMSArMjEsMTEgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
aW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7bmFtZTogJ2J1aWxkLXdlYmtpdCd9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10sIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0cyddLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNv
bnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycs
ICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10sIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQo
KSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAn
dXBsb2FkZWRGaWxlcyddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMzLDM2ICszMywz
NiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIE1vY2tEYXRhLmFkZFRlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVl
c3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcydd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVu
dCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0
YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQpLCA0MDMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBb
e2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJl
c0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5Nycs
IGNvbW1pdE93bmVyOiAiOTMxMTYiLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLmlkLCA0MDQpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6ICc5NjMzNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnMjAxNycsIGNvbW1pdE93bmVyOiAiOTYzMzYi
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCA1KTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLCB7Y29t
bWl0T3duZXI6IG51bGwsIGlkOiA4NzgzMiwgcmVwb3NpdG9yeTogJzknLCByZXZpc2lvbjogJzEw
LjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiA5MzExNiwgcmVwb3Np
dG9yeTogJzExJywgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAxNDQ1OTQ1ODE2ODc4fSkKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLCB7Y29tbWl0
T3duZXI6ICc5MzExNicsIGlkOiAnMTc5NycsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lvbjog
J293bmVkLWpzYy02MTYxJywgdGltZTogMTQ1Njk2MDc5NTMwMH0pCi0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVszXSwge2NvbW1pdE93bmVyOiBudWxsLCBp
ZDogOTYzMzYsIHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogMTQ0
ODIyNTMyNTY1MH0pCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVs0XSwge2NvbW1pdE93bmVyOiAnOTYzMzYnLCBpZDogMjAxNywgcmVwb3NpdG9yeTogJzIx
MycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCA1
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cydd
WzBdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnODc4MzInLCByZXBvc2l0b3J5OiAnOScsIHJl
dmlzaW9uOiAnMTAuMTEgMTVBMjg0JywgdGltZTogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0sIHtjb21taXRPd25lcjogbnVsbCwg
aWQ6ICc5MzExNicsIHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTog
MTQ0NTk0NTgxNjg3OH0pCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMxMTYnLCBpZDogJzE3OTcnLCByZXBv
c2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScsIHRpbWU6IDE0NTY5NjA3
OTUzMDB9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6ICc5NjMzNicsIHJlcG9zaXRvcnk6ICcx
MScsIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogMTQ0ODIyNTMyNTY1MH0pCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVs0XSwge2NvbW1pdE93
bmVyOiAnOTYzMzYnLCBpZDogJzIwMTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdv
d25lZC1qc2MtOTE5MScsIHRpbWU6IDE0NjIyMzA4MzcxMDB9KQogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7
CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF1bJ2NyZWF0ZWRBdCddID0g
MDsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXVsnY3JlYXRlZEF0J10g
PSAwOwogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdWydjcmVhdGVkQXQn
XSA9IDA7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM11bJ2NyZWF0ZWRB
dCddID0gMDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcs
IHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRl
c3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czogJ3Bl
bmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwg
Y3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAnNzA1JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTog
JzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAn
NjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzEnLCBjb21taXRTZXQ6ICc0MDQnLCBzdGF0
dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6
IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDogJzcwNicsIHRhc2s6ICcxMDgwJywgdHJpZ2dl
cmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0
Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcyJywgY29tbWl0U2V0OiAnNDAz
Jywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGws
IGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcnLCB0YXNrOiAnMTA4MCcs
IHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAw
JywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMycsIGNvbW1pdFNl
dDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJs
OiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXSwge2lkOiAnNzA0Jywg
dGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAx
JywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjog
JzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRp
b246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0s
IHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9y
eUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAn
OTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGluZycsIHN0
YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6
IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmln
Z2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBs
YXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0
MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVs
bCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwogICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC03MCwzMCArNzAsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJv
b3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywg
J2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAg
ICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwg
cmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywg
cmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBb
CiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6
IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAg
ICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWly
ZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywg
J3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51
bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0
dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkw
MDogewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3Rh
dHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZv
clJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAg
ICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZl
TmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3
b3JkJywKQEAgLTEwMSw1MyArMTAxLDUzIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3Rz
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLmlkLCA2MDApOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
aWQpLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzIn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1d
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2
aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEn
fV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLQot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgw
MCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29t
bWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5p
ZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0p
OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10u
bGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAg
IH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZXVzZSByb290IGJ1aWx0IGZvciBvd25lZCBjb21taXQg
aWYgc2FtZSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCBleGlzdHMnLCBhc3luYyAoKSA9PiB7CiAg
ICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFR3b01vY2tUZXN0R3JvdXBXaXRoT3duZWRDb21taXRz
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhj
b250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMn
LCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6
ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAg
IHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0
T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogbnVsbH1dKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQsIDcwNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCwgNzA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDQwNSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAzKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdj
b21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs3MDg6IHsKICAgICAgICAg
ICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IDcw
NH19OwpAQCAtMTU5LDI5ICsxNTksMjkgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVl
c3RzL2J1aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA0MDUpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2Nv
bW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLmlkKSwgNDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDQwNSk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0
OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1p
dDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21t
aXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RG
aWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkLCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3Jywg
Y29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogJzEwMSd9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDcwOCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
KSwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgncmV1c2Ugcm9vdHMgZnJvbSBleGlzdGlu
ZyBidWlsZCByZXF1ZXN0cyBpZiB0aGUgY29tbWl0cyBzZXRzIGFyZSBlcXVhbCBleGNlcHQgdGhl
IGV4aXN0ZW5jZSBvZiBjdXN0b20gcm9vdHMnLCBhc3luYyAoKSA9PiB7CkBAIC0xOTUsMzIgKzE5
NSwzMiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgXSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQn
KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQo
KSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAn
dXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkz
MTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29t
bWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0
U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IG51bGx9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbJzEwMyddKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsn
MTA0J10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5
MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1
ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAg
ICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVy
bDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJl
dXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldp
dGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAg
ICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3Jk
JzogJ3Bhc3N3b3JkJywKQEAgLTIyOCwyNyArMjI4LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9i
dWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQpLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4
MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNl
LCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEw
MX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
Y3VzdG9tUm9vdHMsIFsxMDNdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsxMDRdKTsKLQotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywg
cmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5jdXN0b21Sb290cywgWycx
MDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgZmFpbCBy
ZXF1ZXN0IHdpdGggIkNhbm5vdFJldXNlRGVsZXRlZFJvb3QiIGlmIGFueSByb290IHRvIHJldXNl
IGlzIGRlbGV0ZWQnLCBhc3luYyAoKSA9PiB7CkBAIC0yOTksMzEgKzI5OSwzMCBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBDUkVBVEUgVFJJR0dFUiBlbXVsYXRlX2ZpbGVfcHVy
Z2UgQUZURVIgVVBEQVRFIE9GIGNvbW1pdHNldF9yb290X2ZpbGUgT04gY29tbWl0X3NldF9pdGVt
cwogICAgICAgICAgICAgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGVtdWxhdGVfZmls
ZV9wdXJnZSgpO2ApOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250
ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAn
c3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQp
LCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCku
c29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1
cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQsIDYwMCk7Ci0KLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51
bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewotICAgICAg
ICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTog
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICBzdGF0dXM6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dz
KCdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jywgewog
ICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKQEAgLTMzNywyOSArMzM2LDI5
IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2VydmVy
LmRhdGFiYXNlKCksIFsncnVubmluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10sIHRydWUsIGZhbHNl
KTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwg
Nik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9u
SXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLnJl
dmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgMTIpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCwgNDAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8yJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uaWQsIDkw
MCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29t
bWl0U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzhdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkz
MTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8yJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uaWQpLCA5MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1p
dFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bOF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29u
c3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uaWR9fTsKKyAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRS
ZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQpfX07CiAKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdOb01hdGNoaW5nQ29tbWl0U2V0
SXRlbScsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zNzQsMzAgKzM3MywzMCBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5k
YXRhYmFzZSgpLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwMSwgY29tbWl0OiAx
MTExNjh9KQogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQn
KTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwg
Nik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQw
MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQsIDYw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVu
Z3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2
aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9
LAogICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAg
ICAge2NvbW1pdDogJzExMTE2OCcsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9u
SXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAw
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgMTIpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAx
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8yJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uaWQsIDkwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0
LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29t
bWl0U2V0KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlkcy8yJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCks
IDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bOF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBk
YXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwg
YnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9
fTsKKyAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0
Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07
CiAKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RSZXVzZVJvb3RXaXRoTm9uTWF0
Y2hpbmdDb21taXRTZXRzJywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldp
dGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAg
ICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKQEAgLTQxMCwzMCArNDA5LDMwIEBAIGRlc2Ny
aWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBN
b2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2VydmVyLmRhdGFiYXNl
KCksIFsncnVubmluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pOwogICAgICAgICBjb25zdCBjb250
ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2Fw
aS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1p
dFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWls
ZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRG
aWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTog
bnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVt
cywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZp
c2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjog
bnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0s
Ci0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6
IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdydW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNl
dCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29t
bWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsICdydW5uaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0
ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRS
ZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAg
ICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJs
OiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1
c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAg
YXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5Pbmx5UmV1c2VDb21wbGV0ZWRCdWlsZFJlcXVlc3QnLCAo
KSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWls
ZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5
bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLApAQCAt
NDQ1LDI3ICs0NDQsMjcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJv
b3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJl
cXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0
LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdj
b21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMn
LCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwg
NCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9u
SXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAw
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAg
ICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAn
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1
aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVz
LCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
bnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7
OTAwOiB7CiAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0
Rm9yUm9vdFJldXNlOiA5OTl9fTsKQEAgLTQ4MSw1NSArNDgwLDU1IEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEu
YWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBp
L2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQp
LnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0
dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0
U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2
aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDEpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVt
cywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LCB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5p
ZCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAn
ODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5NjMzNicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLmlkLCA4Nzgz
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJlcG9z
aXRvcnksICc5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cydd
WzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcxMScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwgJzE5MTYyMicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5pZCwgOTYzMzYp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0
b3J5LCAnMTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11b
Ml0ucmV2aXNpb24sICcxOTI3MzYnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5w
bGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS50
ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0u
Y29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgJzIwMCcpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5p
ZCwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzJdLm9yZGVyLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCwgNDAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVszXS50ZXN0LCAnMjAwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnOScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5y
ZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCksIDkzMTE2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmVwb3NpdG9yeSwgJzEx
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFd
LnJldmlzaW9uLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnY29tbWl0cyddWzJdLmlkKSwgOTYzMzYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0b3J5LCAnMTEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmV2
aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDAp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdwZW5kaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmlkKSwgNzAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLm9yZGVyKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0u
dGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XS5vcmRlciksIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uY29t
bWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcy
MDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIp
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCks
IDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01MzcsNTUgKzUzNiw1NSBAQCBkZXNjcmliZSgnL2Fw
aS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRh
LmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2Fw
aS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQ/dXNlTGVnYWN5SWRSZXNvbHV0aW9uPXRydWUn
KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdj
b21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQo
KSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAn
dXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkLCA0
MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywK
ICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LCB7Y29tbWl0
OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnbWFjT1MnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNpb24sICcxMC4xMSAxNUEy
ODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0uaWQs
IDkzMTE2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0u
cmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5pZCwgOTYzMzYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0b3J5LCAnV2ViS2l0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9uLCAnMTky
NzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICdzb21lIHBs
YXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCBb
J3NvbWUgdGVzdCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJ3NvbWUg
cGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3Qs
IFsnc29tZSB0ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5pZCwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnc29t
ZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVz
dCwgWydzb21lIHRlc3QnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICdz
b21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS50
ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50Wydjb21taXRzJ11bMF0uaWQpLCA4NzgzMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICdt
YWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCksIDkzMTE2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmVwb3NpdG9y
eSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXVsxXS5yZXZpc2lvbiwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5pZCksIDk2MzM2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9y
eSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOworCisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciksIDApOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZv
cm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgWydzb21lIHRlc3QnXSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzFdLmlkKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNl
dCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCBbJ3NvbWUg
dGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3Jk
ZXIpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRl
c3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCksIDcwMyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bM10udGVzdCwgWydzb21lIHRlc3QnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC01OTUsNyArNTk0LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSku
dGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5k
QnlJZCgyMDApOwogICAgICAgICAgICAgYXNzZXJ0KHRlc3QpOwpAQCAtNjAzLDk0ICs2MDIsOTQg
QEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZCg2NSk7CiAgICAgICAgICAgICBh
c3NlcnQocGxhdGZvcm0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5pZCgpLCA3MDQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3Vw
SWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBD
b21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc1N0
YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzA1KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5p
ZCgpKSwgNzA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFd
Lm9yZGVyKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmNv
bW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1sxXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1sxXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1
aWxkUmVxdWVzdHNbMV0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCksIDcw
Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJ
ZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVz
dCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnBs
YXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzJdLm9yZGVyKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwg
dGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQu
b2soYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzU3RhcnRlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmlzUGVuZGluZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5pZCgpLCA3MDcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10u
dGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCkgaW5z
dGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzNdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzNdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sz
XS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAgICAgICAgICAgY29uc3QganNjID0gUmVwb3Np
dG9yeS5maW5kQnlJZCgyMTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzYy5uYW1lKCks
ICdKYXZhU2NyaXB0Q29yZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzYy5u
YW1lKCksICdKYXZhU2NyaXB0Q29yZScpOwogCiAgICAgICAgICAgICBjb25zdCBmaXJzdENvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCks
IGZpcnN0Q29tbWl0U2V0KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNlY29u
ZENvbW1pdFNldCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Zmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2
MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEw
LjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293
bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShq
c2MpLCAnMTkyNzM2Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdCA9IGZpcnN0Q29t
bWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnko
b3N4KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LnJldmlzaW9u
KCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hD
b21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOwogCiAgICAg
ICAgICAgICBjb25zdCBmaXJzdFdlYktpdENvbW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFdlYktp
dENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
K2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFdlYktpdENvbW1pdC50aW1l
KCksIDE0NDU5NDU4MTY4NzgpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRXZWJLaXRDb21t
aXQgPSBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCks
IDE0NDgyMjUzMjU2NTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFdl
YktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOwogCiAg
ICAgICAgICAgICBjb25zdCBmaXJzdFNKQ0NvbW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZv
clJlcG9zaXRvcnkoanNjKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFNKQ0NvbW1p
dC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCgrZmlyc3RTSkNDb21taXQudGltZSgpLCAxNDU2OTYwNzk1MzAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChmaXJzdFNKQ0NvbW1pdC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTYx
NjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RTSkNDb21taXQudGlt
ZSgpLCAxNDU2OTYwNzk1MzAwKTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kU0pDQ29tbWl0
ID0gc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkoanNjKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZWNvbmRTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy05MTkx
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK3NlY29uZFNKQ0NvbW1pdC50aW1lKCksIDE0
NjIyMzA4MzcxMDApCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kU0pDQ29t
bWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMwODM3MTAwKQogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNjk4LDcgKzY5Nyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRUZXN0
R3JvdXBXaXRoT3duZXJDb21taXROb3RJbkNvbW1pdFNldChUZXN0U2VydmVyLmRhdGFiYXNlKCkp
OwogICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3RzID0gYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdl
YmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDEpOwogCiAg
ICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAgICAgICAgIGFzc2VydCh0
ZXN0KTsKQEAgLTcwOCwzMyArNzA3LDMzIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3Rz
JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IGJ1aWxkUmVx
dWVzdHNbMF07CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCA3MDQp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCksIDkwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QudGVzdCgpLCB0ZXN0KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qub3JkZXIoKSwgMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDcwNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QudGVzdEdyb3VwSWQoKSks
IDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QudGVzdCgpLCB0
ZXN0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgp
LCBwbGF0Zm9ybSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3Qub3JkZXIoKSksIDApOwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhh
c1N0YXJ0ZWQoKSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKIAogICAgICAgICBjb25zdCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKDkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAgICAgICBjb25zdCBqc2MgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKDIxMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzYy5uYW1lKCksICdK
YXZhU2NyaXB0Q29yZScpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
J293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC50b3BMZXZlbFJlcG9zaXRvcmllcygpLnNvcnQoKG9uZSwgYW5vdGhl
cikgPT4gb25lLmlkKCkgPCBhbm90aGVyLmlkKCkpLCBbb3N4LCB3ZWJraXRdKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwg
JzEwLjExIDE1QTI4NCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1q
c2MtOTE5MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb21taXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMoKS5zb3J0KChvbmUsIGFu
b3RoZXIpID0+IHBhcnNlSW50KG9uZS5pZCgpKSAtIHBhcnNlSW50KGFub3RoZXIuaWQoKSkpLCBb
b3N4LCB3ZWJraXRdKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5yZXBvc2l0b3J5
R3JvdXAoKS5hY2NlcHRzKGNvbW1pdFNldCkpOwogICAgIH0pOwogCkBAIC03NDQsNyArNzQzLDcg
QEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZv
clRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1
ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0
aCwgNCk7CiAKICAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAg
ICAgICAgICAgYXNzZXJ0KHRlc3QpOwpAQCAtNzUyLDc5ICs3NTEsNzkgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBsZXQgcGxhdGZv
cm0gPSBQbGF0Zm9ybS5maW5kQnlJZCg2NSk7CiAgICAgICAgICAgICBhc3NlcnQocGxhdGZvcm0p
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQo
KSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3Qo
KSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0
Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5vcmRlcigpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSksIDYwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRl
c3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxh
dGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc1N0YXJ0ZWQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3Rh
dHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRl
c3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpIGluc3Rh
bmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sx
XS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sx
XS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0u
aXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCksIDcwMik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3JtKCksIHBsYXRm
b3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCks
IDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0
Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1syXS5vcmRlcigpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0
c1syXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzJdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5p
ZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVz
dEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzNdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSks
IDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50
ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRT
ZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzNdLmhhc0ZpbmlzaGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzNdLmhhc1N0YXJ0ZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1szXS5pc1BlbmRpbmcoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAogICAgICAgICAgICAgbGV0IG9zeCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5h
bWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Lm5hbWUo
KSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktp
dCcpOwogCiAgICAgICAgICAgICBsZXQgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBd
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
Y29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1pdFNldCk7CiAKICAg
ICAgICAgICAgIGxldCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0
KCksIHNlY29uZENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gp
LCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
b3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZp
cnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKIAogICAgICAgICAgICAgbGV0IG9zeENvbW1pdCA9IGZpcnN0Q29tbWl0U2V0
LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LnJldmlzaW9uKCksICcx
MC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQs
IHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOwogCiAgICAgICAgICAg
ICBsZXQgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJLaXRDb21taXQu
cmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFdl
YktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1
OTQ1ODE2ODc4KTsKIAogICAgICAgICAgICAgbGV0IHNlY29uZFdlYktpdENvbW1pdCA9IHNlY29u
ZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMy
NTY1MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0
LnJldmlzaW9uKCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgr
c2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC04MzQsNyArODMzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsK
ICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC04NDQsNyArODQzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAg
fSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04NTQs
NyArODUzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigo
YnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhh
c1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNQ
ZW5kaW5nKCkpOwpAQCAtODc2LDcgKzg3NSw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVl
c3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KGJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2so
YnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFi
dWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsKQEAgLTg5OSwzMiArODk4LDMyIEBAIGRlc2Ny
aWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2Vy
YWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSwgNjAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLm9yZGVy
KCksIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwg
NzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91
cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS5vcmRlcigpLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzJdLmlkKCksIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sy
XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOwotCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCA3MTApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCksIDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgNzExKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlkKCksIDcxMik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJZCgp
LCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0u
b3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5p
ZCgpLCA3MTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10udGVz
dEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzddLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSksIDYw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1swXS5vcmRlcigpKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA2MDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0u
b3JkZXIoKSksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLm9yZGVy
KCkpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzNdLmlkKCkpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwg
Myk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzRdLmlkKCkpLCA3MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpKSwgMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1
XS5pZCgpKSwgNzExKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSksIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0uaWQo
KSksIDcxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0c1s2XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCkpLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCA3
MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbN10udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpKSwgMyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC05MzcsMzAgKzkzNiwzMCBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
ID0gVHJpZ2dlcmFibGUuYWxsKCkuZmluZCgodHJpZ2dlcmFibGUpID0+IHRyaWdnZXJhYmxlLm5h
bWUoKSA9PSAnYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dl
cmFibGUucmVwb3NpdG9yeUdyb3VwcygpLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpLmxlbmd0aCwgMik7CiAg
ICAgICAgICAgICBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1l
KHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1naXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMV0ubmFtZSgpLCAnd2Via2l0LXN2bicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKICAg
ICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQt
d2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1sxXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sy
XS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
cmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDE3MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vw
c1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCAx
NzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLnJlcG9zaXRv
cnlHcm91cCgpLCBncm91cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbNl0uaWQoKSwgMTcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1s2XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlkKCksIDE3MDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0u
aWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1syXS5pZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10uaWQo
KSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSksIDE3MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s1XS5pZCgpKSwgMTcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLmlk
KCkpLCAxNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzZdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDE3MDMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbN10ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1swXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NzEsMzIgKzk3MCwz
MiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJl
cXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwg
NzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpLCA3MTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzEzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpLCAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcwMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgp
LCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0u
b3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5p
ZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0udGVz
dEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzZdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbN10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzddLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcxMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgp
KSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzFdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkpLCA3MTIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYw
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1syXS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10u
b3JkZXIoKSksIDMpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s0XS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0ub3Jk
ZXIoKSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbNV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCkp
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzZdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3
XS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTAwOCwzNiArMTAwNywzNiBAQCBkZXNjcmliZSgnL2Fw
aS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAnc2xhdmVQ
YXNzd29yZCc6ICdwYXNzd29yZCcsCiAgICAgICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVwZGF0
ZXMnOiB1cGRhdGVzCiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2
NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NhbmNlbGVkJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzBdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLm9y
ZGVyLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3
MDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0
U2V0LCA0MDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2
NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjYW5jZWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNl
dCksIDQwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0udGVz
dCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ11bMl0ub3JkZXIpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsyXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5p
ZCksIDcwMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUlu
dChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnBs
YXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0KSwgNDAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CiAg
ICAgICAgICAgICB9LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnU2hv
dWxkIG5vdCBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpz
CmluZGV4IDE1MTkxMGJhZWIyNTU2MDI2YjkyZjBhMzFiZDE5MDU2OGJmYWI3MTMuLjI4NTY5ZjA2
MzczMDRlM2E2MmNmNzcwMDkyMzkzZjdmMGU3MzY1OTcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpA
QCAtMTE5LDIyICsxMTksMjIgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAo
KSB7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21t
aXQsIHN1Ym1pdHRlZCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ3Jldmlz
aW9uJ10sIHN1Ym1pdHRlZFsncmV2aXNpb24nXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChuZXcg
RGF0ZShjb21taXRbJ3RpbWUnXSkudG9JU09TdHJpbmcoKSwgc3VibWl0dGVkWyd0aW1lJ10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydtZXNzYWdlJ10sIHN1Ym1pdHRlZFsnbWVzc2Fn
ZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9yTmFtZSddLCBzdWJtaXR0
ZWRbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydhdXRo
b3JFbWFpbCddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJtaXR0ZWRbJ3JldmlzaW9uJ10p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3IERhdGUoY29tbWl0Wyd0aW1lJ10pLnRv
SVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2UnXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0dGVkWydhdXRob3In
XVsnbmFtZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFsnYXV0aG9yRW1h
aWwnXSwgc3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgaWYoc3VibWl0
dGVkWydwcmV2aW91c0NvbW1pdCddKSB7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0Wydw
cmV2aW91c0NvbW1pdCddKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFsncHJldmlvdXNDb21taXQnXSwgbnVsbCk7CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi8nLCAoKSA9
PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdCcp
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQ2LDggKzE0Niw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydj
b21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIApAQCAtMTU1LDE4ICsxNTUsMTggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lv
bkNvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8nKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJl
c3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21t
aXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDMpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbW1pdHMgPSBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3Vi
bWl0dGVkKGNvbW1pdHNbMF0sIHN1Ym1pdHRlZENvbW1pdHNbMF0pOwogICAgICAgICAgICAgICAg
IGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdHNbMV0sIHN1Ym1pdHRlZENv
bW1pdHNbMV0pOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0
dGVkKGNvbW1pdHNbMl0sIHN1Ym1pdHRlZENvbW1pdHNbMl0pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzJdWydwcmV2aW91c0NvbW1pdCddLCBjb21taXRzWzFdWydpZCdd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1syXVsncHJldmlv
dXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNp
b25Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzeXN0ZW1WZXJz
aW9uQ29tbWl0cyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvY29tbWl0cy9PU1gvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbJ2NvbW1p
dHMnXTsKICAgICAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3lzdGVtVmVy
c2lvbkNvbW1pdHNbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0cy5sZW5ndGgsIHN1Ym1pdHRlZENvbW1pdHMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1s1XVsn
cmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ3Jl
dmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNF1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzJdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRz
WzNdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sz
XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1syXVsncmV2aXNpb24nXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbNF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENv
bW1pdHNbMV1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzVdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzBdWydyZXZpc2lvbiddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIHN1Ym1pdHRl
ZENvbW1pdHMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1swXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1s1XVsncmV2aXNpb24nXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10s
IHN1Ym1pdHRlZENvbW1pdHNbNF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzJdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzNd
WydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
c1szXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1syXVsncmV2aXNpb24nXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbNF1bJ3JldmlzaW9uJ10sIHN1
Ym1pdHRlZENvbW1pdHNbMV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzVdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzBdWydy
ZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE5
NCw3ICsxOTQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vbGRlc3QnLCAoKSA9PiB7CiAg
ICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRoZXJlIGFy
ZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9vbGRlc3Qn
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5k
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIwMiw4ICsyMDIsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwg
J25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0
Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10p
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMTQsOCArMjE0LDggQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1
bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFz
T25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29t
bWl0cyddWzBdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTIyNyw5ICsyMjcs
OSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9vbGRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydjb21taXRzJ11bNV1bJ3Jl
dmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRz
Wydjb21taXRzJ11bNV1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L2xh
dGVzdCcsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZv
dW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0L2xhdGVzdCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdS
ZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
MjQ1LDggKzI0NSw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ3JlcG9zaXRv
cmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC9sYXRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI1
Nyw4ICsyNTcsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXRlc3QnKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZl
cnNpb25Db21taXRzWydjb21taXRzJ10uc2xpY2UoKS5wb3AoKSk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CkBAIC0yNzAsOSArMjcwLDkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGF0ZXN0Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJz
aW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjg0LDEzICsyODQsMTMgQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBk
Yi5xdWVyeShgREVMRVRFIEZST00gdGVzdHMgV0hFUkUgdGVzdF9uYW1lID0gJ0EtVGVzdCdgKTsK
IAogICAgICAgICAgICAgY29uc3QgcGxhdGZvcm1zID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdwbGF0
Zm9ybXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChwbGF0Zm9ybXMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwbGF0Zm9ybXMubGVuZ3RoLCAxKTsKIAog
ICAgICAgICAgICAgY29uc3QgdGVzdF9tZXRyaWNzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0ZXN0
X21ldHJpY3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0X21ldHJpY3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0X21ldHJpY3MubGVuZ3Ro
LCAxKTsKIAogICAgICAgICAgICAgY29uc3QgdGVzdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3Rl
c3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAg
ICBhc3NlcnQodGVzdF9tZXRyaWNzWzBdLmlkICE9IHRlc3RzWzBdLmlkKTsKIApAQCAtMzAyLDcg
KzMwMiw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRl
c2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L2xhc3QtcmVwb3J0ZWQnLCAoKSA9PiB7
CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRoZXJl
IGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0
LXJlcG9ydGVkJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRv
cnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0zMTQsOCAr
MzE0LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTMyMyw4ICszMjMsOCBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUn
OiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRl
ZCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtd
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQwLDggKzM0MCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ10uc2xpY2UoKS5wb3AoKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CkBAIC0zNTMsOSArMzUzLDkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1
cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZCcpOwogICAg
ICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lv
bkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zNzIsMzEgKzM3MiwzMSBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2NyZ0bz0z
NzAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdCA9IHJlc3VsdHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2QzY4Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2QzY4Jyk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNzAmdG89
MzY3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTIwMCZ0bz0yOTkn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzY5JnRvPTQzMicpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgY29t
bWl0ID0gcmVzdWx0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJl
dmlzaW9uLCAnU2llcnJhMTZEMzInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0LnJldmlzaW9uLCAnU2llcnJhMTZEMzInKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0
b3J5Pi88Y29tbWl0PicsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3Np
dG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RG
b3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIApAQCAtNDE2LDcgKzQxNiw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8y
MTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
VW5rbm93bkNvbW1pdCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC00Mjgs
OCArNDI4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk1MCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsw
XSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKICAgICAgICAg
ICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NTAnLApAQCAtNDQ3LDggKzQ0Nyw4IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0LzIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFz
T25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29t
bWl0cyddWzFdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTQ1OCw4ICs0NTgs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5P3ByZWZpeC1tYXRjaD1mYWxz
ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQo
cmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMV0pOwog
ICAgICAgICB9KTsKIApAQCAtNDY4LDggKzQ2OCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3Vi
dmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0
YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAg
ICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dl
YktpdC8yMTA5NDk/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2Vy
dENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJz
aW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7CiAKQEAgLTQ3OCw3ICs0Nzgs
NyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ/cHJlZml4LW1hdGNoPXRydWUn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3Vz
UmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hl
biB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVkIHJl
dmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKQEAgLTQ4Niw4ICs0ODYsOCBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyKTsKICAgICAgICAgICAgIGF3
YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgY29t
bWl0c09uZVByZWZpeE9mVGhlT3RoZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdh
aXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ/cHJlZml4LW1hdGNo
PXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0
dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlclsnY29t
bWl0cyddWzBdKTsKICAgICAgICAgfSk7CiAKQEAgLTQ5Niw3ICs0OTYsNyBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZl
Rm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1p
dHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQvMjEwOTA/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0
Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJzaG91bGQgbm90IG1hdGNoIHByZWZpeCBh
bmQgcmV0dXJuICdVbmtvd25Db21taXQnIHdoZW4gc3ZuIGNvbW1pdCBzdGFydHMgd2l0aCAncicg
cHJlZml4IGFuZCB0aGVyZSBpcyBubyBleGFjdCBtYXRjaCIsIGFzeW5jICgpID0+IHsKQEAgLTUw
NCw3ICs1MDQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAg
ICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvcjIxMDk1P3ByZWZpeC1t
YXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgi
c2hvdWxkIGhhbmRsZSBjb21taXQgcmV2aXNpb24gd2l0aCBzcGFjZSIsICgpID0+IHsKQEAgLTUx
NSwxMiArNTE1LDEyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TJTIwWC8xMC4xMS4xMCUy
MFNpZXJyYTE2QzY3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMSk7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQgPSByZXN1bHRzLmNvbW1pdHNbMF07Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5pZCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJzEwLjExLjEwIFNpZXJyYTE2QzY3Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbW1pdC5pZCks
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXQucmV2aXNpb24s
ICcxMC4xMS4xMCBTaWVycmExNkM2NycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC01MzgsMTMgKzUzOCwxMyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy8xL293bmVkLWNv
bW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEzMjMnKQogICAgICAgICAgICAgfSkudGhl
bigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLnN0
YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRz
LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dHMuY29tbWl0cy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgb3duZWRDb21t
aXQgPSByZXN1bHRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93
bmVkQ29tbWl0LnJlcG9zaXRvcnksIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
d25lZENvbW1pdC5yZXZpc2lvbiwgJzIxMDk1MCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvd25lZENvbW1pdC5pZCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG93bmVkQ29tbWl0LnJlcG9zaXRvcnkpLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3duZWRDb21taXQucmV2aXNpb24sICcyMTA5NTAnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3duZWRDb21taXQuaWQp
LCAyKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTU4LDggKzU1OCw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9vd25lci1yZXZpc2lvbj0x
MC4xMiUyMDE2QTMyMycpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHMuY29tbWl0cywgW10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMsIFtdKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTczLDggKzU3Myw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9vd25lci1yZXZpc2lvbj0xMC4xMiUyMDE2
QTMyNCcpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMCk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSkKICAgICB9KTsKQEAgLTU4Miw3ICs1ODIsNyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21t
aXRzLzxyZXBvc2l0b3J5Pi8/cHJlY2VkaW5nUmV2aXNpb249PGNvbW1pdC0xPiZsYXN0UmV2aXNp
b249PGNvbW1pdC0yPicsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3Np
dG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvV2ViS2l0Lz9mcm9tPTIxMDkwMCZ0bz0yMTEwMDAnKS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU5NCw3ICs1OTQsNyBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDkwMCZsYXN0UmV2aXNpb249MjEx
MDAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vu
a25vd25Db21taXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjA3LDgg
KzYwNyw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNp
b249MjEwOTQ5Jmxhc3RSZXZpc2lvbj0yMTA5NTAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
Y29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTYyMSw3ICs2MjEsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
P3ByZWNlZGluZ1JldmlzaW9uPTIxMDk1MCZsYXN0UmV2aXNpb249MjEwOTQ5Jyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29tbWl0UmFuZ2UnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbW1p
dFJhbmdlJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYzNSw4ICs2MzUs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5nUmV2aXNpb249MTAu
MTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwogICAgICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21taXQpID0+IGNvbW1pdFsncmV2aXNpb24nXSks
IFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIyNjU3J10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXS5tYXAoKGNvbW1p
dCkgPT4gY29tbWl0WydyZXZpc2lvbiddKSwgWycxMC4xMiAxNkIyNTU1JywgJzEwLjEyIDE2QjI2
NTcnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY1MCw3ICs2NTAsNyBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5nUmV2aXNpb249MTAuMTIl
MjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNvbnNpc3RlbnRDb21taXRz
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY2NCw3ICs2NjQsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5nUmV2aXNpb249MTAuMTIlMjAx
NkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY3OCw4ICs2NzgsOCBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5nUmV2aXNpb249MTAuMTIlMjAxNkEz
MjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwogICAgICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNl
Wydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtNjkzLDggKzY5Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL21hY09T
Lz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAx
NkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC03MDgsOCArNzA4LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBd
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5
NDgmbGFzdFJldmlzaW9uPTIxMDk1MCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CiAgICAgICAgICAgICAg
ICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAogICAgICAgICAgICAgICAgICAgICByZXZpc2lv
bjogJzIxMDk0OScsCkBAIC03NDMsOCArNzQzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGlu
Z1JldmlzaW9uPTIxMDk0NyZsYXN0UmV2aXNpb249MjEwOTQ5Jyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF0pOwogICAgICAgICAgICAgICAgIGFzc2VydENv
bW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2ZXJzaW9u
Q29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0
cy5qcwppbmRleCBiZGEyNzRmYjE5OTZkNDdhNjEyMTQzZmNmNTIyZDZkOTk0YzRlZmQ4Li5hYzcx
OWU5ZGM4MDFlMmE2MDNkMWQzMzhhMGFmOTZlNzE3OTZmMDcwIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0
cy5qcwpAQCAtMTMsNyArMTMsNyBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9u
ICgpIHsKIAogICAgIGl0KCJzaG91bGQgZ2VuZXJhdGUgYW4gZW1wdHkgbWFuaWZlc3Qgd2hlbiBk
YXRhYmFzZSBpcyBlbXB0eSIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpLnRoZW4oKG1hbmlmZXN0KSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKG1hbmlmZXN0KS5zb3J0KCks
IFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hib2FyZCcsICdkYXNoYm9h
cmRzJywKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMobWFu
aWZlc3QpLnNvcnQoKSwgWydhbGwnLCAnYnVnVHJhY2tlcnMnLCAnYnVpbGRlcnMnLCAnZGFzaGJv
YXJkJywgJ2Rhc2hib2FyZHMnLAogICAgICAgICAgICAgICAgICdmaWxlVXBsb2FkU2l6ZUxpbWl0
JywgJ21heFJvb3RSZXVzZUFnZUluRGF5cycsICdtZXRyaWNzJywgJ3BsYXRmb3JtR3JvdXBzJywg
J3JlcG9zaXRvcmllcycsICdzaXRlVGl0bGUnLAogICAgICAgICAgICAgICAgICdzdGF0dXMnLCAn
c3VtbWFyeVBhZ2VzJywgJ3Rlc3RBZ2VUb2xlcmFuY2VJbkhvdXJzJywgJ3Rlc3RzJywgJ3RyaWdn
ZXJhYmxlcyddKTsKIApAQCAtNDUsMjIgKzQ1LDIyIEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0
JywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmlu
c2VydCgnYnVnX3RyYWNrZXJzJywgYnVnemlsbGFEYXRhKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3Qn
KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1Vy
bDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScs
IGJ1Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAogICAgICAgICAgICAgICAg
IG5ld0J1Z1VybDogJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycsIHJlcG9zaXRvcmllczogbnVs
bH19KTsKIAogICAgICAgICAgICAgbGV0IG1hbmlmZXN0ID0gTWFuaWZlc3QuX2RpZEZldGNoTWFu
aWZlc3QoY29udGVudCk7CiAgICAgICAgICAgICBsZXQgdHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmlu
ZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQodHJhY2tlcik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxsYScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtpdC5vcmcvYi8xMjMnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tl
ci5uYW1lKCksICdCdWd6aWxsYScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRy
YWNrZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtpdC5vcmcvYi8xMjMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBj
bGVhciBCdWcgYW5kIEJ1Z1RyYWNrZXIgc3RhdGljIG1hcHMgd2hlbiByZXNldCIsIGFzeW5jICgp
ID0+IHsKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVnX3Ry
YWNrZXJzJywgYnVnemlsbGFEYXRhKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxh
JywgYnVnVXJsOiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemls
bGEnLCBidWdVcmw6ICdodHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAg
IG5ld0J1Z1VybDogJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycsIHJlcG9zaXRvcmllczogbnVs
bH19KTsKIAogICAgICAgICBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChjb250ZW50KTsKQEAg
LTkyLDI4ICs5MiwyOCBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsK
IAogICAgICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51cmxG
b3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAgIGxldCBtYWNvcyA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoOSk7CiAgICAgICAgICAgICBhc3NlcnQobWFjb3MpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAg
bGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMjIpOwogICAgICAgICAgICAgYXNzZXJ0KGlv
cyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKIAogICAgICAgICAg
ICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDEpOwogICAgICAgICAgICAgYXNz
ZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmFtZSgpLCAn
QnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMp
LCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxs
YScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyks
ICdodHRwczovL3dlYmtpdC5vcmcvYi8xMjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0cmFja2VyLm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRyYWNrZXIucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXRdKTsKIAogICAgICAgICAgICAgdHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmluZEJ5SWQo
Mik7CiAgICAgICAgICAgICBhc3NlcnQodHJhY2tlcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodHJhY2tlci5uYW1lKCksICdSYWRhcicpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWUodHJhY2tlci5yZXBvc2l0b3JpZXMoKSksIFtpb3MsIG1h
Y29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5uYW1lKCksICdS
YWRhcicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWUodHJhY2tlci5yZXBvc2l0b3JpZXMoKSksIFtpb3MsIG1hY29zXSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCBkZXNjcmliZSgnL2FwaS9tYW5p
ZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtp
dC5vcmcvMTIzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm93bmVkUmVwb3Np
dG9yaWVzKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5u
YW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQu
dXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5vd25lZFJlcG9zaXRvcmllcygpLCBu
dWxsKTsKIAogICAgICAgICAgICAgbGV0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7CiAg
ICAgICAgICAgICBhc3NlcnQob3N4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFt
ZSgpLCAnT1MgWCcpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvc3gub3duZWRSZXBv
c2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUpXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwgJ09TIFgnKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwob3N4Lm93bmVkUmVwb3NpdG9yaWVzKCksIFtSZXBvc2l0b3J5LmZpbmRC
eUlkKDM1KV0pOwogCiAgICAgICAgICAgICBsZXQgaW9zID0gUmVwb3NpdG9yeS5maW5kQnlJZCgy
Mik7CiAgICAgICAgICAgICBhc3NlcnQoaW9zKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
b3MubmFtZSgpLCAnaU9TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zLm93bmVkUmVw
b3NpdG9yaWVzKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5u
YW1lKCksICdpT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3Mub3duZWRS
ZXBvc2l0b3JpZXMoKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsNyAr
MTU2LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRlcnMsIHsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZGVycywgewogICAg
ICAgICAgICAgICAgICcxJzoge25hbWU6ICdTb21lQnVpbGRlcicsIGJ1aWxkVXJsOiAnaHR0cHM6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzLyRidWlsZGVyTmFtZS9idWlsZC8kYnVpbGRUYWcn
fSwKICAgICAgICAgICAgICAgICAnMic6IHtuYW1lOiAnU29tZU90aGVyQnVpbGRlcicsIGJ1aWxk
VXJsOiBudWxsfQogICAgICAgICAgICAgfSk7CkBAIC0xNjUsMTMgKzE2NSwxMyBAQCBkZXNjcmli
ZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgbGV0IGJ1aWxk
ZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkZXIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZUJ1aWxkZXInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLnVybEZvckJ1aWxkKDEyMyksICdodHRw
czovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxkZXIvYnVpbGQvMTIzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lQnVpbGRl
cicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQo
MTIzKSwgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9Tb21lQnVpbGRlci9idWls
ZC8xMjMnKTsKIAogICAgICAgICAgICAgYnVpbGRlciA9IEJ1aWxkZXIuZmluZEJ5SWQoMik7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRlci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVPdGhlckJ1aWxkZXInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1aWxkKDEyMyksIG51bGwpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjAyLDE0ICsyMDIsMTQgQEAgZGVzY3JpYmUoJy9h
cGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5p
ZmVzdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdHMsIHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudC50ZXN0cywgewogICAgICAgICAgICAgICAgICIxIjogeyJuYW1lIjog
IlNvbWVUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVybCI6IG51bGx9LAogICAgICAgICAgICAg
ICAgICIyIjogeyJuYW1lIjogIlNvbWVPdGhlclRlc3QiLCAicGFyZW50SWQiOiBudWxsLCAidXJs
IjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjMiOiB7Im5hbWUiOiAiQ2hpbGRUZXN0IiwgInBh
cmVudElkIjogIjEiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjQiOiB7Im5hbWUi
OiAiR3JhbmRDaGlsZCIsICJwYXJlbnRJZCI6ICIzIiwgInVybCI6IG51bGx9LAogICAgICAgICAg
ICAgfSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5tZXRyaWNzLCB7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQubWV0cmljcywgewog
ICAgICAgICAgICAgICAgICc1Jzoge25hbWU6ICdUaW1lJywgdGVzdDogJzEnLCBhZ2dyZWdhdG9y
OiBudWxsfSwKICAgICAgICAgICAgICAgICAnNic6IHtuYW1lOiAnVGltZScsIHRlc3Q6ICcyJywg
YWdncmVnYXRvcjogJ1RvdGFsJ30sCiAgICAgICAgICAgICAgICAgJzcnOiB7bmFtZTogJ01hbGxv
YycsIHRlc3Q6ICcyJywgYWdncmVnYXRvcjogJ1RvdGFsJ30sCkBAIC0yNDQsNyArMjQ0LDcgQEAg
ZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQoaW9zR3JvdXApOwogICAgICAgICAgICAgYXNzZXJ0KG1hY0dyb3VwKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2
ZXJpY2tzJyk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qoc29tZVRlc3Qp
KTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChzb21lT3RoZXJUZXN0KSk7
CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3QoY2hpbGRUZXN0KSk7CkBAIC0y
NTMsOSArMjUzLDkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0VGltZSkp
OwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdE1h
bGxvYykpOwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRyaWMoY2hpbGRUZXN0
TWV0cmljKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2ZXJpY2tzLmdyb3VwKCksIG1h
Y0dyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYXZlcmlja3MuZ3JvdXAo
KSwgbWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zOWlwaG9uZTVzLm5h
bWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhvbmUgNXMnKTsKICAgICAgICAgICAgIGFz
c2VydChpb3M5aXBob25lNXMuaGFzVGVzdChzb21lVGVzdCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFpb3M5aXBob25lNXMuaGFzVGVzdChzb21lT3RoZXJUZXN0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWlvczlpcGhvbmU1cy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpAQCAtMjY0LDYzICsyNjQsNjMg
QEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdFRpbWUpKTsKICAgICAg
ICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFsbG9j
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoY2hpbGRUZXN0
TWV0cmljKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zOWlwaG9uZTVzLmdyb3VwKCks
IGlvc0dyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5aXBob25lNXMu
Z3JvdXAoKSwgaW9zR3JvdXApOwogCiAgICAgICAgICAgICBjb25zdCBtYWNQbGF0Zm9ybXMgPSBt
YWNHcm91cC5wbGF0Zm9ybXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNQbGF0Zm9y
bXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNQbGF0Zm9ybXNbMF0s
IG1hdmVyaWNrcyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjUGxhdGZvcm1z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjUGxhdGZvcm1z
WzBdLCBtYXZlcmlja3MpOwogCiAgICAgICAgICAgICBjb25zdCBpb3NQbGF0Zm9ybXMgPSBpb3NH
cm91cC5wbGF0Zm9ybXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NQbGF0Zm9ybXMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NQbGF0Zm9ybXNbMF0sIGlv
czlpcGhvbmU1cyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zUGxhdGZvcm1z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zUGxhdGZvcm1z
WzBdLCBpb3M5aXBob25lNXMpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3Qu
bmFtZSgpLCAnU29tZVRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5w
YXJlbnRUZXN0KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVz
dC5wYXRoKCksIFtzb21lVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNv
bWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc29tZVRlc3QucGFyZW50VGVzdCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc29tZVRlc3QucGF0aCgpLCBbc29tZVRlc3RdKTsKICAgICAgICAgICAgIGFz
c2VydCghc29tZVRlc3Qub25seUNvbnRhaW5zU2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzb21lVGVzdC5jaGlsZFRlc3RzKCksIFtjaGlsZFRlc3RdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QubWV0cmljcygpLCBbc29tZVRlc3RN
ZXRyaWNdKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLm5hbWUo
KSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5hZ2dy
ZWdhdG9yTmFtZSgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1l
dHJpYy5sYWJlbCgpLCAnVGltZScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21l
VGVzdE1ldHJpYy5jaGlsZE1ldHJpY3MoKSwgY2hpbGRUZXN0Lm1ldHJpY3MoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMuZnVsbE5hbWUoKSwgJ1NvbWVUZXN0IDog
VGltZScpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCks
ICdTb21lT3RoZXJUZXN0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVz
dC5wYXJlbnRUZXN0KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21l
T3RoZXJUZXN0LnBhdGgoKSwgW3NvbWVPdGhlclRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVU
ZXN0TWV0cmljXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1l
dHJpYy5uYW1lKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29t
ZVRlc3RNZXRyaWMuYWdncmVnYXRvck5hbWUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMubGFiZWwoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMuY2hpbGRNZXRyaWNzKCksIGNo
aWxkVGVzdC5tZXRyaWNzKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVU
ZXN0TWV0cmljLmZ1bGxOYW1lKCksICdTb21lVGVzdCA6IFRpbWUnKTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QucGFyZW50VGVz
dCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZU90aGVy
VGVzdC5wYXRoKCksIFtzb21lT3RoZXJUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNvbWVP
dGhlclRlc3Qub25seUNvbnRhaW5zU2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzb21lT3RoZXJUZXN0LmNoaWxkVGVzdHMoKSwgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubmFtZSgpLCAnVGlt
ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBd
LmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNv
bWVPdGhlclRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lIDogVG90YWwnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5jaGlsZE1ldHJp
Y3MoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3Qu
bWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogVGltZSA6IFRvdGFsJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0ubmFt
ZSgpLCAnTWFsbG9jJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5t
ZXRyaWNzKClbMV0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0ubGFiZWwoKSwgJ01hbGxvYyA6IFRv
dGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClb
MV0uY2hpbGRNZXRyaWNzKCkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5mdWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IE1h
bGxvYyA6IFRvdGFsJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QubmFt
ZSgpLCAnQ2hpbGRUZXN0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0LnBh
cmVudFRlc3QoKSwgc29tZVRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjaGls
ZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LmNoaWxkVGVzdHMoKSwgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNz
KClbMF0ubmFtZSgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNv
bWVPdGhlclRlc3QubWV0cmljcygpWzBdLmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmxh
YmVsKCksICdUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5jaGlsZE1ldHJpY3MoKS5sZW5ndGgsIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmZ1
bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogVGltZSA6IFRvdGFsJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0ubmFtZSgpLCAnTWFs
bG9jJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRy
aWNzKClbMV0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0ubGFiZWwoKSwgJ01hbGxvYyA6
IFRvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5t
ZXRyaWNzKClbMV0uY2hpbGRNZXRyaWNzKCkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5mdWxsTmFtZSgpLCAnU29t
ZU90aGVyVGVzdCA6IE1hbGxvYyA6IFRvdGFsJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgc29tZVRlc3QpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3Qs
IGNoaWxkVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFjaGlsZFRlc3Qub25seUNvbnRhaW5z
U2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjaGlsZFRlc3Qu
Y2hpbGRUZXN0cygpLCBbZ3JhbmRDaGlsZFRlc3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjaGlsZFRlc3QubWV0cmljcygpLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVUZXN0
IFx1MjIwQiBDaGlsZFRlc3QgOiBUaW1lJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cmFuZENoaWxkVGVzdC5uYW1lKCksICdHcmFuZENoaWxkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JhbmRDaGlsZFRlc3QucGFyZW50VGVzdCgpLCBjaGlsZFRlc3QpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hp
bGRUZXN0LCBncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjaGlsZFRlc3QuY2hpbGRUZXN0cygpLCBbZ3JhbmRDaGlsZFRlc3RdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJl
bCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5t
ZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVUZXN0IFx1MjIwQiBDaGlsZFRlc3QgOiBUaW1l
Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5uYW1l
KCksICdHcmFuZENoaWxkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRD
aGlsZFRlc3QucGFyZW50VGVzdCgpLCBjaGlsZFRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0
LCBncmFuZENoaWxkVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KGdyYW5kQ2hpbGRUZXN0Lm9u
bHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Z3JhbmRDaGlsZFRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxO
YW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IFx1MjIwQiBHcmFuZENoaWxkIDogVGlt
ZScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5j
aGlsZFRlc3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENo
aWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVs
bE5hbWUoKSwgJ1NvbWVUZXN0IFx1MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBU
aW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNzQsNTkgKzM3NCw1OSBAQCBkZXNj
cmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBN
YW5pZmVzdC5mZXRjaCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEy
MycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJL
aXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNp
b24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBj
b25zdCBvc1dlYmtpdDEgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDEwMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3NXZWJraXQxLm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zV2Via2l0MS5vd25lcklkKCksIDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zV2Via2l0MS51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5v
cmcvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3NXZWJraXQxLm5hbWUo
KSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9z
V2Via2l0MS5vd25lcklkKCkpLCA5KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c1dlYmtpdDEudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEy
MycpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOwogCiAgICAg
ICAgICAgICBjb25zdCBzaGFyZWQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDE2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzaGFyZWQubmFtZSgpLCAnU2hhcmVkJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2hhcmVkLm5hbWUoKSwgJ1NoYXJlZCcpOwogCiAgICAgICAgICAg
ICBjb25zdCBzb21lVGVzdCA9IFRlc3QuZmluZEJ5SWQoMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzb21lVGVzdC5uYW1lKCksICdTb21lVGVzdCcpOwogCiAgICAgICAgICAgICBj
b25zdCBzb21lT3RoZXJUZXN0ID0gVGVzdC5maW5kQnlJZCgyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRlc3QnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRl
c3QnKTsKIAogICAgICAgICAgICAgY29uc3QgY2hpbGRUZXN0ID0gVGVzdC5maW5kQnlJZCgzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxk
VGVzdCcpOwogCiAgICAgICAgICAgICBjb25zdCBpb3M5aXBob25lNXMgPSBQbGF0Zm9ybS5maW5k
QnlJZCgyMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zOWlwaG9uZTVzLm5hbWUoKSwg
J2lPUyA5IGlQaG9uZSA1cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvczlp
cGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhvbmUgNXMnKTsKIAogICAgICAgICAgICAgY29uc3Qg
bWF2ZXJpY2tzID0gUGxhdGZvcm0uZmluZEJ5SWQoNDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHNpZXJyYSA9IFBsYXRmb3JtLmZpbmRCeUlkKDEwNCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2llcnJhLm5hbWUoKSwgJ1RydW5rIFNpZXJyYSBNYWNCb29r
UHJvMTEsMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNpZXJyYS5uYW1lKCks
ICdUcnVuayBTaWVycmEgTWFjQm9va1BybzExLDInKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAzKTsKIAogICAgICAgICAgICAgY29u
c3QgbWFjb3NUcmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9u
KHNvbWVUZXN0LCBtYXZlcmlja3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zVHJp
Z2dlcmFibGUubmFtZSgpLCAnYnVpbGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG1hY29zVHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQud2Via2l0Lm9yZycp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZp
Z3VyYXRpb24oc29tZU90aGVyVGVzdCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRp
b24oY2hpbGRUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihz
b21lT3RoZXJUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihj
aGlsZFRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOwogCiAgICAgICAgICAgICBj
b25zdCBpb3NUcmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9u
KHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1cyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwoaW9zVHJpZ2dlcmFibGUsIG1hY29zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGlvc1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2lvcy1idWlsZC53ZWJraXQub3JnJyk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoaW9zVHJpZ2dlcmFibGUsIG1hY29zVHJp
Z2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1RyaWdnZXJhYmxl
Lm5hbWUoKSwgJ2lvcy1idWlsZC53ZWJraXQub3JnJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBp
b3M5aXBob25lNXMpLCBpb3NUcmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
VHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25l
NXMpLCBpb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJp
Z2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgaW9zOWlwaG9u
ZTVzKSwgaW9zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRy
aWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgaW9zOWlwaG9uZTVz
KSwgaW9zVHJpZ2dlcmFibGUpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNUcmlnZ2VyYWJsZSA9
IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVUZXN0LCBzaWVycmEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1RyaWdnZXJhYmxlLm5hbWUoKSwgJ21hYy1idWls
ZC53ZWJraXQub3JnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjVHJpZ2dl
cmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndlYmtpdC5vcmcnKTsKICAgICAgICAgICAgIGFzc2Vy
dChtYWNUcmlnZ2VyYWJsZS5hY2NlcHRlZFRlc3RzKCkuaGFzKHNvbWVUZXN0KSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGdyb3VwcyA9IG1hY1RyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDMpOwogICAgICAgICAg
ICAgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShncm91cHMpOwogCiAgICAg
ICAgICAgICBjb25zdCBlbXB0eUN1c3RvbVNldCA9IG5ldyBDdXN0b21Db21taXRTZXQ7CkBAIC00
NDUsMzUgKzQ0NSwzNSBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZC5zZXRSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjdXNvbVNldFdpdGhXZWJL
aXRBbmRTaGFyZWQuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCwgJzg2NDU2Jyk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1y
b290cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5pc0hpZGRlbigpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21S
b290cygpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSksIFttYWNvc10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0KSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c3RvbVNldFdp
dGhPU1gpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0
cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0
V2l0aFdlYktpdCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sx
XS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3Vwc1sxXS5pc0hpZGRlbigpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMV0ucmVwb3NpdG9yaWVz
KCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sx
XS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c3RvbVNldFdpdGhPU1gpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2Vi
S2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMo
Y3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdCksIGZhbHNlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5uYW1lKCksICd3ZWJraXQtYW5kLXNo
YXJlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5pc0hpZGRlbigpLCB0
cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0c0N1c3RvbVJv
b3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lKGdyb3Vwc1syXS5yZXBvc2l0b3JpZXMoKSksIFtzaGFyZWQsIHdlYmtpdF0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1
c3RvbVNldFdpdGhPU1gpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNo
YXJlZCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRz
KGN1c29tU2V0V2l0aFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5pc0hpZGRlbigpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSksIFttYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0KSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1
c3RvbVNldFdpdGhPU1gpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRo
V2ViS2l0QW5kU2hhcmVkKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdCksIGZhbHNlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdl
YmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5pc0hpZGRl
bigpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMV0ucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sx
XS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c3RvbVNldFdpdGhPU1gpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRX
aXRoT1NYQW5kV2ViS2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0
V2l0aFdlYktpdCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1syXS5uYW1lKCksICd3ZWJraXQtYW5kLXNoYXJlZCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwc1syXS5pc0hpZGRlbigpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
KGdyb3Vwc1syXS5yZXBvc2l0b3JpZXMoKSksIFtzaGFyZWQsIHdlYmtpdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0KSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRz
KGN1c3RvbVNldFdpdGhPU1gpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0
V2l0aFdlYktpdEFuZFNoYXJlZCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdCksIGZhbHNlKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwppbmRl
eCAzNTJiNjEyZjc2NzYxODU1ZTc4ZjUzNmJiM2ExMzA4OTU1YWNiMWY0Li4yNmFmM2QzMDFjNWRh
MzM0NjYyMTk0ODdiMDM0NzdjYTIyNGRjY2M2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0
LXRlc3RzLmpzCkBAIC0yNDMsMTIgKzI0MywxMiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVu
dC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdp
dGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/bWV0cmljPSR7
cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVl
c3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNTYsMTIg
KzI1NiwxMiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVb
MF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3Jt
QW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVz
dWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1g
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVz
dCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjY5LDEyICsyNjksMTIgQEAgZGVzY3Jp
YmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRh
aW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJl
bWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9YSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFBsYXRmb3JtJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZFBsYXRmb3JtJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODIsMTIgKzI4MiwxMiBA
QCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmlj
KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBp
L21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7
cmVzdWx0Lm1ldHJpY0lkfWJgKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkTWV0cmlj
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZE1ldHJpYycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzE3LDcgKzMxNyw3
IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAv
YXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09NDYmbWV0cmljPTVgKS50aGVuKChyZXNwb25z
ZSkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSk7CiAgICAgICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MDQpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzI2LDMxICszMjYsMzEgQEAgZGVzY3Jp
YmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRh
aW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9
JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCBidWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhCdWlsZFRp
bWVbMF1bJ2J1aWxkVGltZSddKSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMocmVzcG9uc2UpLnNvcnQoKSwKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2UpLnNvcnQoKSwKICAgICAgICAgICAgICAgICBbJ2Ns
dXN0ZXJDb3VudCcsICdjbHVzdGVyU2l6ZScsICdjbHVzdGVyU3RhcnQnLAogICAgICAgICAgICAg
ICAgICAgJ2NvbmZpZ3VyYXRpb25zJywgJ2VsYXBzZWRUaW1lJywgJ2VuZFRpbWUnLCAnZm9ybWF0
TWFwJywgJ2xhc3RNb2RpZmllZCcsICdzdGFydFRpbWUnLCAnc3RhdHVzJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBbCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIFsKICAgICAg
ICAgICAgICAgICAnaWQnLCAnbWVhbicsICdpdGVyYXRpb25Db3VudCcsICdzdW0nLCAnc3F1YXJl
U3VtJywgJ21hcmtlZE91dGxpZXInLAogICAgICAgICAgICAgICAgICdyZXZpc2lvbnMnLCAnY29t
bWl0VGltZScsICdidWlsZCcsICdidWlsZFRpbWUnLCAnYnVpbGRUYWcnLCAnYnVpbGRlciddKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGFydFRpbWUnXSwgcmVwb3J0
V2l0aEJ1aWxkVGltZS5zdGFydFRpbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGFydFRpbWUnXSwgcmVwb3J0V2l0aEJ1aWxkVGltZS5zdGFydFRpbWUpOwog
ICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZihyZXNwb25zZVsnbGFzdE1vZGlmaWVkJ10pID09ICdu
dW1iZXInLCAnbGFzdE1vZGlmaWVkIHRpbWUgc2hvdWxkIGJlIGEgbnVtZXJpYycpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHJlc3BvbnNlWydjb25maWd1cmF0
aW9ucyddKSwgWydjdXJyZW50J10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChPYmplY3Qua2V5cyhyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXSksIFsnY3VycmVudCddKTsK
IAogICAgICAgICAgICAgY29uc3QgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlv
bnMnXVsnY3VycmVudCddOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3NbMF0ubGVuZ3Ro
LCByZXNwb25zZVsnZm9ybWF0TWFwJ10ubGVuZ3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHJlc3Bv
bnNlWydmb3JtYXRNYXAnXS5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKICAg
ICAgICAgICAgICAgICBtZWFuOiAzLAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1
LAogICAgICAgICAgICAgICAgIHN1bTogMTUsCkBAIC0zNjcsNyArMzY3LDcgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
QnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4g
TGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CkBAIC0zODMsMjAgKzM4MywyMCBA
QCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBjb25zdCBidWlsZGVycyA9IHJlc3VsdFsyXTsKICAgICAgICAgICAgIGNvbnN0IHJlc3Bv
bnNlID0gcmVzdWx0WzNdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkZXJzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudElkID0g
cnVuc1swXVsnaWQnXTsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkSWQgPSBidWlsZHNbMF1bJ2lk
J107CiAgICAgICAgICAgICBjb25zdCBidWlsZGVySWQgPSBidWlsZGVyc1swXVsnaWQnXTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJy
ZW50J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBtZWFzdXJlbWVudCA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J11b
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1h
dE1hcCddLmluZGV4T2YoJ2lkJyldLCBtZWFzdXJlbWVudElkKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQn
KV0sIGJ1aWxkSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3Jlc3Bv
bnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAn
XS5pbmRleE9mKCdpZCcpXSwgbWVhc3VyZW1lbnRJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxk
JyldLCBidWlsZElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWFzdXJlbWVu
dFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQyOCw4ICs0MjgsOCBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXZp
c2lvblRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhSZXZpc2lvblswXVsncmV2aXNpb25zJ11b
J1dlYktpdCddWyd0aW1lc3RhbXAnXSkpOwogICAgICAgICAgICAgY29uc3QgcmV2aXNpb25CdWls
ZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhSZXZpc2lvblswXVsnYnVpbGRUaW1lJ10pKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1
cnJlbnRSb3dzWzBdKSwgeworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRS
b3dzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1h
dChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAg
ICAgbWVhbjogMTMsCiAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAg
ICAgICAgIHN1bTogNjUsCkBAIC00MzksNyArNDM5LDcgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3Vy
ZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgY29tbWl0VGltZTogcmV2
aXNpb25UaW1lLAogICAgICAgICAgICAgICAgYnVpbGRUaW1lOiByZXZpc2lvbkJ1aWxkVGltZSwK
ICAgICAgICAgICAgICAgIGJ1aWxkVGFnOiAnMTI0JyB9KTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLCB7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9y
bWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgewogICAgICAgICAgICAgICAgIG1lYW46IDMsCiAg
ICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICAgc3VtOiAx
NSwKQEAgLTQ2NiwxNiArNDY2LDE2IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZW1vdGUuZ2V0
SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5w
bGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAKICAgICAgICAgY29uc3Qg
Y3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSku
YnVpbGRUYWcsIDEyNyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNl
Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmJ1aWxkVGFnLCAxMjgpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93
c1swXSkuYnVpbGRUYWcsICcxMjcnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSkuYnVpbGRUYWcsICcx
MjgnKTsKICAgICAgICAgYXNzZXJ0KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJl
bnRSb3dzWzBdKS5jb21taXRUaW1lIDwgcmVzcG9uc2Uuc3RhcnRUaW1lKTsKICAgICAgICAgYXNz
ZXJ0KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5jb21taXRU
aW1lIDwgcmVzcG9uc2Uuc3RhcnRUaW1lKTsKIAogICAgICAgICBjb25zdCBiYXNlbGluZVJvd3Mg
PSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnYmFzZWxpbmUnXTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJhc2VsaW5lUm93cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGJhc2VsaW5lUm93c1swXSkuYnVpbGRUYWcs
IDEzMSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRN
YXAnXSwgYmFzZWxpbmVSb3dzWzFdKS5idWlsZFRhZywgMTI5KTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJhc2VsaW5lUm93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGJhc2VsaW5lUm93c1swXSku
YnVpbGRUYWcsICcxMzEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQo
cmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMV0pLmJ1aWxkVGFnLCAnMTI5Jyk7
CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIG9yZGVyIHJlc3VsdHMgYnkgYnVpbGQgdGltZSB3
aGVuIGNvbW1pdCB0aW1lcyBhcmUgbWlzc2luZyIsICgpID0+IHsKQEAgLTUyMiw4ICs1MjIsOCBA
QCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lk
fWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3Qg
Y3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnYmFzZWxpbmUnXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50
Um93c1swXSksIHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVz
cG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKICAgICAgICAgICAgICAgIG1l
YW46IDMsCiAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAg
IHN1bTogMTUsCkBAIC01MzMsNyArNTMzLDcgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgY29tbWl0VGltZTogK0RhdGUuVVRD
KDIwMTcsIDAsIDE5LCAxNSwgMjgsIDEpLAogICAgICAgICAgICAgICAgYnVpbGRUaW1lOiArRGF0
ZS5VVEMoMjAxNywgMCwgMTksIDE1LCAyOCwgMSksCiAgICAgICAgICAgICAgICBidWlsZFRhZzog
JzEwMDEnIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0p
LCB7CiAgICAgICAgICAgICAgICAgbWVhbjogNywKICAgICAgICAgICAgICAgICBpdGVyYXRpb25D
b3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDM1LApAQCAtNTYyLDkgKzU2Miw5IEBAIGRl
c2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRo
U3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1J
ZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAy
LCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMiwgJ3Nob3VsZCBoYXZlIHR3
byBjbHVzdGVycycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFRh
Z3MocmVzcG9uc2UsICdjdXJyZW50JyksCiAgICAgICAgICAgICAgICAgW3JlcG9ydFdpdGhBbmNp
ZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhOZXdSZXZpc2lvblswXVsnYnVp
bGRUYWcnXV0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTU4MCwxMCArNTgwLDEwIEBAIGRl
c2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRo
U3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1J
ZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQn
XSwgMiwgJ3Nob3VsZCBoYXZlIHR3byBjbHVzdGVycycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMiwgJ3Nob3VsZCBoYXZlIHR3byBj
bHVzdGVycycpOwogICAgICAgICAgICAgbGV0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZp
Z3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50
Um93cy5sZW5ndGgsIDIsICdzaG91bGQgY29udGFpbiB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLCBb
cmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aEJ1aWxk
VGltZVswXVsnYnVpbGRUYWcnXV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1
cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdj
dXJyZW50JyksIFtyZXBvcnRXaXRoQW5jaWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBv
cnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRhZyddXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC02MDMsMTQgKzYwMywxNCBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVz
KGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0
cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChuZXdSZXN1bHQpID0+
IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQ
cmVmaXh9Lmpzb25gKS50aGVuKChjYWNoZWRSZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG5ld1Jlc3VsdCwgY2FjaGVkUmVzdWx0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5ld1Jlc3VsdCwgY2FjaGVkUmVzdWx0KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAke2NhY2hlUHJlZml4
fS0ke2NhY2hlZFJlc3VsdFsnc3RhcnRUaW1lJ119Lmpzb25gKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKG9sZFJlc3VsdCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IG9sZGJ1aWxkVGFncyA9
IGJ1aWxkVGFncyhvbGRSZXN1bHQsICdjdXJyZW50Jyk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
bmV3YnVpbGRUYWdzID0gYnVpbGRUYWdzKG5ld1Jlc3VsdCwgJ2N1cnJlbnQnKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQob2xkYnVpbGRUYWdzLmxlbmd0aCA+PSAyLCAnVGhlIG9sZCBjbHVzdGVy
IHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwogICAgICAgICAgICAg
ICAgIGFzc2VydChuZXdidWlsZFRhZ3MubGVuZ3RoID49IDIsICdUaGUgbmV3IGNsdXN0ZXIgc2hv
dWxkIGNvbnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvbGRidWlsZFRhZ3Muc2xpY2Uob2xkYnVpbGRUYWdzLmxlbmd0aCAt
IDIpLCBuZXdidWlsZFRhZ3Muc2xpY2UoMCwgMiksCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChvbGRidWlsZFRhZ3Muc2xpY2Uob2xkYnVpbGRUYWdzLmxlbmd0aCAtIDIp
LCBuZXdidWlsZFRhZ3Muc2xpY2UoMCwgMiksCiAgICAgICAgICAgICAgICAgICAgICdUd28gY29u
c2VxY3V0aXZlIGNsdXN0ZXJzIHNob3VsZCBzaGFyZSB0d28gZGF0YSBwb2ludHMnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTYyOSw5ICs2MjksOSBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
bWFuaWZlc3QgPSBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChjb250ZW50KTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZSgnTW91bnRhaW4g
TGlvbicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNZXRyaWMuYWxsKCkubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTWV0cmljLmFsbCgpLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgbWV0cmljID0gTWV0cmljLmFsbCgpWzBd
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwbGF0Zm9ybS5sYXN0TW9kaWZpZWQobWV0
cmljKSwgcHJpbWFyeUNsdXN0ZXJbJ2xhc3RNb2RpZmllZCddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1ldHJpYyksIHByaW1hcnlD
bHVzdGVyWydsYXN0TW9kaWZpZWQnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC02NzMsMTAgKzY3MywxMCBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1z
ZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgaXQoInNob3VsZCBhbGxvdyB0byByZXBvcnQgYSBidWls
ZCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2Nr
RGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2Fp
dCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBv
cnRXaXRoQnVpbGRSZXF1ZXN0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9hbmFseXNpc1Rhc2s9
NTAwJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwgW1sxLCA0
LCAzLCAxMiwgNTAsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ21l
YXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwgWwogICAgICAgICAgICAgICAgIFsnMScs
ICc5JywgJzEwLjguMiAxMkM2MCcsIG51bGwsIDBdLCBbJzInLCAnMTEnLCAnMTQxOTc3JywgbnVs
bCwgMTM2MDE0MDkyMDkwMF1dLAogICAgICAgICAgICAgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycs
IDEsIDEsICdjdXJyZW50J11dKTsKICAgICB9KTsKQEAgLTcxMSwxNyArNzExLDE3IEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qg
cmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEu
YWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNl
ID0gYXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9u
c2UocmVwb3J0V2l0aENvbW1pdHNOZWVkc1JvdW5kQ29tbWl0VGltZUFuZEJ1aWxkUmVxdWVzdCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKIAogICAgICAg
ICBjb25zdCByYXdXZWJLaXRDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMo
YC9hcGkvY29tbWl0cy9XZWJLaXQvMTQxOTc3YCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyYXdX
ZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWUpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGlt
ZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKIAogICAgICAgICBjb25zdCByYXdNYWNPU0Nv
bW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21taXRzL21hY09T
LzEwLjguMiUyMDEyQzYwYCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyYXdNYWNPU0NvbW1pdC5j
b21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRNYWNP
U0NvbW1pdFRpbWUpOwogCiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9tZWFzdXJlbWVudC1zZXQvP2FuYWx5c2lz
VGFzaz01MDAnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBb
WzEsIDQsIDMsIDEyLCA1MCwgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywgMTIsIDUwLCBbCiAgICAgICAgICAgICBbJzEn
LCAnOScsICcxMC44LjIgMTJDNjAnLCBudWxsLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZV0sIFsn
MicsICcxMScsICcxNDE5NzcnLCBudWxsLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWVdXSwKICAg
ICAgICAgICAgIDEsIDEzNjIwNDYzMjMzODgsICcxMjMnLCAxLCAxLCAnY3VycmVudCddXSk7CiAg
ICAgfSk7CkBAIC03NTcsMTQgKzc1NywxNCBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1z
ZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW3JlcG9ydFdpdGhDb21taXRzTmVlZHNSb3VuZENvbW1pdFRpbWVdKTsKIAogICAg
ICAgICBjb25zdCByYXdXZWJLaXRDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0
dXMoYC9hcGkvY29tbWl0cy9XZWJLaXQvMTQxOTc3YCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
YXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0u
dGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsKIAogICAgICAgICBjb25zdCByYXdNYWNP
U0NvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21taXRzL21h
Y09TLzEwLjguMiUyMDEyQzYwYCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyYXdNYWNPU0NvbW1p
dC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRN
YWNPU0NvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5UGxh
dGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnRnJhbWVSYXRlJyk7CiAgICAgICAgIGNv
bnN0IHByaW1hcnlDbHVzdGVyID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBp
L21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7
cmVzdWx0Lm1ldHJpY0lkfWApOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHByaW1hcnlDbHVz
dGVyLmNvbmZpZ3VyYXRpb25zLmN1cnJlbnQsIFtbMSwgNCwgMywgMTIsIDUwLCBmYWxzZSwgWwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHByaW1hcnlDbHVzdGVyLmNvbmZpZ3VyYXRp
b25zLmN1cnJlbnQsIFtbMSwgNCwgMywgMTIsIDUwLCBmYWxzZSwgWwogICAgICAgICAgICAgWzEs
IDEsICcxMC44LjIgMTJDNjAnLCBudWxsLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZV0sIFsyLCAy
LCAnMTQxOTc3JywgbnVsbCwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lXV0sCiAgICAgICAgICAg
ICBleHBlY3RlZFdlYktpdENvbW1pdFRpbWUsIDEsIDEzNjIwNDYzMjMzODgsICcxMjMnLCAxXV0p
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcwppbmRleCAzMjQ3MzM5
NjE4OGY2OGM3MzlkNzQ4YWJmOGE4NmZlZDRhNDBmZmUxLi5iNGVlNzI2ZjM1NTMwMmFiMThkNmM3
MzZjYmI0MGMzMGM0YjE4NTliIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcwpA
QCAtNzgsMTYgKzc4LDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGlu
c2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Ig
d2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmciLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHt9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gc2xh
dmVzIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2
ZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKICAgICAgICAgfSkudGhlbigocm93cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC05NSw3ICs5NSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3
aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVG
b3JSZXBvcnQoZW1wdHlSZXBvcnQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1w
dHlSZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwMywxMSArMTAzLDExIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdCkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVw
b3NpdG9yaWVzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXVsnbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF1bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF1bJ25hbWUnXSwgc3VidmVyc2lvbkNvbW1p
dC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTE1LDcgKzExNSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2Vy
dD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQo
c3VidmVyc2lvbkNvbW1pdCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJz
aW9uQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBj
b25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVy
cycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewpAQCAtMTIzLDE0ICsxMjMsMTQg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBsZXQgY29tbWl0dGVycyA9IHJlc3VsdFsxXTsKICAgICAg
ICAgICAgIGxldCByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF07CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCks
IG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVz
c2FnZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1swXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRh
WydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
dGVycy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNb
MF1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRl
KCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2Fn
ZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0
ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTEzOCwxMCArMTM4LDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xh
dmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0
cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJldmlzaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChy
b3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTE0OSwzMiArMTQ5LDMyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgp
OwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMn
KSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzBdOwogICAgICAgICAg
ICAgY29uc3QgY29tbWl0dGVycyA9IHJlc3VsdFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVy
cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0
aCwgMik7CiAKICAgICAgICAgICAgIGxldCByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29t
bWl0cy5jb21taXRzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3Jl
dmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2
IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQn
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncHJldmlvdXNfY29tbWl0
J10sIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2Fj
Y291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2
aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMt
MDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBj
b21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzBdWydwcmV2aW91c19jb21taXQnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydu
YW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2Fj
Y291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKIAogICAgICAgICAg
ICAgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1sxXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFb
J3JldmlzaW9uJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ3RpbWUn
XS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwOTo1NDo1Ni4wJykudG9TdHJpbmco
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCByZXBv
cnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sx
XVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMV1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMV1bJ3ByZXZpb3VzX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFdWyduYW1lJ10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1sxXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJl
cG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1sxXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA5OjU0
OjU2LjAnKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1sx
XVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncHJl
dmlvdXNfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
bmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzFdWydh
Y2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xODIsMTAgKzE4MiwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25JbnZhbGlkUHJldmlvdXNDb21taXQpLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkludmFsaWRQcmV2aW91c0NvbW1p
dCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRmFpbGVkVG9GaW5kUHJldmlvdXNDb21taXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWls
ZWRUb0ZpbmRQcmV2aW91c0NvbW1pdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMCk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0yMDAsMTggKzIwMCwxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2Ri
LnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBy
ZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVy
c1swXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFt
ZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
YWNjb3VudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2Un
XSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjI4LDIzICsyMjgsMjMgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNv
bW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21t
aXR0ZXJzJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBjb21taXRzID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0dGVycyA9
IHJlc3VsdFsxXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3NhZ2UnXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1b
J25hbWUnXSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGZpcnN0RGF0YVsnYXV0aG9yJ11bJ2Fj
Y291bnQnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydpZCddLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2lkJ10sIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgZmlyc3REYXRh
WydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1b
J2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGZpcnN0RGF0YVsnYXV0aG9yJ11bJ25h
bWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNj
b3VudCddLCBmaXJzdERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnaWQnXSwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgbnVsbCk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yNTksMTIgKzI1OSwxMiBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0
QWxsKCdjb21taXR0ZXJzJyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbW1pdHRlcnMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBhdXRob3JbJ25hbWUnXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCBhdXRob3Jb
J2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1b
J25hbWUnXSwgYXV0aG9yWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzAyLDE1ICszMDIsMTUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUZvclJlcG9ydChzYW1lUmVwb3NpdG9yeU5hbWVJbk93bmVkQ29tbWl0QW5kTWFq
b3JDb21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc2FtZVJlcG9zaXRvcnlO
YW1lSW5Pd25lZENvbW1pdEFuZE1ham9yQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJv
d3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdXZWJLaXQnfSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDIpOwogICAg
ICAgICAgICAgbGV0IG9zV2ViS2l0ID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgbGV0IHdlYmtp
dFJlcG9zaXRvcnkgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3NX
ZWJLaXQuaWQsIHdlYmtpdFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zV2ViS2l0Lm5hbWUsIHdlYmtpdFJlcG9zaXRvcnkubmFtZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwob3NXZWJLaXQuaWQsIHdlYmtpdFJlcG9zaXRvcnkuaWQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2ViS2l0Lm5hbWUsIHdlYmtpdFJlcG9zaXRv
cnkubmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9y
eS5vd25lciwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDMsNyArMzQzLDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9u
Q29tbWl0V2l0aE93bmVkQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBz
eXN0ZW1WZXJzaW9uQ29tbWl0V2l0aE93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkQzMid9KSwKICAgICAgICAgICAgICAg
ICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ1dlYktpdCBDb21taXQnfSks
CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdK
YXZhU2NyaXB0Q29yZSBjb21taXQnfSksCkBAIC0zNTEsNTQgKzM1MSw1NCBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAiV2Vi
S2l0In0pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsn
bmFtZSc6ICdKYXZhU2NyaXB0Q29yZSd9KV0pCiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDYpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21t
aXQgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4Q29tbWl0
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQsIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRDb21taXQgPSByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5u
b3RTdHJpY3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NDb21taXQgPSBy
ZXN1bHRbMl1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoanNjQ29tbWl0LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NDb21taXQsIG51bGwpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBvc3hSZXBvc2l0b3J5ID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG9zeFJlcG9zaXRvcnksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0
cmljdEVxdWFsKG9zeFJlcG9zaXRvcnksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WzRdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WzRdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5
ID0gcmVzdWx0WzRdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHdlYmtpdFJl
cG9zaXRvcnksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzVdLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzVdLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NSZXBvc2l0b3J5ID0gcmVzdWx0WzVdWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY1JlcG9zaXRvcnksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnksIG51bGwpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnku
aWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3
ZWJraXRSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NDb21taXQu
cmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LnJlcG9zaXRvcnksIG9zeFJlcG9zaXRv
cnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdC5yZXBv
c2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChqc2NDb21taXQucmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3Np
dG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5v
d25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbZGIuc2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0
LmlkLCAnb3duZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAg
ICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXIn
OiBvc3hDb21taXQuaWQsICdvd25lZCc6IGpzY0NvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVy
J30pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JlcG9zaXRv
cnknOiB3ZWJraXRSZXBvc2l0b3J5LmlkfSldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMyk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVy
Q29tbWl0Rm9yV2ViS2l0Q29tbWl0ID0gcmVzdWx0WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0LCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdCwgbnVsbCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGNvbnN0IG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0ID0gIHJlc3VsdFsxXVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQs
IG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAg
ICAgICAgIH0pOwogICAgIH0pCiAKQEAgLTQ0OCw3ICs0NDgsNyBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KG11bHRpcGxlU3lzdGVtVmVyc2lvbkNvbW1pdHNXaXRo
T3duZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIG11bHRpcGxlU3lz
dGVtVmVyc2lvbkNvbW1pdHNXaXRoT3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3Mo
J2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDMyJ30pLAogICAgICAgICAgICAgICAg
IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2QzY3J30pLAog
ICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnV2Vi
S2l0IENvbW1pdCd9KSwKQEAgLTQ1OCw0OSArNDU4LDQ5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICJXZWJLaXQifSksCiAg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ0ph
dmFTY3JpcHRDb3JlJ30pXSkKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbMF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDAgPSByZXN1
bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4Q29tbWl0MCwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4Q29tbWl0MCwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IG9zeENvbW1pdDEgPSByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwob3N4Q29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1
YWwob3N4Q29tbWl0MSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
Ml0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0u
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdENvbW1pdCA9IHJlc3VsdFsyXVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IGpzY0NvbW1pdDAgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwoanNjQ29tbWl0MCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwo
anNjQ29tbWl0MCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNF0u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNF0ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY0NvbW1pdDEgPSByZXN1bHRbNF1bMF07Ci0g
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoanNjQ29tbWl0MSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwoanNjQ29tbWl0MSwgbnVsbCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKQorICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpCiAgICAgICAgICAgICBjb25zdCBvc3hSZXBv
c2l0b3J5ID0gcmVzdWx0WzVdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeFJl
cG9zaXRvcnksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeFJlcG9zaXRvcnku
b3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeFJlcG9z
aXRvcnksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeFJlcG9zaXRv
cnkub3duZXIsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzZdLmxl
bmd0aCwgMSkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNl0ubGVuZ3Ro
LCAxKQogICAgICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IHJlc3VsdFs2XVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBv
c2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0
b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFs3XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFs3XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjUmVwb3NpdG9yeSA9IHJl
c3VsdFs3XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVy
LCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NS
ZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDAucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MS5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5Lmlk
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Vi
a2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0MC5y
ZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NDb21taXQxLnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDAucmVwb3NpdG9yeSwg
b3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MS5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwgd2Via2l0UmVwb3NpdG9yeS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29tbWl0MC5yZXBvc2l0b3J5LCBq
c2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NDb21t
aXQxLnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJl
cG9zaXRvcnkuaWQpOwogCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVj
dFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdDAuaWQsICdvd25l
ZCc6IHdlYmtpdENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1p
dDEuaWQsICdvd25lZCc6IHdlYmtpdENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLApA
QCAtNTA4LDI1ICs1MDgsMjUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93
cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MS5pZCwgJ293bmVkJzog
anNjQ29tbWl0MS5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAgICAgICAgIGRi
LnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiB3ZWJraXRSZXBvc2l0b3J5Lmlk
fSldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Lmxlbmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Lmxlbmd0aCwgNSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMF0ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0MCA9
IHJlc3VsdFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvd25lckNvbW1pdEZv
cldlYktpdENvbW1pdDAsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFs
KG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0MCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVyQ29tbWl0
Rm9yV2ViS2l0Q29tbWl0MSA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RF
cXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0MSwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCA9IHJlc3VsdFsyXVswXTsKLSAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCwg
bnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MSA9IHJlc3VsdFszXVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlND
Q29tbWl0MSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNF0ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNF0ubGVuZ3Ro
LCAxKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU0OCwxOCArNTQ4LDE4IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lvbkNvbW1pdFdp
dGhFbXB0eU93bmVkQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzeXN0
ZW1WZXJzaW9uQ29tbWl0V2l0aEVtcHR5T3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRz
JyksIGRiLnNlbGVjdEFsbCgncmVwb3NpdG9yaWVzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0X293
bmVyc2hpcHMnLCAnb3duZXInKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIGxldCBjb21taXRzID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgbGV0IHJlcG9z
aXRvcmllcyA9IHJlc3VsdFsxXTsKICAgICAgICAgICAgIGxldCBjb21taXRfb3duZXJzaGlwcyA9
IHJlc3VsdFsyXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5yZXBvc2l0b3J5LCByZXBvc2l0b3JpZXNb
MF0uaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllc1swXS5uYW1lLCAn
T1NYJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0X293bmVyc2hpcHMubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvc2l0b3J5LCBy
ZXBvc2l0b3JpZXNbMF0uaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcmllc1swXS5uYW1lLCAnT1NYJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0X293bmVyc2hpcHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTU4Nyw3ICs1ODcsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KHN5c3RlbVZlcnNpb25Db21taXRBbmRPd25lZENvbW1pdFdpdGhUaW1lc3RhbXApLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdEFuZE93bmVkQ29tbWl0
V2l0aFRpbWVzdGFtcCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91bGRO
b3RDb250YWluVGltZXN0YW1wJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91bGROb3RDb250YWluVGltZXN0YW1wJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CkBAIC02OTksMTEgKzY5OSwxMSBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAg
ICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQt
Y29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8n
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIGNv
bnN0IGNvbW1pdHMgPSByZXN1bHRbJ2NvbW1pdHMnXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFi
aWxpdHksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0
eSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51
bGwpOwogCiAgICAgICAgIHJldHVybiBjb21taXRzOwogICAgIH0KQEAgLTcxMiw3ICs3MTIsNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5j
dGlvbiAoKSB7CiAgICAgewogICAgICAgICBhd2FpdCBpbml0aWFsUmVwb3J0Q29tbWl0cygpOwog
ICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBjb21taXRzVXBkYXRlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sIGV4cGVjdGVkU3RhdHVzKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sIGV4cGVjdGVkU3RhdHVzKTsKICAgICAgICAg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0LycpOwogICAgICAgICByZXR1cm4gcmVzdWx0Wydjb21taXRzJ107CiAgICAgfQpA
QCAtNzIwLDkgKzcyMCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGlu
c2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0V2l0aEV4
cGVjdGVkRmFpbHVyZShjb21taXRzVXBkYXRlLCBleHBlY3RlZEZhaWx1cmVOYW1lKQogICAgIHsK
ICAgICAgICAgY29uc3QgY29tbWl0cyA9IGF3YWl0IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0
dXMoY29tbWl0c1VwZGF0ZSwgZXhwZWN0ZWRGYWlsdXJlTmFtZSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBd
LnRlc3RhYmlsaXR5LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVz
dGFiaWxpdHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5n
dGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0
eSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmls
aXR5LCBudWxsKTsKICAgICB9CiAKICAgICBpdCgnc2hvdWxkIGZhaWwgd2l0aCAiTWlzc2luZ1Jl
dmlzaW9uIiBpZiBjb21taXQgdXBkYXRlIGRvZXMgbm90IGhhdmUgY29tbWl0IHJldmlzaW9uIHNw
ZWNpZmllZCcsIGFzeW5jICgpID0+IHsKQEAgLTc0NiwzMiArNzQ2LDMyIEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgYXdhaXQgaW5pdGlhbFJlcG9ydENvbW1pdHMoKTsKIAogICAgICAgICBsZXQgY29tbWl0
cyA9IGF3YWl0IGRhdGFiYXNlLnNlbGVjdEFsbCgnY29tbWl0cycpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzFdLnJlcG9ydGVkLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHNbMF0ucmVwb3J0ZWQsIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1sxXS5yZXBvcnRlZCwgdHJ1ZSk7CiAKICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnko
J1VQREFURSBjb21taXRzIFNFVCBjb21taXRfcmVwb3J0ZWQ9ZmFsc2UnKTsKICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgY29tbWl0c1VwZGF0ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOwogCiAgICAgICAgIGNvbW1pdHMgPSBhd2FpdCBkYXRhYmFzZS5zZWxl
Y3RBbGwoJ2NvbW1pdHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3J0
ZWQsIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0ucmVwb3J0ZWQsIGZh
bHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ucmVwb3J0ZWQsIGZh
bHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ucmVwb3J0ZWQsIGZh
bHNlKTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgY29tbWl0
cyBtZXNzYWdlLCB0aW1lLCBvcmRlciwgYXV0aG9yIGFuZCBwcmV2aW91cyBjb21taXQiLCBhc3lu
YyAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBzZXRVcFRlc3RzV2l0aEV4
cGVjdGVkU3RhdHVzKGNvbW1pdHNVcGRhdGUsICdPSycpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnRl
c3RhYmlsaXR5LCAnQnJlYWtzIGJ1aWxkcycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1sxXS50ZXN0YWJpbGl0eSwgJ0NyYXNoZXMgV2ViS2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2FnZScpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0c1swXS5hdXRob3JOYW1lLCAnQ2hyaXMgRHVtZXonKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0uYXV0aG9yTmFtZSwgJ1phbGFuIEJ1anRhcycpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5vcmRlciwgMjEwOTQ4KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0ub3JkZXIsIDIxMDk0OSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdLnRpbWUsIDE0ODQ4ODQzNTQ1NzcpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1sxXS50aW1lLCAxNDg0ODg2MjMwNjQ1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMV0ucHJldmlvdXNDb21taXQsIGNvbW1pdHNbMF0uaWQpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgJ0JyZWFrcyBidWlsZHMnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksICdDcmFzaGVzIFdlYktp
dCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5tZXNzYWdlLCAnYW5v
dGhlciBtZXNzYWdlJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLm1l
c3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHNbMF0uYXV0aG9yTmFtZSwgJ0NocmlzIER1bWV6Jyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzFdLmF1dGhvck5hbWUsICdaYWxhbiBCdWp0YXMnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbW1pdHNbMF0ub3JkZXIpLCAyMTA5NDgpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29tbWl0c1sxXS5vcmRlciksIDIx
MDk0OSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRpbWUsIDE0ODQ4
ODQzNTQ1NzcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50aW1lLCAx
NDg0ODg2MjMwNjQ1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ucHJl
dmlvdXNDb21taXQsIGNvbW1pdHNbMF0uaWQpOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCmluZGV4IGQ5YTJjZWQ2NzE4MzgwZmFiOWUw
Y2Q1YjA1NzA0NzIxNGJkMTM0ZmEuLjVjNDQ1ZmVmYzBkNzIwNGMwYmI1YTE2ZTAyY2Y2MTM3MmZm
M2ZiNjkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKQEAgLTEwMSw3ICsxMDEsNyBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJv
ciB3aGVuIGJ1aWxkZXIgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRU
aW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0In1dKS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdC
dWlsZGVyTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ01pc3NpbmdCdWlsZGVyTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTA5LDE4ICsxMDksMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsICJidWls
ZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIn1dKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNzaW5nQnVpbGRUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkVGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsK
IAogICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIGJ1aWxkZXJzIiwgKCkg
PT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOb3RGb3VuZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucydd
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdCdWlsZGVyTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50
aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5n
dGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAw
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzNCw1OCArMTM0LDU4IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAicmV2aXNpb25z
Ijoge319XTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxk
ZXJOb3RGb3VuZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJl
U3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJv
Y2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwog
ICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3J0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJl
amVjdCByZXBvcnQgd2l0aCAiTWlzbWF0Y2hpbmdDb21taXRUaW1lIiBpZiB0aW1lIGRpZmZlcmVu
Y2UgaXMgbGFyZ2VyIHRoYW4gMSBzZWNvbmQnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0
IGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSk7CiAgICAgICAgIGxldCByZXNwb25z
ZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFtyZXBvcnRXaXRNaXNtYXRjaGluZ0NvbW1pdFRpbWUoKV0pOwotICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogCiAgICAgICAgIHJlc3BvbnNlID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5
UmVwb3J0KCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01p
c21hdGNoaW5nQ29tbWl0VGltZScpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2Zh
aWx1cmVTdG9yZWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJv
Y2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ01pc21hdGNoaW5nQ29tbWl0VGltZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICB9KTsKIAogICAg
IGl0KCdzaG91bGQgbm90IHJlamVjdCByZXBvcnQgaWYgdGhlIGNvbW1pdCB0aW1lIGRpZmZlcmVu
Y2UgaXMgd2l0aGluIDEgc2Vjb25kIicsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRk
QnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3Jl
cG9ydFdpdGhPbmVTZWNvbmRDb21taXRUaW1lRGlmZmVyZW5jZSgpXSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAKICAgICAgICAgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
ZW1wdHlSZXBvcnQoKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10s
IDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRS
dW5zJ10sIDEpOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBzdG9yZSBhIHJlcG9ydCBmcm9t
IGEgdmFsaWQgYnVpbGRlciIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JS
ZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0
KCldKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBv
cnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29udGVu
dCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNP
Ti5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAgICAgICAgICAgICBkZWxldGUgc3Vi
bWl0dGVkQ29udGVudFsnYnVpbGRlclBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgc3Vi
bWl0dGVkQ29udGVudFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdG9yZWRDb250ZW50
Wyd0ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250ZW50LCBz
dWJtaXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3Rv
cmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xOTcsMTggKzE5NywxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChyZXBvcnQpLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIFtyZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vz
c2VkUnVucyddLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
c3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKIAogICAg
ICAgICAgICAgZGVsZXRlIHJlcG9ydFsnc2xhdmVQYXNzd29yZCddOwogICAgICAgICAgICAgZGVs
ZXRlIHJlcG9ydFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdG9yZWRDb250ZW50Wyd0
ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250ZW50LCByZXBv
cnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50LCBy
ZXBvcnQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjE2LDE5ICsyMTYsMTkgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xh
dmVGb3JSZXBvcnQoZW1wdHlTbGF2ZVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
ZW1wdHlTbGF2ZVJlcG9ydCgpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nl
c3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHN1Ym1pdHRlZENvbnRlbnQgPSBlbXB0eVNsYXZlUmVwb3J0KCk7CiAgICAgICAgICAgICBjb25z
dCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAg
ICAgICAgICAgICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsnc2xhdmVQYXNzd29yZCddOwogICAg
ICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBk
ZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjM4LDkgKzIzOCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7
CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04u
cGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
dG9yZWRDb250ZW50WydidWlsZGVyTmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWlsZGVyTmFtZSdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdG9yZWRDb250ZW50WydidWlsZGVy
TmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWlsZGVyTmFtZSddKTsKICAgICAgICAgICAgIGFzc2Vy
dCghKCdidWlsZGVyUGFzc3dvcmQnIGluIHN0b3JlZENvbnRlbnQpKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0yNTEsOCArMjUxLDggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkX3NsYXZlcycpOwogICAg
ICAgICB9KS50aGVuKChzbGF2ZXMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzbGF2
ZXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzbGF2ZXNbMF1bJ25hbWUn
XSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNsYXZlcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNsYXZlc1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydzbGF2ZU5hbWUnXSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yNjIsOCArMjYyLDggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkZXJzJyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkZXJzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVy
c1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWlsZGVyTmFtZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVycy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJzWzBdWyduYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxk
ZXJOYW1lJ10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjczLDcgKzI3Myw3IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
YnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkc1swXVsndGFnJ10sIDEyMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRzWzBdWyd0YWcnXSwgJzEyMycpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMjgzLDcgKzI4Myw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gcmVwb3J0LmJ1aWxkVGFnOwogICAgICAg
ICBkZWxldGUgcmVwb3J0LmJ1aWxkVGFnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0p
OwogCiAgICAgaXQoInNob3VsZCByZWplY3QgaWYgYSByZXBvcnQgc3BlY2lmaWVzIGJvdGggYnVp
bGQgbnVtYmVyIGFuZCBidWlsZCB0YWcgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIiwgYXN5bmMgKCkg
PT4gewpAQCAtMjkxLDcgKzI5MSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgcmVw
b3J0LmJ1aWxkTnVtYmVyID0gJzQ1Nic7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0p
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJl
clRhZ01pc21hdGNoJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0Y2gnKTsKICAgICB9KQogCiAgICAgaXQoInNo
b3VsZCBhY2NlcHQgaWYgYSByZXBvcnQgc3BlY2lmaWVzIGJvdGggYnVpbGQgbnVtYmVyIGFuZCBi
dWlsZCB0YWcgd2l0aCBpZGVudGljYWwgdmFsdWUiLCBhc3luYyAoKSA9PiB7CkBAIC0yOTksNyAr
Mjk5LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBj
b25zdCByZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIg
PSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSkKIAogICAg
IGl0KCJzaG91bGQgYWRkIHRoZSBwbGF0Zm9ybSIsICgpID0+IHsKQEAgLTMwOCw4ICszMDgsOCBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RB
bGwoJ3BsYXRmb3JtcycpOwogICAgICAgICB9KS50aGVuKChwbGF0Zm9ybXMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChwbGF0Zm9ybXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChwbGF0Zm9ybXNbMF1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwbGF0Zm9ybXMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwbGF0Zm9ybXNbMF1bJ25hbWUnXSwgJ01vdW50YWluIExp
b24nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMyNywxNCArMzI3LDE0IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9z
aXRvcmllcyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRb
MV07CiAgICAgICAgICAgICBjb25zdCBidWlsZENvbW1pdHNSZWxhdGlvbnMgPSByZXN1bHRbMl07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllcy5tYXAoKHJvdykgPT4gcm93Wydu
YW1lJ10pLnNvcnQoKSwgWydXZWJLaXQnLCAnbWFjT1MnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5tYXAoKHJvdykgPT4gcm93WyduYW1lJ10pLnNv
cnQoKSwgWydXZWJLaXQnLCAnbWFjT1MnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRDb21taXRz
UmVsYXRpb25zLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRDb21t
aXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydidWlsZF9jb21t
aXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRD
b21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRzUmVsYXRpb25z
WzFdWydjb21taXRfYnVpbGQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29t
bWl0c1JlbGF0aW9ucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lk
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9u
c1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10s
IGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOwogCiAgICAgICAgICAg
ICBsZXQgcmVwb3NpdG9yeUlkVG9OYW1lID0ge307CiAgICAgICAgICAgICBmb3IgKGxldCByZXBv
c2l0b3J5IG9mIHJlcG9zaXRvcmllcykKQEAgLTM0NCw5ICszNDQsOSBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBmb3IgKGxldCBjb21taXQgb2Yg
Y29tbWl0cykKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbcmVw
b3NpdG9yeUlkVG9OYW1lW2NvbW1pdFsncmVwb3NpdG9yeSddXV0gPSBjb21taXQ7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11b
J3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93
WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbiddLCAn
MTAuOC4yIDEyQzYwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3NycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1sn
V2ViS2l0J11bJ3RpbWUnXS50b1N0cmluZygpLAogICAgICAgICAgICAgICAgIG5ldyBEYXRlKCcy
MDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC0zNjAsMTYgKzM2MCwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2Vs
ZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3NlY29uZFJlcG9ydF0p
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigo
YnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0zODIsMTYgKzM4MiwxNiBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9ydF0pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVp
bGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW3NlY29uZFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsK
ICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRz
Lmxlbmd0aCwgMik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00MTUsMTcgKzQxNSwxNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBh
ZGRCdWlsZGVyRm9yUmVwb3J0KGZpcnN0UmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
Zmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAg
ICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdNaXNtYXRjaGluZ0NvbW1pdFJldmlzaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hpbmdDb21taXRSZXZpc2lvbicpOwog
ICAgICAgICAgICAgYXNzZXJ0KEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9mKCcxNDE5
NzcnKSA+PSAwKTsKICAgICAgICAgICAgIGFzc2VydChKU09OLnN0cmluZ2lmeShyZXNwb25zZSku
aW5kZXhPZignMTUwMDAwJykgPj0gMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ2ZhaWx1cmVTdG9yZWQnXSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC00ODcsOCArNDg3LDggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgIGZ1bmN0aW9uIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3Jl
Z2F0b3JzKHJlcG9ydCkKICAgICB7CiAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1
aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnQpLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICAgICAgIH0p
OwogICAgIH0KQEAgLTUxMSw3ICs1MTEsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dy
ZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMpLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3Rz
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRlc3RzLm1hcCgocm93KSA9PiB7IHJldHVybiByb3dbJ25hbWUnXTsgfSkuc29ydCgp
LAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0cy5tYXAoKHJvdykgPT4g
eyByZXR1cm4gcm93WyduYW1lJ107IH0pLnNvcnQoKSwKICAgICAgICAgICAgICAgICBbJ0NTUycs
ICdET00nLCAnRHVtbXlCZW5jaG1hcmsnLCAnRHVtbXlQYWdlTG9hZGluZycsICdNb2RpZnlOb2Rl
cycsICdUcmF2ZXJzZU5vZGVzJywgJ2FwcGxlLmNvbScsICd3ZWJraXQub3JnJ10pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTUyNiwxNCArNTI2LDE0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgdGVzdE5hbWVUb01ldHJpY3Nb
cm93Wyd0ZXN0X25hbWUnXV0gPSBuZXcgQXJyYXk7CiAgICAgICAgICAgICAgICAgdGVzdE5hbWVU
b01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0ucHVzaChbcm93WydtZXRyaWNfbmFtZSddLCByb3db
J2FnZ3JlZ2F0b3JfbmFtZSddXSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NTUyddLCBbWydUaW1lJywgbnVsbF1dKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0RPTSddLnNv
cnQoKSwgW1snVGltZScsICdBcml0aG1ldGljJ10sIFsnVGltZScsICdHZW9tZXRyaWMnXV0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlCZW5j
aG1hcmsnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11dKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScs
ICdBcml0aG1ldGljJ11dKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ01vZGlmeU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snVHJhdmVyc2VOb2RlcyddLCBbWydU
aW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01l
dHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1snVGltZScsIG51
bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRy
aWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1RpbWUnLCAnQXJp
dGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1Rp
bWUnLCAnQXJpdGhtZXRpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGht
ZXRpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9N
ZXRyaWNzWydNb2RpZnlOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwg
W1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRl
c3ROYW1lVG9NZXRyaWNzWydhcHBsZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWyd3ZWJraXQub3Jn
J10sIFtbJ1RpbWUnLCBudWxsXV0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTQyLDcg
KzU0Miw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeShgU0VMRUNUICogRlJPTSB0ZXN0cywg
dGVzdF9tZXRyaWNzLCB0ZXN0X2NvbmZpZ3VyYXRpb25zCiAgICAgICAgICAgICBXSEVSRSB0ZXN0
X2lkID0gbWV0cmljX3Rlc3QgQU5EIG1ldHJpY19pZCA9IGNvbmZpZ19tZXRyaWMKICAgICAgICAg
ICAgIEFORCB0ZXN0X25hbWUgPSAkMSBBTkQgbWV0cmljX25hbWUgPSAkMmAsIFt0ZXN0TmFtZSwg
bWV0cmljTmFtZV0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHQucm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHQucm93cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQucm93c1swXTsKICAgICAgICAgICAgIH0pOwogICAgIH0KQEAgLTU2NSwyMCArNTY1LDIw
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwogICAg
ICAgICAgICAgY29uc3QgcnVuSWQgPSBydW5bJ2lkJ107Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQs
IG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDUwMCwgcmVsYXRpdmVfdGltZTogbnVsbH0s
CiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFs
dWU6IDUxMCwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVu
SWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDUyMCwgcmVsYXRpdmVfdGltZTogbnVs
bH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwg
dmFsdWU6IDUzMCwgcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKICAgICAgICAgICAgIGNvbnN0IHN1
bSA9IDUwMCArIDUxMCArIDUyMCArIDUzMDsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1MDAgKiA1MDAgKyA1MTAgKiA1MTAg
KyA1MjAgKiA1MjAgKyA1MzAgKiA1MzApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDUwMCAq
IDUwMCArIDUxMCAqIDUxMCArIDUyMCAqIDUyMCArIDUzMCAqIDUzMCk7CiAgICAgICAgICAgICBy
ZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnQ1NTJywgJ1RpbWUnKTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1
bHQucnVuOwogICAgICAgICAgICAgY29uc3QgcnVuSWQgPSBydW5bJ2lkJ107Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICAgICAg
e3J1bjogcnVuSWQsIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6IDEwMSwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDog
MCwgdmFsdWU6IDEwMiwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge3J1
bjogcnVuSWQsIG9yZGVyOiAyLCBncm91cDogMCwgdmFsdWU6IDEwMywgcmVsYXRpdmVfdGltZTog
bnVsbH0sCkBAIC02MDAsOSArNjAwLDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIHN1bSArPSB2YWx1ZTsKICAgICAgICAgICAgICAgICBz
cXVhcmVTdW0gKz0gdmFsdWUgKiB2YWx1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVu
Z3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVT
dW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBz
dW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC02MTMsMTUgKzYxMywxNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwogICAgICAg
ICAgICAgY29uc3QgcnVuSWQgPSByZXN1bHQucnVuWydpZCddOwogICAgICAgICAgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbKDUwMCArIDEwMCkgLyAyLCAoNTEwICsgMTEwKSAvIDIsICg1MjAg
KyAxMjApIC8gMiwgKDUzMCArIDEzMCkgLyAyXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMF0sIHJlbGF0aXZlX3Rp
bWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6
IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1sxXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAg
ICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6
IGV4cGVjdGVkVmFsdWVzWzJdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAg
ICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1
ZXNbM10sIHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7CiAgICAgICAgICAgICBjb25zdCBzdW0gPSBl
eHBlY3RlZFZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKHN1bSwgdmFsdWUpIHsgcmV0dXJuIHN1bSAr
IHZhbHVlOyB9LCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUn
XSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCBleHBlY3RlZFZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKHN1
bSwgdmFsdWUpIHsgcmV0dXJuIHN1bSArIHZhbHVlICogdmFsdWU7IH0sIDApKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0
ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1
bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1
YXJlX3N1bV9jYWNoZSddLCBleHBlY3RlZFZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKHN1bSwgdmFs
dWUpIHsgcmV0dXJuIHN1bSArIHZhbHVlICogdmFsdWU7IH0sIDApKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTY0MiwxMCArNjQyLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBzcXVhcmVTdW0gKz0gZXhwZWN0ZWRWYWx1ZSAq
IGV4cGVjdGVkVmFsdWU7CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRJdGVyYXRpb25zLnB1c2go
e3J1bjogcnVuSWQsIG9yZGVyOiBpLCBncm91cDogTWF0aC5mbG9vcihpIC8gNSksIHZhbHVlOiBl
eHBlY3RlZFZhbHVlLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJh
dGlvbnMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0g
LyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRl
cmF0aW9ucy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3Vt
X2NhY2hlJ10sIHN1bSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03
MDMsMTAgKzcwMywxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBzcXVhcmVTdW0gKz0gZXhwZWN0ZWRWYWx1ZSAqIGV4cGVjdGVkVmFsdWU7CiAg
ICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7cnVuOiBydW5JZCwgb3JkZXI6IGks
IGdyb3VwOiBNYXRoLmZsb29yKGkgLyAyKSwgdmFsdWU6IGV4cGVjdGVkVmFsdWUsIHJlbGF0aXZl
X3RpbWU6IG51bGx9KTsKICAgICAgICAgfQotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3Vs
dC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVz
dWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgc2tp
cCBzdWJ0ZXN0cyB3aXRob3V0IGFueSBtZXRyaWMgZHVyaW5nIGFnZ3JlZ2F0aW9uIiwgYXN5bmMg
KCkgPT4gewpAQCAtNzM3LDI3ICs3MzcsMjcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICBjb25zdCBiZW5jaG1hcmtSZXN1bHQgPSBhd2FpdCBmZXRjaFRl
c3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdEdW1teUJlbmNobWFyaycsICdUaW1lJyk7CiAKICAg
ICAgICAgbGV0IHJ1biA9IGJlbmNobWFya1Jlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgsIDQpOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzBdLCB7cnVuLCBvcmRlcjog
MCwgZ3JvdXA6IDAsIHZhbHVlOiAoKDEgKyAxMSkgKyAyMSkgLyAyLCByZWxhdGl2ZV90aW1lOiBu
dWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnNbMV0sIHtydW4sIG9yZGVyOiAxLCBncm91cDogMCwgdmFsdWU6ICgoMiArIDEyKSArIDIyKSAv
IDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9uc1syXSwge3J1biwgb3JkZXI6IDIsIGdyb3VwOiAxLCB2YWx1
ZTogKCgzICsgMTMpICsgMjMpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzNdLCB7cnVuLCBvcmRl
cjogMywgZ3JvdXA6IDEsIHZhbHVlOiAoKDQgKyAxNCkgKyAyNCkgLyAyLCByZWxhdGl2ZV90aW1l
OiBudWxsfSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRl
cmF0aW9ucy5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNo
bWFya1Jlc3VsdC5pdGVyYXRpb25zWzBdLCB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVl
OiAoKDEgKyAxMSkgKyAyMSkgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMV0sIHtydW4s
IG9yZGVyOiAxLCBncm91cDogMCwgdmFsdWU6ICgoMiArIDEyKSArIDIyKSAvIDIsIHJlbGF0aXZl
X3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtS
ZXN1bHQuaXRlcmF0aW9uc1syXSwge3J1biwgb3JkZXI6IDIsIGdyb3VwOiAxLCB2YWx1ZTogKCgz
ICsgMTMpICsgMjMpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzNdLCB7cnVuLCBvcmRl
cjogMywgZ3JvdXA6IDEsIHZhbHVlOiAoKDQgKyAxNCkgKyAyNCkgLyAyLCByZWxhdGl2ZV90aW1l
OiBudWxsfSk7CiAKICAgICAgICAgY29uc3Qgc3VtID0gYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCArIHJvdy52YWx1ZSwgMCk7CiAgICAgICAg
IGNvbnN0IHNxdWFyZVN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90
YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUgKiByb3cudmFsdWUsIDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyA0KTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCBz
dW0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3F1YXJlX3N1
bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2ht
YXJrUmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyA0KTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNo
ZSddLCBzcXVhcmVTdW0pOwogCiAgICAgICAgIGNvbnN0IHNvbWVUZXN0UmVzdWx0ID0gYXdhaXQg
ZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnQVN1YlRlc3QnLCAnVGltZScpOwogICAg
ICAgICBydW4gPSBzb21lVGVzdFJlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgIHtydW4sIG9y
ZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDMxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAg
ICAgICAgICAgIHtydW4sIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDMyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSwKICAgICAgICAgXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVz
dFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgMzEuNSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChz
b21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCA2Myk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMzEgKiAzMSArIDMyICog
MzIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydtZWFu
X2NhY2hlJ10sIDMxLjUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1
bHQucnVuWydzdW1fY2FjaGUnXSwgNjMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29t
ZVRlc3RSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDMxICogMzEgKyAzMiAqIDMyKTsK
ICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgc2tpcCBzdWJ0ZXN0cyBtaXNzaW5nIHRoZSBtYXRj
aGluZyBtZXRyaWMgZHVyaW5nIGFnZ3JlZ2F0aW9uIiwgYXN5bmMgKCkgPT4gewpAQCAtNzkyLDI3
ICs3OTIsMjcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICBjb25zdCBiZW5jaG1hcmtSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9y
TWV0cmljKCdEdW1teUJlbmNobWFyaycsICdUaW1lJyk7CiAKICAgICAgICAgbGV0IHJ1biA9IGJl
bmNobWFya1Jlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1
bHQuaXRlcmF0aW9ucy5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNo
bWFya1Jlc3VsdC5pdGVyYXRpb25zWzBdLCB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVl
OiAoKDEgKyAxMSkgKyAyMSkgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMV0sIHtydW4sIG9yZGVy
OiAxLCBncm91cDogMCwgdmFsdWU6ICgoMiArIDEyKSArIDIyKSAvIDIsIHJlbGF0aXZlX3RpbWU6
IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0
aW9uc1syXSwge3J1biwgb3JkZXI6IDIsIGdyb3VwOiAxLCB2YWx1ZTogKCgzICsgMTMpICsgMjMp
IC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJl
bmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzNdLCB7cnVuLCBvcmRlcjogMywgZ3JvdXA6IDEsIHZh
bHVlOiAoKDQgKyAxNCkgKyAyNCkgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgsIDQp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRp
b25zWzBdLCB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVlOiAoKDEgKyAxMSkgKyAyMSkg
LyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMV0sIHtydW4sIG9yZGVyOiAxLCBncm91cDog
MCwgdmFsdWU6ICgoMiArIDEyKSArIDIyKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sy
XSwge3J1biwgb3JkZXI6IDIsIGdyb3VwOiAxLCB2YWx1ZTogKCgzICsgMTMpICsgMjMpIC8gMiwg
cmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJl
bmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzNdLCB7cnVuLCBvcmRlcjogMywgZ3JvdXA6IDEsIHZh
bHVlOiAoKDQgKyAxNCkgKyAyNCkgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CiAKICAgICAg
ICAgY29uc3Qgc3VtID0gYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwg
cm93KSA9PiB0b3RhbCArIHJvdy52YWx1ZSwgMCk7CiAgICAgICAgIGNvbnN0IHNxdWFyZVN1bSA9
IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90YWwg
KyByb3cudmFsdWUgKiByb3cudmFsdWUsIDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2ht
YXJrUmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyA0KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVT
dW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnbWVh
bl9jYWNoZSddLCBzdW0gLyA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwog
CiAgICAgICAgIGNvbnN0IHNvbWVUZXN0UmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0
aW9uc0Zvck1ldHJpYygnQXV4aWxpYXJ5UmVzdWx0JywgJ0FsbG9jYXRpb25zJyk7CiAgICAgICAg
IHJ1biA9IHNvbWVUZXN0UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
b21lVGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAge3J1biwgb3JkZXI6
IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzEgKyA0MSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAg
ICAgICAgICAgICB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMiArIDQyLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChz
b21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgKDMxICsgNDEgKyAzMiArIDQyKSAvIDIp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwg
MzEgKyA0MSArIDMyICsgNDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RSZXN1bHQu
cnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIE1hdGgucG93KDMxICsgNDEsIDIpICsgTWF0aC5wb3co
MzIgKyA0MiwgMikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQu
cnVuWydtZWFuX2NhY2hlJ10sICgzMSArIDQxICsgMzIgKyA0MikgLyAyKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDMxICsgNDEg
KyAzMiArIDQyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCBNYXRoLnBvdygzMSArIDQxLCAyKSArIE1hdGgucG93KDMy
ICsgNDIsIDIpKTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGEgcmVwb3J0IHdo
ZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbm9uLW1hdGNoaW5nIGFnZ3JlZ2F0b3JzIGluIGEg
c3VidGVzdCIsIGFzeW5jICgpID0+IHsKQEAgLTg0OCw3ICs4NDgsNyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9fTsKIAogICAgICAgICBjb25z
dCByZXNwb25zZSA9IGF3YWl0IHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3Jz
V2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhBbWJpZ2lvdXNBZ2dyZWdhdG9ycyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdOb01hdGNoaW5nQWdncmVnYXRlZFZhbHVl
SW5TdWJ0ZXN0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdOb01hdGNoaW5nQWdncmVnYXRlZFZhbHVlSW5TdWJ0ZXN0Jyk7CiAgICAgfSk7CiAKICAg
ICBmdW5jdGlvbiByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCkKQEAgLTg5MiwxNiArODkyLDE2
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3Vi
dGVzdE5hbWUoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5k
YXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAgfSkudGhlbigodGVzdHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBsZXQg
bmV3UmVwb3J0ID0gcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpOwogICAgICAgICAgICAgbmV3
UmVwb3J0LmJ1aWxkVGFnID0gIjEyNSI7CiAgICAgICAgICAgICBuZXdSZXBvcnQuYnVpbGRUaW1l
ID0gIjIwMTMtMDItMjhUMTI6MTc6MjQuMSI7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW25ld1JlcG9ydF0pOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTkzMCwxNyArOTMwLDE3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9y
TWV0cmljKCd0ZXN0MScsICdDb21iaW5lZCcpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnc3VtX2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCA5KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDkpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3N1aXRlJywgJ0NvbWJpbmVkJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1
bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSdd
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgNSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDI1KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgNSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDI1KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk2MiwxMyArOTYyLDEzIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5J
dGVyYXRpb25zRm9yTWV0cmljKCd0ZXN0JywgJ0ZyYW1lUmF0ZScpOwogICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCAxMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDE2ICsg
MjUgKyA5KTsKIAogICAgICAgICAgICAgY29uc3QgcnVuSWQgPSBydW5bJ2lkJ107Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICAg
ICAge3J1bjogcnVuSWQsIG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDQsIHJlbGF0aXZl
X3RpbWU6IDB9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6
IG51bGwsIHZhbHVlOiA1LCByZWxhdGl2ZV90aW1lOiAxMDB9LAogICAgICAgICAgICAgICAgIHty
dW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzLCByZWxhdGl2ZV90aW1l
OiAyMDV9XSk7CkBAIC0xMDA2LDcgKzEwMDYsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNV
cGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0
c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7
CiAgICAgICAgIH0pLnRoZW4oKG9yaWdpbmFsQ29uZmlnKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9y
dHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzJdXSkudGhlbigoKSA9PiB7CkBAIC0xMDIzLDE2ICsx
MDIzLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNb
MF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0
c1swXV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigob3Jp
Z2luYWxDb25maWcpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHNbMV1dKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KGNvbmZpZykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChvcmlnaW5hbENvbmZpZ1snY29u
ZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddIGluc3RhbmNlb2YgRGF0ZSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0KGNvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddIGluc3RhbmNlb2Yg
RGF0ZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29u
ZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlm
aWVkJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrb3JpZ2luYWxDb25m
aWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFz
dF9tb2RpZmllZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTEwNjksNyArMTA2OSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWls
ZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTA3NywyMiArMTA3NywyMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNl
KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVp
bGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJlcXVlc3QpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygnYnVpbGRzJywge3RhZzogJzEyMyd9KTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVj
dFJvd3MoJ3BsYXRmb3JtcycsIHtuYW1lOiAnTW91bnRhaW4gTGlvbid9KTsKICAgICAgICAgfSku
dGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgW2Fub3RoZXJSZXBvcnRXaXRoU2FtZUJ1aWxkUmVxdWVzdF0pOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvVXBkYXRlQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRmFpbGVkVG9VcGRh
dGVCdWlsZFJlcXVlc3QnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuc2VsZWN0Um93cygnYnVpbGRzJywge3RhZzogJzEyNCd9KTsKICAgICAgICAgfSkudGhlbigo
cmVzdWx0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJvd3MoJ3BsYXRm
b3JtcycsIHtuYW1lOiAnTGlvbid9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS10ZXN0LWdyb3Vwcy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXRlc3QtZ3JvdXBzLmpzCmluZGV4IGMwMTlhNDJkYjE3MjQxMjE5MzI1ODgyNTBlYjkz
NTkwMTExZDk0ZjkuLjE2MjlkNGJiMGFmMWZmNGIyZDY5M2MxY2E3NWRmNzA3ZTgwOGJiY2EgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3Qt
Z3JvdXBzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXRlc3QtZ3JvdXBzLmpzCkBAIC0xMSwzOSArMTEsMzkgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1n
cm91cHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMvcmVh
ZHktZm9yLW5vdGlmaWNhdGlvbicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBnaXZlIGFu
IGVtcHR5IGxpc3QgaWYgdGhlcmUgaXMgbm90IGV4aXN0aW5nIHRlc3QgZ3JvdXAgYXQgYWxsJywg
YXN5bmMgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZp
Y2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1p
dHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxv
YWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGlu
Y2x1ZGUgYSB0ZXN0IGdyb3VwIHdpdGggImNhbmNlbGVkIiBzdGF0ZSBpbiBhdCBsZWFzdCBvbmUg
YnVpbGQgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxl
dGVkJywgJ2NvbXBsZXRlZCcsICdjYW5jZWxlZCddKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRl
bnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91
cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQu
YnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5j
b21taXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2Fk
ZWRGaWxlcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3Rh
dHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50
ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIGxpc3QgYWxsIHRlc3QgZ3JvdXBzIHdpdGggcGVuZGluZyBub3RpZmljYXRp
b24nLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21w
bGV0ZWQnLCAnY29tcGxldGVkJ10pOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1m
b3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dC50ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBj
b250ZW50LnRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmlkLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC50YXNrLCA1MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdy
b3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmhpZGRlbiwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbiwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcs
JzcwMScsICc3MDInLCAnNzAzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0
R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAudGFzayksIDUw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21l
IHRlc3QgZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YXV0aG9yLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
aGlkZGVuLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
Lm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludCh0ZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3
MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgaGlkZGVuIHRlc3QgZ3JvdXAnLCBhc3lu
YyAoKSA9PiB7CkBAIC01MSwxMiArNTEsMTIgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShk
YXRhYmFzZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0
ZWQnXSk7CiAgICAgICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lz
X3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfaGlkZGVuID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBf
aWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNh
dGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2Fk
ZWRGaWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0
IHRlc3QgZ3JvdXBzIHdpdGhvdXQgbmVlZHMgbm90aWZpY2F0aW9uIGZsYWcnLCBhc3luYyAoKSA9
PiB7CkBAIC02NCwyNCArNjQsMjQgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFz
ZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnXSk7
CiAgICAgICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3Rf
Z3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbmVlZHNfbm90aWZpY2F0aW9uID0gRkFMU0UgV0hFUkUgdGVz
dGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1u
b3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywg
J09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3Vwcywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVz
dHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21t
aXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
Y29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBu
b3QgbGlzdCBhIHRlc3QgZ3JvdXAgdGhhdCBoYXMgc29tZSBpbmNvbXBsZXRlZCBidWlsZCByZXF1
ZXN0cycsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEo
ZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAncnVubmlu
ZyddKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxl
cywgW10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM4LDE4ICsxMzgsMTggQEAgZGVz
Y3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVk
JywgJ2NvbXBsZXRlZCcsICdmYWlsZWQnLCAnY29tcGxldGVkJ10sIGZhbHNlKTsKICAgICAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rl
c3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25lZWRfbW9yZV9yZXF1ZXN0cyA9IFRSVUUgV0hF
UkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL25lZWQt
bW9yZS1yZXF1ZXN0cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQu
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gY29u
dGVudC50ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5p
ZCwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAudGFzaywgNTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91
cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5pZCksIDYw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnRh
c2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1l
LCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3VwLmF1dGhvciwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5o
aWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRp
b24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5tYXlOZWVkTW9yZVJlcXVlc3Rz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAw
JywnNzAxJywgJzcwMicsICc3MDMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAucGxhdGZvcm0pLCA2
NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzLCBbJzcwMCcsJzcwMScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQw
MScsICc0MDInXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbGlzdCBhbGwg
dGVzdCBncm91cHMgbWF5IG5lZWQgYWRkaXRpb25hbCBidWlsZCByZXF1ZXN0cycsIGFzeW5jICgp
ID0+IHsKQEAgLTE1OCwzMSArMTU4LDMxIEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1
ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rncm91cF9tYXlfbmVlZF9t
b3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2MDAnKTsKICAgICAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rl
c3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25lZWRfbW9yZV9yZXF1ZXN0cyA9IFRSVUUgV0hF
UkUgdGVzdGdyb3VwX2lkID0gNjAxJyk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL25lZWQt
bW9yZS1yZXF1ZXN0cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVzdEdy
b3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQu
dGVzdEdyb3Vwcy5sZW5ndGgsIDIpOwogCiAgICAgICAgICAgICBjb25zdCBvbmVUZXN0R3JvdXAg
PSBjb250ZW50LnRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVz
dEdyb3VwLmlkLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC50
YXNrLCA1MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5uYW1lLCAn
c29tZSB0ZXN0IGdyb3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3Vw
LmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
b25lVGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChvbmVUZXN0R3JvdXAudGFzayksIDUwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob25lVGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbmVUZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghb25lVGVzdEdyb3VwLmhpZGRlbik7CiAgICAgICAgICAgICBhc3Nl
cnQub2sob25lVGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhvbmVUZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob25lVGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG9uZVRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3MDIn
LCAnNzAzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvbmVUZXN0R3JvdXAuY29t
bWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob25lVGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvbmVUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEn
LCAnNDAyJ10pOwogCiAgICAgICAgICAgICBjb25zdCBhbm90aGVyVGVzdEdyb3VwID0gY29udGVu
dC50ZXN0R3JvdXBzWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3Jv
dXAuaWQsIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC50
YXNrLCA1MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAubmFt
ZSwgJ2Fub3RoZXIgdGVzdCBncm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3Ro
ZXJUZXN0R3JvdXAuYXV0aG9yLCAnd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYW5vdGhlclRlc3RHcm91cC5pZCksIDYwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYW5vdGhlclRlc3RHcm91cC50YXNrKSwgNTAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLm5hbWUsICdh
bm90aGVyIHRlc3QgZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyVGVzdEdyb3VwLmF1dGhvciwgJ3dlYmtpdCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFh
bm90aGVyVGVzdEdyb3VwLmhpZGRlbik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWFub3RoZXJU
ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGFub3Ro
ZXJUZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYW5vdGhlclRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChhbm90aGVyVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzEwJywnNzExJywgJzcx
MicsICc3MTMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGFub3RoZXJUZXN0R3Jv
dXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYW5vdGhlclRlc3RHcm91cC5wbGF0Zm9ybSks
IDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91
cC5idWlsZFJlcXVlc3RzLCBbJzcxMCcsJzcxMScsICc3MTInLCAnNzEzJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLmNvbW1pdFNldHMsIFsn
NDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJs
ZS10ZXN0cy5qcwppbmRleCBmZmYyYWNmMWZiNjM5YWIzZTk4YTJiMWI3YjNkNDA2ZGYxYWNjN2Ux
Li5iYmY5MzM2NjUwZTVlYTQxNTdkZmZhNGQ5NjJlYmI5NTkwNDdlOTQwIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFi
bGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBAIC0zMCwxNCArMzAsMTQgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCdz
aG91bGQgcmVqZWN0IHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJp
Z2dlcmFibGUvJywge30pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5h
bWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVu
IHRoZXJlIGFyZSBubyBzbGF2ZXMnLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHtz
bGF2ZU5hbWU6IGVtcHR5VXBkYXRlLnNsYXZlTmFtZSwgc2xhdmVQYXNzd29yZDogZW1wdHlVcGRh
dGUuc2xhdmVQYXNzd29yZH07CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
U2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTQ4LDcgKzQ4LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IHtzbGF2ZU5hbWU6IGVtcHR5VXBk
YXRlLnNsYXZlTmFtZSwgc2xhdmVQYXNzd29yZDogJ2JhZFBhc3N3b3JkJ307CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJp
Z2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU4LDcgKzU4LDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTczLDEwICs3MywxMCBA
QCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBlbXB0eVVwZGF0ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndGVzdCcpOwogICAgICAgICB9
KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgs
IDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg3LDEyICs4NywxMiBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzbWFsbFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFi
bGVfY29uZmlndXJhdGlvbnMnLCAndGVzdCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ3Rlc3QnXSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNb
MF1bJ3Rlc3QnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsncGxhdGZvcm0n
XSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdWyd0ZXN0J10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25z
WzBdWyd0ZXN0J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF1bJ3Bs
YXRmb3JtJ10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRD
b25maWd1cmF0aW9uRW50cnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29uZmlndXJhdGlvbkVudHJ5Jyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMzcsNyArMTM3LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmVwb3NpdG9yeUdyb3VwcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXBzJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xNDksNyArMTQ5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVw
b3NpdG9yeUdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTYxLDcgKzE2MSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnlHcm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTE3Myw3ICsxNzMsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3Jv
dXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
ODUsNyArMTg1LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
dXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeURhdGEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeURhdGEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5Nyw3ICsx
OTcsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBkZXNjcmli
ZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0R1cGxpY2F0ZVJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdEdXBsaWNhdGVSZXBvc2l0b3J5Jyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yMjEsMTggKzIyMSwxOCBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGVXaXRoT1NYUmVwb3NpdG9yeUdyb3VwKCkp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0ZXN0
JyksIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0
aW9ucywgcmVwb3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10sIE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10sIE1vY2tE
YXRhLnNvbWVQbGF0Zm9ybUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bmZpZ3VyYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29uZmlndXJhdGlvbnNbMF1bJ3Rlc3QnXSwgTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSwg
TW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5l
bXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10s
IE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yNTMsOCArMjUzLDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10g
PSBpbml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBv
c2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
ZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxD
b25maWd1cmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKICAgICB9
KTsKIApAQCAtMjc1LDggKzI3NSw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91
cHNdID0gaW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywg
cmVwb3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0
aWFsQ29uZmlndXJhdGlvbnMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAgICAgIH0pCiAg
ICAgfSk7CiAKQEAgLTI5MCwxNCArMjkwLDE0IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91
cHMnKSkudGhlbigocmVwb3NpdG9yeUdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
WyduYW1lJ10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sIG51bGwpOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+
IGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnKSkudGhlbigocmVw
b3NpdG9yeUdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3VwIGlzIGF3ZXNv
bWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCAndGhpcyBncm91cCBpcyBh
d2Vzb21lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDQsMzkgKzM0NCwzOSBAQCBk
ZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
LnNvcnRCeU5hbWUoVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuYWxsKCkpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ1dlYktpdCcp
OwogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFt
ZSgnbWFjT1MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5u
YW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0t
b25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uZGVz
Y3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBb
bWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSht
YWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2Nl
cHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tb25seScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uZGVz
Y3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9z
aXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNj
ZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigoKSA9PiBNYW5p
ZmVzdC5mZXRjaCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlH
cm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxl
UmVwb3NpdG9yeUdyb3VwLmFsbCgpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdXZWJLaXQnKTsKICAgICAgICAgICAgIGNvbnN0IG1h
Y29zID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ21hY09TJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJr
aXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2Ny
aXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRz
Q3VzdG9tUm9vdHMoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0
b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNv
cyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNj
ZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNv
cyksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0
ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzk1LDI5ICszOTUsMjkgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dy
b3VwcycsICduYW1lJyksIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywg
J3JlcG9zaXRvcnknKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IFtyZXBvc2l0b3J5R3JvdXBzLCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0t
YW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAnc3lzdGVt
LW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyd0
cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdz
eXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxl
SWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdn
ZXJhZ2JsZUlkKCkpOwogICAgICAgICAgICAgaW5pdGlhbEdyb3VwcyA9IHJlcG9zaXRvcnlHcm91
cHM7CiAKICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0
b3JpZXNCeUdyb3VwKHJlcG9zaXRvcmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2Jq
ZWN0LmtleXMocmVwb3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3JvdXBzWzBdWydp
ZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5
R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVw
b3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3JvdXBzWzBdWydpZCddXSwg
W01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5
R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpXSk7CiAKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRl
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5h
bGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFtZScp
LCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5Jyld
KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbcmVw
b3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbEdyb3Vwcyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxHcm91cHMp
OwogCiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9y
aWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVj
dC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdyb3Vwc1swXVsnaWQnXV0s
IFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS5naXRXZWJraXRSZXBvc2l0
b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdy
b3VwW2luaXRpYWxHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQo
KV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlcG9zaXRv
cmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0
YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS5naXRXZWJraXRSZXBvc2l0b3J5SWQoKV0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3Vw
W2luaXRpYWxHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0p
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDM2LDE3ICs0MzYsMTcgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dy
b3VwcycsICduYW1lJyksIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywg
J3JlcG9zaXRvcnknKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IFtyZXBvc2l0b3J5R3JvdXBzLCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0t
YW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAnc3lzdGVt
LW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyd0
cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdz
eXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxl
SWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdn
ZXJhZ2JsZUlkKCkpOwogICAgICAgICAgICAgaW5pdGlhbEdyb3VwcyA9IHJlcG9zaXRvcnlHcm91
cHM7CiAKICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0
b3JpZXNCeUdyb3VwKHJlcG9zaXRvcmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2Jq
ZWN0LmtleXMocmVwb3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3JvdXBzWzBdWydp
ZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5
R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVw
b3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3JvdXBzWzBdWydpZCddXSwg
W01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5
R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpXSk7CiAgICAgICAgICAgICBpbml0aWFsUmVwb3NpdG9yaWVzID0gcmVwb3NpdG9yaWVz
OwogCiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldp
dGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CkBAIC00
NTUsMTMgKzQ1NSwxMyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IFtyZXBvc2l0b3J5R3JvdXBzLCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ21hYy1vbmx5Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFi
bGUnXSwgaW5pdGlhbEdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2Vy
YWJsZSddLCBpbml0aWFsR3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9u
bHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
Wyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdz
eXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIGluaXRpYWxHcm91cHNbMF1bJ3RyaWdnZXJh
YmxlJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllcywgaW5p
dGlhbFJlcG9zaXRvcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcmllcywgaW5pdGlhbFJlcG9zaXRvcmllcyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11
cGxvYWQtcm9vdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzCmluZGV4IGE4YjE5MWQ3NWZjMWM4MDE2NmJhMzZl
MTM1MzM1YjAxMDYxODg5ZjguLjQ5ODJmMDk4YmU4MTc2NTk1N2ZhMTUyM2NiN2ZkYWEzZDY3MDc1
ZjQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZC1yb290LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzCkBAIC0xMjEsNyArMTIxLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3Vs
ZCByZWplY3Qgd2hlbiByb290IGZpbGUgaXMgbWlzc2luZycsICgpID0+IHsKICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290
LycsIHt9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ05vRmlsZVNwZWNpZmllZCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vRmlsZVNwZWNpZmllZCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUu
bWFrZVRlbXBvcmFyeUZpbGUoJ3NvbWUuZGF0JywgJ3NvbWUgY29udGVudCcpLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSkpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xMzksNyArMTM5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2Fk
LXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5zbGF2ZU5h
bWU7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURh
dGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTQ5LDcgKzE0OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRlck5hbWU7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBs
b2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRl
ck5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkQnVpbGRlck5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1
OSw3ICsxNTksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxkVGFnOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGFnJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1
aWxkVGFnJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzAsNyArMTcwLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVw
b3J0LmJ1aWxkTnVtYmVyID0gJzFhYmMnOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkTnVtYmVyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkTnVtYmVy
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzksNyArMTc5LDcgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCByZXBvcnQg
PSBtYWtlUmVwb3J0KHJvb3RGaWxlKTsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gJzQ1
Nic7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRl
ck51bWJlclRhZ01pc21hdGNoJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGFjY2VwdCBp
ZiBib3RoIGJ1aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIGV4aXN0cyB3aXRoIHNhbWUgdmFsdWUn
LCBhc3luYyAoKSA9PiB7CkBAIC0xODgsMzkgKzE4OCwzOSBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKIAogICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5k
aW5nKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICBjb25z
dCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgY29uc3Qg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAK
ICAgICAgICAgY29uc3Qgcm9vdEZpbGUgPSBhd2FpdCBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxl
KCk7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVx
dWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gcmVw
b3J0LmJ1aWxkVGFnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgY29udGludWUgd29ya2luZyB3aXRoIGJ1aWxkIG51bWJlciBpZiBidWls
ZCB0YWcgaXMgbm90IHByZXNlbnQnLCBhc3luYyAoKSA9PiB7CkBAIC0yMjksNDAgKzIyOSw0MCBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNv
bnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9z
aXRvcnlJZCgpKTsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAg
ICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwogICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgY29uc3Qgcm9vdEZpbGUgPSBhd2FpdCBhZGRT
bGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBv
cnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgZGVs
ZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVyID0gJzEyMyc7
CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3Vs
ZCByZWplY3Qgd2hlbiBidWlsZCB0aW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CkBAIC0yNzEsNyAr
MjcxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRpbWU7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxk
VGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgxLDcgKzI4MSw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9y
dC5idWlsZFRpbWUgPSAnV2VkLCAxMCBNYXkgMjAxNyAwMzowMjozMCBHTVQnOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9h
ZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGlt
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRCdWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI5MSw3ICsy
OTEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxkUmVxdWVzdDsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBy
ZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
QnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDEsNyArMzAxLDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgcmVwb3J0LmJ1aWxkUmVxdWVzdCA9ICdhYmMnOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9y
dCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWls
ZFJlcXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwOSw3ICszMDksNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlKSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZEJ1aWxkUmVxdWVzdFR5cGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0VHlwZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzE5LDcgKzMxOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQucmVw
b3NpdG9yeUxpc3Q7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMyOSw3ICszMjksNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9y
eUxpc3QgPSAnYStiJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ3LDY2ICszNDcsNjYgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0R3JvdXAg
PSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAg
IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICB9KS50
aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9y
dChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsK
ICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24o
dXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29t
ZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxk
UmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAg
ICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3Qs
IGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1
aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFrZVRlbXBv
cmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29udGVudCAw
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tvd25lclJl
cG9zaXRvcnlXcm9uZ0tleTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRD
b3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBy
ZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRLZXlGb3JSZXBvc2l0b3J5Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZEtleUZvclJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQyNCw2
NiArNDI0LDY2IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsK
IAogICAgICAgICAgICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293
bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYx
NjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05
MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRl
Um9vdEZpbGUoKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBb
J1dlYktpdCddKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSBy
ZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxv
YWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVk
Um9vdFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxl
bmFtZSgpLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxv
YWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCks
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdy
b3VwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RH
cm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9v
dF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRl
ZFJvb3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgICAgIHJldHVy
biBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdKYXZhU2NyaXB0Q29yZS1Sb290LmRh
dCcsICdKYXZhU2NyaXB0IENvbnRlbnQgMCcpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkg
PT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVp
bGRSZXF1ZXN0LmlkKCksIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0MicsIG93bmVkUmVwb3Np
dG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRS
ZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTUwMSw3OSArNTAxLDc5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9u
ICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJl
ZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNo
YXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5k
Q3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSkpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVk
Um9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1cGxv
YWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0Rh
dGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
bG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9yKCksICdzb21lVXNlcicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9yKCksICdzb21l
VXNlcicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRS
ZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAg
ICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0
LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRC
dWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB3ZWJraXRQYXRjaCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB3ZWJraXRQYXRjaCk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdCwgdXBsb2FkZWRSb290KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJl
ZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3Qp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU4Nyw3ICs1ODcsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnImEiJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5TGlzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjAxLDggKzYwMSw4IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdbIldlYktpdCIsICJCYWRSZXBvc2l0b3J5TmFtZSJd
JzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRSZXBvc2l0b3J5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Jl
cG9zaXRvcnlOYW1lJ10sICdCYWRSZXBvc2l0b3J5TmFtZScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3JlcG9zaXRvcnlOYW1lJ10s
ICdCYWRSZXBvc2l0b3J5TmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjE2LDgg
KzYxNiw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdbIldlYktpdCIsICJtYWNPUyJdJzsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRSZXBvc2l0b3J5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3JlcG9z
aXRvcnlOYW1lJ10sICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3JlcG9zaXRvcnlOYW1lJ10sICdtYWNPUycpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtNjM1LDM0ICs2MzUsMzQgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0R3JvdXAgPSBn
cm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAg
IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQp
LCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICB9KS50aGVu
KChyb290RmlsZSkgPT4gewpAQCAtNjcwLDQ1ICs2NzAsNDUgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9zaXRvcnlM
aXN0ID0gJ1siV2ViS2l0IiwgIlNoYXJlZCJdJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9h
ZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1
cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJh
d0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9yKCksICdzb21lVXNlcicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuYXV0aG9yKCksICdz
b21lVXNlcicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVp
bGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwog
CiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1
ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0
ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB3ZWJraXRQYXRjaCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVw
bG9hZGVkUm9vdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCB1cGxv
YWRlZFJvb3QpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRSb290KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9h
ZGVkUm9vdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcyNyw4NyArNzI3LDg3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAg
ICAgdGVzdEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNG
aW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CiAgICAgICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYx
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsK
ICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9y
dCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBs
b2FkZWRGaWxlJ107CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5z
dXJlU2luZ2xldG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29t
ZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmls
ZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVk
QnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxS
b290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBUZW1wb3JhcnlG
aWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZhU2Ny
aXB0IENvbnRlbnQgMCcpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAg
ICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0Lmlk
KCksIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNj
cmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290
LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAg
Y29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAg
ICAgICAgICAgIGpzY1Jvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVk
Um9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAnSmF2YVNj
cmlwdENvcmUtUm9vdC5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRC
dWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3RdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCku
YWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290LCBq
c2NSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcwppbmRleCBiZWRjNTQ3N2Q1
NWE0Yzc0N2IyMWQ3MDk0ODU1MmUzNTdmNDYyYTk0Li4wMmUxZDg5ZmNjMWQyMmVhNjg2YWNlZDE2
MDIyOTIzMjFmZGRkOGQzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKQEAgLTcs
MTkgKzcsMTggQEAgZ2xvYmFsLkZvcm1EYXRhID0gcmVxdWlyZSgnZm9ybS1kYXRhJyk7CiAKIGNv
bnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwog
Y29uc3QgVGVtcG9yYXJ5RmlsZSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxl
LmpzJykuVGVtcG9yYXJ5RmlsZTsKK2NvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgn
Li9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKIAog
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKLSAgICB0aGlzLnRp
bWVvdXQoNTAwMCk7Ci0gICAgVGVzdFNlcnZlci5pbmplY3QoKTsKLQorICAgIHByZXBhcmVTZXJ2
ZXJUZXN0KHRoaXMpOwogICAgIFRlbXBvcmFyeUZpbGUuaW5qZWN0KCk7CiAKICAgICBpdCgnc2hv
dWxkIHJldHVybiAiSW52YWxpZEFyZ3VtZW50cyIgd2hlbiBuZWl0aGVyIHBhdGggbm9yIHNoYTI1
NiBxdWVyeSBpcyBzZXQnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2FkZWQtZmlsZScpLnRoZW4oKGNvbnRlbnQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1
bWVudHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMn
XSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2FkZWQtZmlsZS8nKTsKICAgICAgICAgfSkudGhl
bigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1
cyddLCAnSW52YWxpZEFyZ3VtZW50cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjcsNyArMjYsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvMScpLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0s
IChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MDQpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzUsNyArMzQsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvZm9vJykudGhlbigoY29udGVudCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC00Nyw3ICs0Niw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBs
b2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5z
ZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke3VwbG9hZGVkRmlsZVsnaWQnXX1g
LCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250
ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VU
ZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02OCwxMyAr
NjcsMTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKIAog
ICAgIGl0KCdzaG91bGQgcmV0dXJuICJOb3RGb3VuZCIgd2hlbiB0aGUgc3BlY2lmaWVkIFNIQTI1
NiBpcyBpbnZhbGlkJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1Nj1hYmMnKS50aGVuKChjb250
ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdO
b3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1
cyddLCAnTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxk
IHJldHVybiAiTm90Rm91bmQiIHdoZW4gdGhlcmUgaXMgbm8gZmlsZSBtYXRjaGluZyB0aGUgc3Bl
Y2lmaWVkIFNIQTI1NiAnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PTUyNTZlYzE4ZjExNjI0
MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKS50aGVu
KChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J3N0YXR1cyddLCAnTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg2LDcg
Kzg1LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvdXBsb2Fk
ZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRGaWxlWydzaGEyNTYnXX1gKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2Fk
ZWRGaWxlLCByZXNwb25zZVsndXBsb2FkZWRGaWxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUsIHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NywxMSArOTYsMTEgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUn
XTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwotICAgICAg
ICAgICAgcmV0dXJuIGRiLmNvbm5lY3QoKS50aGVuKCgpID0+IGRiLnF1ZXJ5KGBVUERBVEUgdXBs
b2FkZWRfZmlsZXMgU0VUIGZpbGVfZGVsZXRlZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRj
J2ApKTsKKyAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeShgVVBEQVRFIHVwbG9hZGVkX2ZpbGVz
IFNFVCBmaWxlX2RlbGV0ZWRfYXQgPSBub3coKSBhdCB0aW1lIHpvbmUgJ3V0YydgKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKGAvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1Nj0ke3VwbG9hZGVkRmlsZVsn
c2hhMjU2J119YCk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTE3LDE2ICsxMTYsMTYgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMg
PSByZXNwb25zZS5oZWFkZXJzOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVh
ZGVycykuaW5jbHVkZXMoJ2V0YWcnKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVy
c1snZXRhZyddLCB1cGxvYWRlZEZpbGVbJ3NoYTI1NiddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChoZWFkZXJzWydldGFnJ10sIHVwbG9hZGVkRmlsZVsnc2hhMjU2J10pOwogCiAg
ICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycykuaW5jbHVkZXMoJ2FjY2VwdC1y
YW5nZXMnKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snYWNjZXB0LXJhbmdl
cyddLCAnYnl0ZXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydh
Y2NlcHQtcmFuZ2VzJ10sICdieXRlcycpOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0Lmtl
eXMoaGVhZGVycykuaW5jbHVkZXMoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVu
dDsgZmlsZW5hbWUqPXV0Zi04Jydzb21lLmRhdGApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXSwgYGF0dGFjaG1lbnQ7IGZpbGVu
YW1lKj11dGYtOCcnc29tZS5kYXRgKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlz
KGhlYWRlcnMpLmluY2x1ZGVzKCdjb250ZW50LWxlbmd0aCcpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCB1cGxvYWRlZEZpbGVbJ3NpemUnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1sZW5ndGgn
XSwgdXBsb2FkZWRGaWxlWydzaXplJ10pOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0Lmtl
eXMoaGVhZGVycykuaW5jbHVkZXMoJ2xhc3QtbW9kaWZpZWQnKSk7CiAgICAgICAgIH0pOwpAQCAt
MTQ0LDcgKzE0Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBsYXN0TW9kaWZpZWQgPSByZXNwb25zZS5oZWFkZXJzWydsYXN0LW1v
ZGlmaWVkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5k
SHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxs
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ10sIGxhc3RNb2RpZmllZCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2Rp
ZmllZCddLCBsYXN0TW9kaWZpZWQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDkg
KzE1NSw5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3Qo
YC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczog
eydSYW5nZSc6ICdieXRlcz01LSd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDUtMTEvMTInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdjb250ZW50
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJh
bmdlJ10sICdieXRlcyA1LTExLzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTcwLDkgKzE2OSw5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5k
SHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxs
LCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz00LTknfX0pOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRl
cnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRl
cyA0LTkvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRl
eHQsICcgY29udGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNb
J2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQtOS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJyBjb250ZScpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTg0LDkgKzE4Myw5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBu
dWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz0tNCd9fSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9u
c2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2Un
XSwgJ2J5dGVzIDgtMTEvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5y
ZXNwb25zZVRleHQsICd0ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCho
ZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA4LTExLzEyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAndGVudCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTk4LDkgKzE5Nyw5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9h
ZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdH
RVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz0tMTAwJ319KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMg
PSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVu
dC1yYW5nZSddLCAnYnl0ZXMgMC0xMS8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgMC0xMS8xMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwg
J3NvbWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIwOSw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBpZCA9IHJlc3BvbnNl
Wyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dF
VCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPTEyLSd9fSkKLSAgICAg
ICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5lcXVhbChlcnJvciwgNDE2KSk7CisgICAgICAgICAg
ICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KSwgKGVycm9yKSA9PiBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQxNikpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMjIwLDcgKzIxOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVk
LWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChg
L2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7
J1JhbmdlJzogJ2J5dGVzPTItMSd9fSkKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5l
cXVhbChlcnJvciwgNDE2KSk7CisgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsIDQxNikpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjMyLDE1ICsy
MzEsMTUgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3Vw
bG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRl
eHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZp
bGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICB7aGVhZGVyczog
eydSYW5nZSc6ICdieXRlcyA9IDktMTAnLCAnSWYtUmFuZ2UnOiByZXNwb25zZS5oZWFkZXJzWyds
YXN0LW1vZGlmaWVkJ119fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0
ZXMgOS0xMC8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dCwgJ2VuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNTIsMTUgKzI1
MSwxNSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBs
b2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dCwgJ3NvbWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmls
ZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7
J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJZi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2V0
YWcnXX19KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVh
ZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0
LCAnZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI3MiwxMyArMjcxLDEzIEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBp
ZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxl
LyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBj
b250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNw
b25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwg
J0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgeydSYW5nZSc6ICdieXRlcyA9IDkt
MTAnLCAnSWYtUmFuZ2UnOiAnZm9vJ30pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250
ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25z
ZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMyw3
ICszMDIsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbmRCeXRlIC0gc3RhcnRCeXRlICsgMTsg
aSsrKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsID0gcmVzcG9uc2VCdWZmZXJbaV07
CiAgICAgICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBidWZmZXJbc3RhcnRCeXRlICsgaV07
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIGBUaGUgYnl0
ZSBhdCBpbmRleCAke2l9IHNob3VsZCBiZSBpZGVudGljYWwuIEV4cGVjdGVkICR7ZXhwZWN0ZWR9
IGJ1dCBnb3QgJHthY3R1YWx9YCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGFjdHVhbCwgZXhwZWN0ZWQsIGBUaGUgYnl0ZSBhdCBpbmRleCAke2l9IHNob3VsZCBiZSBpZGVu
dGljYWwuIEV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIApAQCAtMzE1LDggKzMxNCw4IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsn
UmFuZ2UnOiBgYnl0ZXMgPSAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfWB9LCByZXNwb25zZUhhbmRs
ZXJ9KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVy
c1snY29udGVudC1yYW5nZSddLCBgYnl0ZXMgJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxl
U2l6ZX1gKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRl
bnQtcmFuZ2UnXSwgYGJ5dGVzICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9LyR7ZmlsZVNpemV9YCk7
CiAgICAgICAgICAgICB2ZXJpZnlCdWZmZXIoKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpz
CmluZGV4IDE0ZTk0NTZkMmU2N2E1YzcxMDAxMjBiMTU0NjQ4MGMyNzE2ZGViZjQuLmIxMDc0OWEw
ZDFlOTAzOGUxZmIyZTkxMzkzNGE2M2FhMjI1MGRkNWUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC03OSw3ICs3OSw3
IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lv
bnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0
cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgY29uc3QgdGVz
dFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKIAotICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgIGNvbnN0IGNvbnRl
bnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFz
aycsIHsKICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBd
WydpZCddLApAQCAtMTQwLDIzICsxNDAsMjMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9h
ZGQtYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7J2dyb3VwJzogaW5zZXJ0ZWRH
cm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwg
dHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaW5pdGlhbFJlcGV0
aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSksIDIpOwogCiAg
ICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0
cycsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pOwogCiAgICAgICAgIGNv
bnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsn
dGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5n
dGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5yZXBldGl0aW9u
Q291bnQoKSwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmluaXRp
YWxSZXBldGl0aW9uQ291bnQoKSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBk
YXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQodXBkYXRlZEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSksIDQpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodXBkYXRlZEdyb3Vwc1swXS5pbml0aWFsUmVwZXRpdGlv
bkNvdW50KCkpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRN
b3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAgICAgICAgIGZvciAoY29uc3QgY29tbWl0U2V0IG9mIHVw
ZGF0ZWRHcm91cHNbMF0ucmVxdWVzdGVkQ29tbWl0U2V0cygpKSB7CiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3RzID0gdXBkYXRlZEdyb3Vwc1swXS5yZXF1ZXN0c0ZvckNvbW1pdFNldChj
b21taXRTZXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0
aCwgNCk7CiAgICAgICAgIH0KICAgICB9KTsKIApAQCAtMTcwLDEyICsxNzAsMTIgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGdyb3VwLmluaXRpYWxSZXBldGl0aW9u
Q291bnQoKSksIDIpOwogICAgICAgICBhd2FpdCBncm91cC51cGRhdGVIaWRkZW5GbGFnKHRydWUp
OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90QWRkVG9IaWRkZW5UZXN0R3Jv
dXAnLCBhc3luYyAoKSA9PiBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVp
bGQtcmVxdWVzdHMnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KSkKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRl
c3RzLmpzCmluZGV4IDk5NmQyZGQzMmQ3NmJhNTQ3NTNlNjM5ZmY4YWY5YjM1NmYyNzk3ZDguLjBl
Njg2MWI3ZWM2YmViZTU1MmE2NGQ4NzNmZTU3NjZiNWQxMTc0MmYgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFu
YWx5c2lzLXRhc2stdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwpAQCAt
MTEzLDcgKzExMyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHt9KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlcnJvciwgJ01pc3NpbmdOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsICdNaXNzaW5nTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTIxLDcgKzEyMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAn
aGknLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
MzcsNyArMTM3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdo
aScsIHN0YXJ0UnVuOiAiZm9vIiwgZW5kUnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAg
ICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZh
bGlkU3RhcnRSdW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0lu
dmFsaWRTdGFydFJ1bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBi
cm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1
bjogMSwgZW5kUnVuOiAiZm9vIn0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJv
cikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEwMCwgZW5k
UnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4n
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3Rh
cnRSdW4nKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE2OCw3
ICsxNjgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
IHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdo
aScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDEwMH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnSW52YWxpZEVuZFJ1bicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRFbmRSdW4nKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKQEAgLTE4MCw3ICsxODAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNp
cy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDF9KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVGltZVJhbmdlJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTIsNyArMTkyLDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJp
dmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwg
ZW5kUnVuOiAyfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSdW5Db25maWdNaXNt
YXRjaCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1J1bkNv
bmZpZ01pc21hdGNoJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC0yMTIsMjAgKzIxMiwyMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFs
eXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50
aGVuKChjb25maWdSb3cpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0
ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigo
dGVzdFJ1bnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBl
bmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rh
c2tJZCddKTsKICAgICAgICAgfSkudGhlbigodGFzaykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2submFtZSgpLCAnaGknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0YXNrLm5hbWUoKSwgJ2hpJyk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0
cygpKTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
cGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5s
YWJlbCgpLCAndGVzdDEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI0NCwyMiArMjQ0
LDIyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1Jv
dykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtj
b25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycs
IHtuYW1lOiAnaGknLCBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1
bnNbMV1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwogICAg
ICAgICB9KS50aGVuKCh0YXNrKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5u
YW1lKCksICdoaScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgp
LCAnaGknKTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5
cGUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxh
YmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5t
ZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGFzay5zdGFydFRpbWUoKSwgMTQ0NTk2MDA5MTAwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5lbmRUaW1lKCksIDE0NDU5NjY4NjEwMDApOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAn
dGVzdDEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnN0YXJ0VGltZSgp
LCAxNDQ1OTYwMDkxMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmVu
ZFRpbWUoKSwgMTQ0NTk2Njg2MTAwMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODAs
NyArMjgwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFz
ayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29u
ZmlnUm93KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5z
Jywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5z
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAg
ICAgICAgc3RhcnRJZCA9IHRlc3RSdW5zWzBdWydpZCddOwogICAgICAgICAgICAgZW5kSWQgPSB0
ZXN0UnVuc1sxXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogc3Rh
cnRJZCwgZW5kUnVuOiBlbmRJZH0pOwpAQCAtMjg4LDEyICsyODgsMTIgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogc3RhcnRJZCwg
ZW5kUnVuOiBlbmRJZH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdEdXBsaWNhdGVBbmFseXNp
c1Rhc2snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdEdXBs
aWNhdGVBbmFseXNpc1Rhc2snKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2FuYWx5c2lzX3Rhc2tzJyk7
CiAgICAgICAgIH0pLnRoZW4oKHRhc2tzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGFza3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrcy5s
ZW5ndGgsIDEpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzEyLDcgKzMxMiw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2Vy
IHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAg
ICAgICAgICAgICBuYW1lOiAnaGknLAogICAgICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVu
c1swXVsnaWQnXSwKQEAgLTMzMCw4ICszMzAsOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICAgICAgZm9yIChsZXQgc3RyYXRlZ3kgb2Ygc3RyYXRlZ2llcykKICAgICAgICAgICAg
ICAgICBzdHJhdGVneUlkTWFwW3N0cmF0ZWd5WydpZCddXSA9IHN0cmF0ZWd5OwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc3RyYXRlZ3lJZE1hcFt0YXNrUm93WydzZWdtZW50YXRpb24nXV1b
J25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlvbiIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1sndGVzdF9yYW5nZSddXVsnbmFtZSddLCAic3R1
ZGVudCdzIHQtdGVzdCIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5
SWRNYXBbdGFza1Jvd1snc2VnbWVudGF0aW9uJ11dWyduYW1lJ10sICJ0aW1lIHNlcmllcyBzZWdt
ZW50YXRpb24iKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdHJhdGVneUlkTWFw
W3Rhc2tSb3dbJ3Rlc3RfcmFuZ2UnXV1bJ25hbWUnXSwgInN0dWRlbnQncyB0LXRlc3QiKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Niw3ICszNDYsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFw
aScsIGZ1bgogICAgICAgICBjb25zdCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1l
KCdzb21lIHBsYXRmb3JtJyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNl
bGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmlj
cygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25z
dCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAg
ICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeVJvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93
KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dlYktpdCd9KTsKICAgICAgICAgY29uc3Qgd2Via2l0
SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93LmlkOwpAQCAtMzcxLDcgKzM3MSw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZp
bGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5
TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1l
dHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25z
dCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAg
ICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeVJvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93
KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dlYktpdCd9KTsKICAgICAgICAgY29uc3Qgd2Via2l0
SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93LmlkOwpAQCAtMzg3LDE4ICszODcsMTggQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJp
dmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKIAogICAg
ICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0
YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAg
ICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhh
c1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3Mo
KSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNr
LnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2su
aWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMCk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCB3
aGVuIGNvbW1pdCBzZXQgbGlzdCBhbmQgYSBwb3NpdGl2ZSByZXBldGl0aW9uIGNvdW50IGlzIHNw
ZWNpZmllZCcsIGFzeW5jICgpID0+IHsKQEAgLTQyNiw3ICs0MjYsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQo
cGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZp
cnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBd
LmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0
UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jv
d1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAg
Y29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIyJ319
OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3Jldmlz
aW9uOiAnMTkxNjIzJ319OwpAQCAtNDM2LDM4ICs0MzYsMzggQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGkn
LCBmdW4KICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0
ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNp
c1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkp
OwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhl
cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxh
dGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVs
KCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10p
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRm
b3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5s
YWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CiAgICAg
ICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCks
IHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFi
bGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCks
IHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxh
dGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwg
dGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlk
KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNp
c1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAgICAgIGFzc2VydC5vayghYnVpbGRS
ZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNb
MV0uaXNCdWlsZCgpKTsKQEAgLTQ3Nyw4ICs0NzcsOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1
bgogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0
U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0u
Y29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0
LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYy
MicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9z
aXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJr
aXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0
b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiB9KTsKIApAQCAtNTAwLDcgKzUw
MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9y
bSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKICAgICAgICAgY29uc3Qg
Y29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMn
LCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9y
bS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygn
dGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0g
YXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30p
OwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC01
NDgsNyArNTQ4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgbGV0IHNvbWVQ
bGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpOwogICAgICAgICBjb25zdCBj
b25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycs
IHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3Jt
LmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0
ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJr
aXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlz
aW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9fTsKQEAgLTU1OCwzOCAr
NTU4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sg
d2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgICAgICBzdGFydFJ1bjog
dGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKIAogICAgICAg
ICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNr
SWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAgICAg
ICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVu
ZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBb
XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1
YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5w
bGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
Y2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxh
dGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5uYW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAubmFtZSgpLCAnQ29uZmlybScpOwogICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVk
c05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0
aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFi
bGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5p
ZCgpKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0
R3JvdXApOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAo
KSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxh
dGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBs
YXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQo
KSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsK
IAogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAg
ICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC01OTksOCArNTk5
LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRo
IG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRT
ZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRD
b21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3
ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJl
cG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlz
aW9uKCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5
MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1p
dEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwog
ICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW4gYW5hbHlzaXMgdGFzayB3aXRoIHRl
c3QgZ3JvdXAgYW5kIHJlc3BlY3QgdGhlICJuZWVkc05vdGlmaWNhdGlvbiIgZmxhZyBpbiB0aGUg
aHR0cCByZXF1ZXN0JywgYXN5bmMgKCkgPT4gewpAQCAtNjI4LDcgKzYyOCw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVn
ZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5k
QnlJZChwbGF0Zm9ybUlkKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2Vs
ZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNz
KClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0
IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29u
ZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAg
ICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2
MjInfX07CiAgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7
cmV2aXNpb246ICcxOTE2MjMnfX07CkBAIC02MzgsMzggKzYzOCwzOCBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFw
aScsIGZ1bmN0aQogICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRS
dW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAg
ICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rh
c2tJZCddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAg
ICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQ
ZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCks
IFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5w
bGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAg
ICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlk
KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5uYW1lKCksICdDb25maXJtJyk7CiAgICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJh
YmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCku
aWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVz
dEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
KCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBs
YXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5w
bGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwogCi0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lk
KCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7
CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAtNjc5LDcgKzY3
OSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2Vjb25k
Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qg
d2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0SWQpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRS
ZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZp
c2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1p
dFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcx
OTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsK
ICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRl
c3QtZ3JvdXAtdGVzdHMuanMKaW5kZXggMDljZDM3YWI0MzZjYjNhN2JiN2NiOGY4NDliY2E5ZGUy
MjdjMTQ0MS4uZGRmNDk5M2E0ZjhlMTk2ZDljMzIzNGVmNmRkYjE1MDcyMGJjM2ExNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFw
aS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
CkBAIC04Myw3ICs4Myw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhuYW1lLCB3ZWJr
aXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKICAgICB9KS50aGVuKChjb25maWdS
b3cpID0+IHsKICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25m
aWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICAgICAgbmFt
ZTogbmFtZSwKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKQEAgLTEz
Nyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkTmFt
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZE5hbWUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCBjb21taXRTZXRzOiBbWzFdXX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52
YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFs
aWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTMsNyArMTUzLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogJ2ZvbycsIGNvbW1pdFNldHM6IFtbMV1dfSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTE2MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCByZXBldGl0
aW9uQ291bnQ6IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTY5LDcgKzE2OSw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogMSwgY29tbWl0U2V0czoge319
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTc3LDcgKzE3Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogMSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTg1LDcgKzE4NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJl
cGV0aXRpb25Db3VudDogJ2ZvbycsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xOTMsNyArMTkzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAtNSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBb
XX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIwMSw3ICsyMDEsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0y
MTAsNyArMjEwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
Y29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGVycm9yLCAnVHJpZ2dlcmFibGVOb3RGb3VuZEZvclRhc2snKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzOiB7J1dlYktp
dCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNl
dHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
Q29tbWl0U2V0cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IHJldmlzaW9uU2V0czogW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHt9
XX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXZp
c2lvblNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI0
Miw3ICsyNDIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBy
ZXZpc2lvblNldHM6IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319XX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNl
dHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI1Miw3ICsy
NTIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRT
ZXRzOiB7J0Zvbyc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUmVwb3Np
dG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0yNjIsNyArMjYyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRh
c2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbJzEnXX19KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNzQsNyArMjc0LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91
cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjg2LDcgKzI4Niw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2
ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnQW1iaWd1b3VzUmV2aXNpb24nKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjk4LDcgKzI5OCw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30p
LnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMxMCw3ICszMTAs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNl
dHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZpbGUn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVXBs
b2FkZWRGaWxlJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0z
MjEsNyArMzIxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
cmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVw
b3NpdG9yeScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0lu
dmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC0zMzEsNyArMzMxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRh
c2tJZCwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbJzE5MTYyMicsICcxOTE2MjMnXSwgJ21hY09T
JzogWycxNUEyODQnXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChl
cnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRD
b21taXRTZXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
SW52YWxpZENvbW1pdFNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9
KTsKQEAgLTM0NSw3ICszNDUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdEdXBsaWNhdGVUZXN0R3JvdXBOYW1lJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zNjIsNyArMzYyLDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkT3duZXJSZXZpc2lvbicpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc4LDcgKzM3OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0T3duZXJzaGlwJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0T3duZXJzaGlwJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zOTMsMTcgKzM5MywxNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtb
d2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfSwgW21hY29zLmlkKCldOiB7cmV2aXNp
b246ICcxNUEyODQnfSwgW293bmVkSlNDLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5
MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0Jywg
dGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDEsIHJldmlzaW9uU2V0c30pOwogICAgICAg
ICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0
R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBn
cm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgZ3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNv
dW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGdy
b3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAg
ICBhc3NlcnQocmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghcmVx
dWVzdHNbMF0uaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVp
bGQoKSk7CkBAIC00MTgsMTQgKzQxOCwxNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRK
U0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkp
OwogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAg
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBt
YWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2Mt
NjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2Mt
OTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtvd25l
ZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdv
d25lZC1qc2MtOTE5MScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDQwLDE3ICs0NDAs
MTcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICB7W21hY29zLmlkKCldOiB7cmV2aXNpb246ICcxNUEy
ODQnfSwgW2pzYy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCBvd25lclJldmlz
aW9uOiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
cmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKICAgICAgICAgfSkudGhlbigoY29u
dGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICBncm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBncm91cElkKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcXVl
c3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXJlcXVlc3RzWzBdLmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAtNDY1
LDEzICs0NjUsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAg
IGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0
IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVw
b3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIG1hY29zXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVw
b3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIG1hY29zXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkx
OTEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ4MiwyOCArNDgyLDI4IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEubWFjb3NS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICAg
ICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAg
IGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVB
Mjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwg
W3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRv
cmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjMnKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9
IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJl
cG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3Np
dG9yeUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2Vw
dHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0
cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTUyMSwyNCArNTIxLDI0IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAg
ICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVz
KCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIzJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1
ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cCwgcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3Vw
KCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAu
bmFtZSgpLCAnd2Via2l0LW9ubHknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDApKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MSkpOwogICAgICAg
ICAgICAgfSk7CkBAIC01NTMsMzMgKzU1MywzMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2Vy
dGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNl
cnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
b2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJl
cXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUo
KSA9PSAnV2ViS2l0JylbMF07CiAgICAgICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0
b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ21h
Y09TJylbMF07CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29t
bWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRT
ZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNv
bW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygp
KSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmll
cygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKIAogICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91
cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgp
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0
b3J5R3JvdXApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5yZXBv
c2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRv
cnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10ucmVwb3NpdG9y
eUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9z
aXRvcnlHcm91cC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3Np
dG9yeUdyb3VwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02MDAsMjggKzYw
MCwyOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rl
c3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1
ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQp
OwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgp
OwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3Nd
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFj
b3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzJjZWRhNDVkM2NkNjNjZGU1OGQwZGJmNTc2NzcxNGUwM2Q5MDJlNDMn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICc1NDcxYThkZGMxZjY2MTY2M2NjZmQxYTI5
YzYzM2JhNTdlODc5NTMzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMmNlZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0Mycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYx
NjYzY2NmZDFhMjljNjMzYmE1N2U4Nzk1MzMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CiAK
ICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVw
b3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cDAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5h
bWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsK
ICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVw
b3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cDEsIHJlcG9zaXRvcnlHcm91cDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXBvc2l0b3J5R3JvdXAwKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0p
OwpAQCAtNjQyLDMyICs2NDIsMzIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3Vw
SWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50
KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91
cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0
c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNb
MV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQx
LnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJp
bmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXRdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwogCiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMCA9IHJlcXVlc3RzWzBdLnJlcG9z
aXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1l
KCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQwKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMSA9IHJlcXVlc3RzWzFdLnJl
cG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXAxLm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cDEsIHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMS5uYW1lKCks
ICd3ZWJraXQtb25seScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXAxLCByZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KCFyZXBvc2l0b3J5R3JvdXAxLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAxLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAg
ICAgfSk7CkBAIC02OTEsMjggKzY5MSwyOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygp
LCBbVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZEZpbGVbJ2lkJ10sIHVwbG9h
ZGVkRmlsZSldKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBz
ZXQwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29t
bWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9y
aWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxvYWRlZEZp
bGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxlKV0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNl
dDEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTc0MCw1MCArNzQwLDUwIEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCdd
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVz
dC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgp
LCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tE
YXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxk
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgp
LCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3Qo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0
cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNC
dWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
M10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRy
dWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7
CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0
MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyks
IHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCks
IHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1p
dFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1
XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRv
cmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRG
aWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwogICAgICAgICAgICAg
YXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtODA1
LDYwICs4MDUsNjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRb
J3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
Z3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
M10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRd
LmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBd
LmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1
XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1sw
XS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQo
KSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0
KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNl
dCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRT
ZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290
cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Vi
a2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJv
b3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29z
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBz
ZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRT
ZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwg
W3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRv
cmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1
QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShqc2MpLCB0cnVlKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTg4MCw2MSArODgwLDYxIEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
Mik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2Nr
RGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0
Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9y
bUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0
cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWls
ZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0u
aXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBj
b25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnko
d2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
NjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkoanNjKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNl
dDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNl
dCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5j
b21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmll
cygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05
MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRy
dWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtOTYzLDY4ICs5NjMsNjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVk
R3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVU
ZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxh
dGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwog
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCks
IGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlz
VGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
MV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0
IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEg
PSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVp
bGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
J293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21t
aXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAu
cmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0
cnVlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNv
bW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0
Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBm
YWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkx
OTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3Np
dG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1
ZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CkBAIC0xMDU3LDc3ICsxMDU3LDc3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRl
ZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRl
c3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAg
IGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBs
YXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgp
LCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25z
dCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBv
c2l0b3JpZXMoKSksIFtqc2MsIG93bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIG93bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25l
ZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0
cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICdqc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdqc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCks
IHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1p
dFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1
XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRv
cmllcygpKSwgW293bmVkSlNDLCBqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdP
bmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBqc2MsIHdlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21S
b290cygpLCBbXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCB0cnVlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9z
aXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTI3
MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkoanNjKSwgJ2pzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy05MTkxJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNj
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnko
anNjKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOwogICAgICAgICAgICAgYXNzZXJ0KCFz
ZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTE1NCw0NSArMTE1
NCw0NSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdy
b3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0
KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1
aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVp
bGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBd
LmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMV0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsK
IAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAg
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFttYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFttYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQx
KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTIxNyw3ICsxMjE3LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2
ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlcnJvciwgJ1BhdGNoTm90QWNjZXB0ZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ1BhdGNoTm90QWNjZXB0ZWQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEyMzAsMjQgKzEyMzAsMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgaW5zZXJ0
ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IFthbmFs
eXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5m
ZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0
Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5u
YW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNp
c1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICBhc3NlcnQu
b2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0g
Z3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9v
dHMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwog
CiAgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBuZWVk
cy1ub3RpZmljYXRpb24gZmxhZyB1bnNldCcsIGFzeW5jICgpID0+IHsKQEAgLTEyNTksMjQgKzEy
NTksMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0
R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0g
YXdhaXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQn
XSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFz
aycpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDEpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCkpOwogICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHNldDAg
PSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJv
b3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygp
LCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRl
IGEgY3VzdG9tIHRlc3QgZ3JvdXAgZm9yIGFuIGV4aXN0aW5nIGN1c3RvbSBhbmFseXNpcyB0YXNr
JywgKCkgPT4gewpAQCAtMTI5Niw0MyArMTI5Niw0NCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtu
YW1lOiAndGVzdDInLCB0YXNrOiByZXN1bHRbJ3Rhc2tJZCddLCBwbGF0Zm9ybTogTW9ja0RhdGEu
b3RoZXJQbGF0Zm9ybUlkKCksIHRlc3QsIHJldmlzaW9uU2V0cywgcmVwZXRpdGlvbkNvdW50OiAy
fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgc2Vjb25kUmVz
dWx0ID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0UmVzdWx0Wyd0YXNr
SWQnXSwgc2Vjb25kUmVzdWx0Wyd0YXNrSWQnXSk7CisgICAgICAgICAgICAvLyBwZyBmdW50aW9u
cyB3aWxsIHJldHVybiBhbGwgZGF0YSBhcyBzdHJpbmcsIHNvIHdlIG5lZWQgbWFrZSBzdXJlIHRo
YXQgd2UgY29tcGFyZSBhcyBpbnQKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChmaXJzdFJlc3VsdFsndGFza0lkJ10pLCBwYXJzZUludChzZWNvbmRSZXN1bHRbJ3Rhc2tJ
ZCddKSk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRj
aEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0
YXNrSWQnXSwgdHJ1ZSldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0ZXN0R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVy
IHRhc2snKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMik7
CiAgICAgICAgICAgICBUZXN0R3JvdXAuc29ydEJ5TmFtZSh0ZXN0R3JvdXBzKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzBdLm5hbWUoKSwgJ3Rl
c3QxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1swXS5yZXBl
dGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICBsZXQgcmVxdWVzdHMgPSB0ZXN0R3JvdXBz
WzBdLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7CiAgICAgICAgICAgICBsZXQgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwog
ICAgICAgICAgICAgbGV0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwc1sxXS5uYW1lKCksICd0ZXN0MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHNbMV0ucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Vi
a2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9v
dHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzFdLm5hbWUoKSwgJ3Rl
c3QyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1sxXS5yZXBl
dGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMV0u
YnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0
KTsKICAgICAgICAgICAgIHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgIHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0
MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTI3MzYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0
YXR1cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcwppbmRleCA0M2I0MDdlY2E5ZGQwMjlkYWFhYjg0NjM3
YTZkYzEyNTYzZGYxNTkxLi5iNTdhMDIxMWU2ODdmOWEzYzcyNzRjNzc0OWI2ZDVlMWZmYWFkYTFh
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCkBAIC0z
OSwxMyArMzksMTMgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1
cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVw
b3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2
aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllcidd
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2Fj
aGUnXSwgMTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0
ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgICAgICBpZCA9
IHJ1blJvd3NbMF1bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1
ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNTMsMTAgKzUzLDEw
IEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDEx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25f
Y291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93
c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC02NSwxMSArNjUsMTEgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0
YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQo
cmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
UmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJl
dHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZU
b2tlbigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIFJlbW90ZUFQSS5j
bGVhckNvb2tpZXMoKTsKQEAgLTc3LDcgKzc3LDcgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFw
aS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRUb2tlbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnSW52YWxpZFRva2VuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04NSwxOCArODUs
MTggQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJl
dmlzaW9uWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigo
cnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllcidd
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9v
dXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVl
c3RDU1JGVG9rZW4oKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0aFN0YXR1cygnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1y
dW4tc3RhdHVzJywge3Rva2VuOiAnYmFkJ30pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52
YWxpZFRva2VuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZh
bGlkVG9rZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwNSwyMyArMTA1LDIzIEBA
IGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lv
blswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxs
KCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1
cycsIHsncnVuJzogcnVuUm93c1swXVsnaWQnXSwgJ21hcmtlZE91dGxpZXInOiB0cnVlfSk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgn
dGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOwogICAgICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywg
eydydW4nOiBydW5Sb3dzWzBdWydpZCddLCAnbWFya2VkT3V0bGllcic6IGZhbHNlfSk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVz
dF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUt
dGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAwMjExNmVkOGQ4YmJlOTIwZGJmMThkNjE3ZThmOTU5
MzJjNzgzNTk5Li4yMmZkMGZlYzZlMzRiMThiYzIxYTlkYmRhNWI5YTE1YzE0NmE4NTkwIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMu
anMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5h
bWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNv
bmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywg
e21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9
KTsKICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycs
IHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5z
Lmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7
CiAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFy
dFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBAIC0xNjUsMjAgKzE2NSwyMCBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAg
Y29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAg
IGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsn
dGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAu
bm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlbnRB
dCA9IG5ldyBEYXRlOwogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1
cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBuZWVkc05vdGlmaWNh
dGlvbjogZmFsc2UsIG5vdGlmaWNhdGlvblNlbnRBdDogbm90aWZpY2F0aW9uU2VudEF0LnRvSVNP
U3RyaW5nKCl9KTsKIAogICAgICAgICBjb25zdCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdy
b3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5ub3RpZmljYXRpb25TZW50QXQoKS50b0lTT1N0cmlu
ZygpLCBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2Vu
dEF0KCkudG9JU09TdHJpbmcoKSwgbm90aWZpY2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOwog
ICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSAibmVlZHNfbm90aWZp
Y2F0aW9uIiBmaWVsZCB0byB0cnVlJywgYXN5bmMgKCkgPT4gewpAQCAtMTkwLDE4ICsxOTAsMTgg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
KCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQn
XTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9y
VGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAgIGFz
c2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAgICAgICAgIGF3YWl0IFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNl
cnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3Qg
dXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNr
SWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwg
MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0
aW9uKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5u
ZWVkc05vdGlmaWNhdGlvbigpLCB0cnVlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3Rp
ZmljYXRpb25TZW50QXQoKSk7CiAgICAgfSk7CiAKQEAgLTIxNCwxMCArMjE0LDEwIEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAg
ICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVz
dWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAKICAgICB9KTsKQEAgLTIz
MSwyMiArMjMxLDIyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRb
J3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RH
cm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNl
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIGZhbHNlKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1
cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJl
cXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAgbGV0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRy
dWUpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10
ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6
IGZhbHNlfSk7CiAKICAgICAgICAgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRj
aEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1
cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKICAg
ICB9KTsKIAogICAgIGl0KCdzaG91bGQgY2xlYXIgIm1heV9uZWVkX21vcmVfcmVxdWVzdHMiIHdo
ZW4gaGlkaW5nIGEgdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKQEAgLTI1OCwyMiArMjU4LDIy
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
bigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElk
J107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZv
clRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsK
IAogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1n
cm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVl
fSk7CiAKICAgICAgICAgbGV0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBk
YXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vw
c1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAg
ICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywg
e2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIGhpZGRlbjogdHJ1ZX0pOwogCiAgICAgICAgIHVwZGF0
ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10s
IHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaXNIaWRk
ZW4oKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigpLCB0cnVlKTsKICAgICB9KTsKIH0pOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1m
aWxlLXRlc3RzLmpzCmluZGV4IGUwZjhhMjhkZmU2MTMxMjg5YTkyNjE2OWQxMTg5MTY5MGJkZmFm
YjAuLjQ3ZTkzOGEyMzM0OTg5Mjc0YTFiOTBiN2VhZDcxNDlhN2QwOTg0ZDkgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBs
b2FkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qcwpAQCAtMjcsNyArMjcsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7
fSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3Ry
ZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0s
IChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVT
aXplTGltaXRFeGNlZWRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ0ZpbGVTaXplTGltaXRFeGNlZWRlZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtNTEsMTUgKzUxLDE1IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUg
PSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0
QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZS5pZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUuc2l6ZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlLmZp
bGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5k
YXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4
ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxl
LnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50KHVw
bG9hZGVkRmlsZS5pZCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmls
ZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZS5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdk
NmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZS5zaGEyNTYpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzksMTYgKzc5LDE2IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxv
YWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJu
IGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigo
cm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1
cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0
ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRl
ZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUs
ICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUs
IHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0u
c2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3
ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hh
MjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmlsZTIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICog
MTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJv
d3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEu
ZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5z
aW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hh
MjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1
ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
c2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xMDgsMTYgKzEwOCwxNiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1
cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVk
X2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxlMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlMS5zaXplKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1l
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0
MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEy
NTYpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUxLCB1
cGxvYWRlZEZpbGUyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJ
bnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1
cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1
OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5z
aGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM5LDI2ICsxMzksMjYgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAg
ICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAg
ICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwodXBsb2Fk
ZWRGaWxlMS5pZCwgdXBsb2FkZWRGaWxlMi5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVw
bG9hZGVkRmlsZTEuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uaWQsIHVw
bG9hZGVkRmlsZTIuaWQpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHVwbG9h
ZGVkRmlsZTEuaWQsIHVwbG9hZGVkRmlsZTIuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1sxXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMi5pZCkpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxl
MS5maWxlbmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwg
J290aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUs
IHVwbG9hZGVkRmlsZTIuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCB1cGxvYWRl
ZEZpbGUyLmZpbGVuYW1lKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6
ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlMS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTIuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5zaXplLCByb3dzWzFdLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdi
MjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTIuc2hhMjU2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1Niwgcm93c1sxXS5zaGEyNTYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEw
MjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dz
WzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUyLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNp
emUsIHJvd3NbMV0uc2l6ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sw
XS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVm
NzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMi5zaGEyNTYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5leHRlbnNpb24sICcu
ZGF0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9h
ZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5taW1lLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFy
Lmd6NScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRh
ci5nejUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZl
YzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0
YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGlt
aXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLm90aGVyLnRhci5nejUnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50YXIu
Z3o1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1
MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNl
NmQ4NGI1Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Vw
bG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJp
Y3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAg
ICAgICAgIH0pCiAgICAgfSk7CiAKQEAgLTIxNywxNCArMjE3LDE0IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJl
YW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsKICAgICAgICAgfQogICAgICAgICBsZXQgcm93cyA9
IGF3YWl0IGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3MubGVuZ3RoLCBzcGxpdENvdW50KTsKIAogICAgICAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlT2ZTaXplSW5NQignbGltaXQuZGF0Jywg
bGltaXRJbk1CLCAnYScpOwogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsK
ICAgICAgICAgcm93cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50ICsgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgc3BsaXRDb3VudCArIDEpOwogICAgICAg
ICBjb25zdCBkZWxldGVkRmlsZXMgPSByb3dzLmZpbHRlcigocm93KSA9PiByb3dbJ2RlbGV0ZWRf
YXQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChkZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CiAgICAg
fSk7CiAKICAgICBpdCgnc2hvdWxkIG5vdCBwcnVuZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBkZWxl
dGVkJywgYXN5bmMgKCkgPT4gewpAQCAtMjgxLDcgKzI4MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFt
fSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChl
cnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXpl
UXVvdGFFeGNlZWRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtMzEyLDEzICszMTIsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwog
ICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUs
ICdzb21lLnBhdGNoJyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxl
dGVkX2F0LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1l
LCAnb3RoZXIucGF0Y2gnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmRlbGV0
ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUs
ICdhbm90aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRl
ZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdz
b21lLnBhdGNoJyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93c1swXS5k
ZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFd
LmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
bG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3Nv
bWUucGF0Y2gnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQs
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290
LnRhci5neicpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9h
dCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fu
b3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUu
cGF0Y2gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRf
YXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5h
bWUsICdyb290LnRhci5neicpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJv
d3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTM4Miw3ICszODIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTog
dHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3Rh
RXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2Nv
bW1vbi1vcGVyYXRpb25zLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKaW5kZXggNThiNTExMzExOWJmNjEwYzQ3
ZTI4NDdmYTA3MzA3ZTFlNWFmMmY2Zi4uMTliOWMxMWZmMGNmM2M0YWYzYzkyNDNhOTAzMTk0Mjk2
M2YzNzQ1MyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKQEAgLTU2
LDcgKzU2LDcgQEAgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0VGhyb3dzKGV4cGVjdGVkRXJyb3IsIHRl
c3RGdW5jdGlvbikKICAgICAgICAgICAgIGF3YWl0IHRlc3RGdW5jdGlvbigpCiAgICAgfSBjYXRj
aChlcnJvcikgewogICAgICAgICB0aHJvd25FeGNlcHRpb24gPSB0cnVlOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3IpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3IpOwogICAgIH0KICAgICBhc3NlcnQub2sodGhyb3duRXhj
ZXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMKaW5kZXggN2I4NGIy
NGJmZTZhODgzN2VlYzc0MjdjODc2MGU0YjIwMWRkYjBjNy4uMjYyYjJmZDRlMTcyMGI2MzU2Njhi
NjZlMGQ4ZWI4NzVkMDg2MDg5ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMK
QEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgVGVtcG9yYXJ5RmlsZSB7CiAgICAgICAgIGxldCBtZWdh
Ynl0ZVN0cmluZyA9IGNoYXJhY3RlclRvRmlsbDsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCAyMDsgaSsrKQogICAgICAgICAgICAgbWVnYWJ5dGVTdHJpbmcgPSBtZWdhYnl0ZVN0cmluZyAr
IG1lZ2FieXRlU3RyaW5nOwotICAgICAgICBhc3NlcnQuZXF1YWwobWVnYWJ5dGVTdHJpbmcubGVu
Z3RoLCAxMDI0ICogMTAyNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWdhYnl0ZVN0
cmluZy5sZW5ndGgsIDEwMjQgKiAxMDI0KTsKIAogICAgICAgICBsZXQgY29udGVudCA9ICcnOwog
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemVJbk1COyBpKyspCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdn
ZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90
b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwppbmRleCA2MDRkYTczNGRhMGNlM2Iw
Y2VjMGIwOTVhZmY5MDE1Y2RkOTc3MWQ5Li40NTBmMGMzYTgzMzZmNTRkZmYyZGZmOGMwMTk2OGQ5
MDRlZWVmNjA2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVz
dHMuanMKQEAgLTExLDggKzExLDggQEAgY29uc3QgTW9ja0xvZ2dlciA9IHJlcXVpcmUoJy4vcmVz
b3VyY2VzL21vY2stbG9nZ2VyLmpzJykuTW9ja0xvZ2dlcjsKIAogZnVuY3Rpb24gYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRlbnQpCiB7Ci0gICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9kLCBtZXRob2QpOwotICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0LnVybCwgdXJsKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5tZXRob2QsIG1l
dGhvZCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOwogICAgIHJl
cXVlc3QucmVzb2x2ZShjb250ZW50KTsKIH0KIApAQCAtNDAsNDUgKzQwLDQ1IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVy
LTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0uZGF0YSwgeydpZCc6IDcwMiwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdm
b3JjZScsICdwYXJhbXMnOgotICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6IDcwMiwgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzog
J2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywg
J29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNj
aGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7J2J1
aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5n
bGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC05NywzOCArOTcsMzggQEAgZGVzY3JpYmUo
J0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRh
LnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoU2luZ2xlQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQ3LDcwICsxNDcsNzAgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRh
LCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRh
LCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Nyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVz
dElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxk
ZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTM0OSw2MiArMzQ5LDYyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJv
dEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNl0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxl
KE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxl
TmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1
bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVl
c3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRy
ZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC00MjMsNzAgKzQyMyw3MCBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhv
ZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxk
ZXItMScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjIn
LCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJl
cXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVz
b2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5t
b2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWls
ZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFp
bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTIzKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC01MDUsNTAgKzUwNSw1MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVp
bGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21p
c2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVk
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5j
Q29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIApAQCAtNTcwLDg2ICs1NzAsODYgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDIs
IGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDog
NzEwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsn
YnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAx
fSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdj
b21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
OCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEw
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC02NzEsOTEgKzY3MSw5MSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJs
LCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lk
JzogJzcxMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcxMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9
fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKCdP
SycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MTEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29s
dmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZv
ck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVp
bGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzldLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUo
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCku
c3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RT
eW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMTI0KSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2No
ZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJl
cXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEy
NCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMTI0KSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC03NzYsNjAgKzc3Niw2MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
ICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzcwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1l
b3V0KHJlc29sdmUsIDEwKSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAg
ICByZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0
c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRS
ZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0
aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVu
Z3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTg1NCwy
NyArODU0LDI3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcycgOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0
c1syXSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVy
LTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzog
J2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAg
ICB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJyksCiAgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHN5bmNQcm9taXNlOwpAQCAtODgzLDIwICs4ODMsMjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRh
LnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5
KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0Rh
dGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtOTE4LDU4ICs5MTgsNTggQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEs
IHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEs
IHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAx
NUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21p
c2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmln
V2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC05ODgsNDIgKzk4OCw0MiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVk
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xMDQ1LDIzICsxMDQ1LDIzIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CiAKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgIH0pOwpAQCAtMTA3
OSw3MSArMTA3OSw3MSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAg
bGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQg
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
CiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dp
dGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAg
ICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAg
ICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgcmV1c2UgdGhlIHJvb3RzIGZyb20gYSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCB3
aXRoIHRoZSBzYW1lIGNvbW1pdCBzZXQnLCBhc3luYyAoKSA9PiB7CkBAIC0xMTU4LDc4ICsxMTU4
LDc4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRS
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5v
dGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwogICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQu
ZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHti
dWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJl
cXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1v
Y2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmln
Z2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBkZWZlciBzY2hlZHVsaW5nIGEgYnVpbGQg
cmVxdWVzdCBpZiB0aGVyZSBpcyBhICJydW5uaW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2FtZSBj
b21taXQgc2V0LCBidXQgc2hvdWxkIHNjaGVkdWxlIHRoZSBidWlsZCByZXF1ZXN0IGlmICJydW5u
aW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2FtZSBjb21taXQgc2V0IGZhaWxzIGxhdGVyIG9uJywg
YXN5bmMgKCkgPT4gewpAQCAtMTI0NCwxMTQgKzEyNDQsMTE0IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICBs
ZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0
IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNv
bW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3Ro
ZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
e30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJl
cXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKIAogICAgICAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBC
dWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25m
aWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAg
ICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAg
ICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2ZhaWxl
ZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
c2Vjb25kU3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVp
bGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KV19
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9T
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5kYXRh
LCB7J2lkJzogOTAwLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogJzkwMCcsICdq
c29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAg
ICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiAn
aHR0cDovL2xvY2FsaG9zdDo4MTgwL2FwaS91cGxvYWRlZC1maWxlLzEwMC50eHQnLAogICAgICAg
ICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlkJzogJzkwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAgICAgICAgIH0pOwpAQCAtMTM2OCw3OCArMTM2OCw3
OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgbGV0IGFub3Ro
ZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1pdFNldCA9IGFub3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0U2V0LmVx
dWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
b2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1pdFNldCkpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA5MDAsIGJ1aWxkZXJJZDogM30p
XX0pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBh
d2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZv
clRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGlu
Z0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBhbm90aGVyQnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgbm90IHVwZGF0ZSBidWlsZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIg
dHJpZ2dlcmFibGUnLCBhc3luYyAoKSA9PiB7CkBAIC0xNTM0LDIyICsxNTM0LDIyIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOwogICAgICAgICAg
ICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuYWxsKClb
MF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1
aWxkLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2Vy
YWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRl
c3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5
VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24o
dGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9
IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVwb3Np
dG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3
ZWJraXQtc3ZuJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0u
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LXN2bicpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Vi
a2l0LCBtYWNvc10pOwogCiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsKQEAgLTE1ODQsMjIgKzE1ODQsMjIgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5s
ZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAgICAgICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxh
dGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSk7CiAgICAgICAgICAgICAg
ICAgbGV0IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24o
dGVzdCwgcGxhdGZvcm0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJs
ZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQtd2Via2l0Jyk7CiAKICAgICAgICAgICAg
ICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1l
KHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ0N1c3RvbSBSb290cycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBb
bWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHND
dXN0b21Sb290cygpLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMo
KSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFt
ZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ0N1c3RvbSBSb290cycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBb
bWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
c1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigp
OwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0gWyBdOwpAQCAtMTYx
MSwxMyArMTYxMSwxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFu
aWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdn
ZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Z3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJs
ZS5hbGwoKVswXS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtp
dCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRv
cmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29z
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCks
ICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwogICAgICAg
ICAgICAgfSkKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNjMyLDEyICsxNjMyLDEyIEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
Y29uc3QgZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUu
Z2V0QnVpbGRlck5hbWVUb0lETWFwKCk7CiAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1hcFByb21pc2UudGhlbigoYnVpbGRlck5hbWVUb0lETWFw
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
c29tZSBidWlsZGVyIl0sIDEpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJO
YW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEiXSwgMikKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIgMiJdLCAzKQotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbIm90aGVyIGJ1aWxkZXIiXSwg
NCkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21l
IHRlc3RlciJdLCA1KQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRv
SURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIl0sIDEpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVy
LTEiXSwgMikKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVU
b0lETWFwWyJzb21lIGJ1aWxkZXIgMiJdLCAzKQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbIm90aGVyIGJ1aWxkZXIiXSwgNCkKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3Rl
ciJdLCA1KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRv
SURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYpCiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMKaW5kZXgg
N2IyZTUxN2MzMWYwNTU5YTEyMTNjMTEyYzQ5ZDRhYWRiZDI2NzFkMy4uZTMxMzNjYTRkMGU2YWJl
NWJhNzViMjgxYmI3YWEwYjVjM2FjODYxYSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0
Y2hlci10ZXN0cy5qcwpAQCAtMTEwLDEzICsxMTAsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRj
aGVyJywgZnVuY3Rpb24oKSB7CiAgICAgZGVzY3JpYmUoJ09TQnVpbGRlckZldGNoZXIuX2NvbXB1
dGVPcmRlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBjYWxjdWxhdGUgdGhlIHJpZ2h0
IG9yZGVyIGZvciBhIGdpdmVuIHZhbGlkIHJldmlzaW9uJywgKCkgPT4gewogICAgICAgICAgICAg
Y29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMy
MScpLCAxNjAzMDMyMTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21w
dXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMyMTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMXonKSwgMTYwMzAzMjEyNik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMw
MzIxMjYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcign
MTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChm
ZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCdT
aWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAx
NjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21w
dXRlT3JkZXIoJzE2RDMyMXonKSwgMTYwMzAzMjEyNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAu
MTIuMyAxNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIw
MCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgYXNzZXJ0aW9uIGVy
cm9yIHdoZW4gZ2l2ZW4gYSBpbnZhbGlkIHJldmlzaW9uJywgKCkgPT4gewpAQCAtMTQxLDEzICsx
NDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9taXNlID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWls
YWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQxJ10sICdeXFwuKiQnKTsKIAogICAgICAgICAgICAg
YXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdidWlsZDEnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnBy
b2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2J1aWxkMSddKTsKIAogICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRSZXN1bHRzID0ge2FsbFJl
dmlzaW9uczogWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwgY29tbWl0c1dpdGhUZXN0
YWJpbGl0eToge319OwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZSgnMTZEMzIxXG4xNkUzMjF6XG5cbjE2RjMyMScpOwogICAgICAgICAgICAg
Y29uc3QgYnVpbGRJbmZvID0gYXdhaXQgZmV0Y2hDb21taXRzUHJvbWlzZTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoZXhwZWN0ZWRSZXN1bHRzLCBidWlsZEluZm8pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChleHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgdGhlIGNvbW1hbmQgb3V0cHV0
IGFzIEpTT04gZm9ybWF0JywgYXN5bmMgKCkgPT4gewpAQCAtMTU3LDEzICsxNTcsMTMgQEAgZGVz
Y3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBm
ZXRjaENvbW1pdHNQcm9taXNlID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhb
J2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlv
blByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnBy
b2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vz
cy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdXRwdXRPYmplY3QgPSB7YWxsUmV2aXNpb25zOiBbIjE2RDMyMSIsICIxNkUz
MjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0aFRlc3RhYmlsaXR5OiB7IjE2RDMyMSI6ICJQYW5p
YyJ9fTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkob3V0cHV0T2JqZWN0KSk7CiAgICAgICAgICAgICBjb25zdCBi
dWlsZEluZm8gPSBhd2FpdCBmZXRjaENvbW1pdHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdXRwdXRPYmplY3QsIGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG91dHB1dE9iamVjdCwgYnVpbGRJbmZvKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTE3Myw5ICsxNzMsOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwog
ICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwg
bnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRz
ID0gZmV0Y2hlci5fY29tbWl0c1dpdGhpblJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZG
MzIxIl0sICJPU1giLCAxNjA0MDAwMDAwLCAxNjA2MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlz
aW9uOiAnMTZFMzIxeid9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1sx
XSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYz
MjEnfSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3Np
dG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBvc2l0b3J5
OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAsIHJldmlzaW9uOiAnMTZGMzIxJ30pOwogCiAgICAg
ICAgIH0pOwogCkBAIC0xODMsOCArMTgzLDggQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsK
ICAgICAgICAgICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGws
IG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0
cyA9IGZldGNoZXIuX2NvbW1pdHNXaXRoaW5SYW5nZShbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2
RjMyMSJdLCAiT1NYIiwgMTYwNDAwMDAwMCwgMTYwNTAwMDAwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZp
c2lvbjogJzE2RTMyMXonfSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRz
WzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2
RTMyMXonfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTYsMjQgKzE5NiwyNCBAQCBk
ZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0
IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxk
KFtvc3hDb21taXQsIGFub3RoZXJPU1hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbiddKTsKIAogICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAn
U2llcnJhMTZEMzInXSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAg
ICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNz
Lmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzMiddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RTMyJ10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBhZGRvd25lZENvbW1pdFByb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
c1swXVsncmVwb3NpdG9yeSddLCBvc3hDb21taXRbJ3JlcG9zaXRvcnknXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMF1bJ3JldmlzaW9uJ10sIG9zeENvbW1pdFsncmV2
aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdWydv
d25lZENvbW1pdHMnXSwgb3duZWRDb21taXRXaXRoV2ViS2l0KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0c1sxXVsncmVwb3NpdG9yeSddLCBhbm90aGVyT1NYQ29tbWl0Wydy
ZXBvc2l0b3J5J10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzFdWydy
ZXZpc2lvbiddLCBhbm90aGVyT1NYQ29tbWl0WydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMV1bJ293bmVkQ29tbWl0cyddLCBhbm90aGVyb3du
ZWRDb21taXRXaXRoV2ViS2l0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRzWzBdWydyZXBvc2l0b3J5J10sIG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4
Q29tbWl0WydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3VsdHNbMF1bJ293bmVkQ29tbWl0cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzFdWydyZXBvc2l0b3J5
J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9zaXRvcnknXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ3JldmlzaW9uJ10sIGFub3RoZXJPU1hDb21taXRb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
dWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMjQsMTUgKzIyNCwxNSBAQCBkZXNj
cmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFk
ZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtv
c3hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKQogCiAgICAgICAg
ICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAn
U2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tT
dWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKICAgICAg
ICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZWplY3QoJ0ZhaWxlZCBn
ZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVk
Q29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgICAgICB9LCAoZXJy
b3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQp
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0LCAnRmFpbGVk
IGdldHRpbmcgb3duZWQtY29tbWl0Jyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvcl9vdXRwdXQsICdGYWlsZWQgZ2V0dGluZyBvd25lZC1jb21taXQnKTsKICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTI0NSwx
NSArMjQ1LDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgY29uc3QgYWRkb3duZWRDb21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRD
b21taXRzRm9yQnVpbGQoW29zeENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJ10pCiAKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RDMyJ10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBd
LnJlc29sdmUoJ3siV2ViS2l0Ijp7IlJhbmRvbUtleSI6ICJSYW5kb21WYWx1ZSJ9fScpOwogCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUsICdBc3NlcnRpb25FcnJvciBbRVJSX0FTU0VSVElP
Tl0nKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1
dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3InKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KQpAQCAtMjkwLDQwICsyOTAsNDAgQEAgZGVzY3JpYmUoJ09TQnVp
bGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RDY4Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSkpLCAxNjAzMDA2ODAwKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
d2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRp
b24oKTsKICAgICAgICAgICAgICAgICBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRj
aGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdc
blxuU2llcnJhMTZENjhcblNpZXJyYTE2RDY5XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zvcics
ICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4
IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsK
ICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJc
blNpZXJyYTE2RTMzXG5TaWVycmExNkUzM2hcblNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVz
ZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzNCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTMzMSwyOSArMzMxLDI5IEBAIGRlc2NyaWJl
KCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVw
b3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVC
dWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvcklu
dm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmEx
NkQ2OFxuU2llcnJhMTZENjlcbicpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZE
NjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJhMTZF
MzNcblNpZXJyYTE2RTMzaFxuU2llcnJhMTZFMzQnKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktp
dCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENv
bW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0zNzAsMzQgKzM3MCwzNCBAQCBkZXNjcmliZSgn
T1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1p
dDE2RTM0ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlb
MF1bJ293bmVyJ10sIDEwKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRv
cnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChv
c3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10s
IDE2MDQwMDMzMDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwg
MTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZF
MzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZF
MzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29t
bWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAg
fSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMw
MDY5MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJv
bT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQw
MDM0MDApOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC00MjMsNDAgKzQyMyw0
MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMw
MDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5
OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkUzM2cnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTMzZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9t
aXNlID0gZmV0Y2hlci5fZmV0Y2hBdmFpbGFibGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0u
cmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAg
IGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2Vi
S2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5z
dHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwog
ICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5v
dGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewpAQCAtNDY0LDI5ICs0NjQsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRj
aGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZmV0Y2hSZXBvcnRBbmRVcGRhdGVC
dWlsZHNQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9y
U2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFu
ZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2
RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAg
ICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhl
cm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3Ry
aW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCdd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2ll
cnJhMTZFMzQnXSk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXBvcnRBbmRVcGRh
dGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01MDMsMzQg
KzUwMywzNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAg
ICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3Np
dG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAz
MDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZE
NjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5
MDApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0
MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQw
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsK
IAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5
OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZENjknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RDY5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
T1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
LCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC01NTUsNDEgKzU1NSw0MSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5j
dGlvbigpIHsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYw
MzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAw
KTsKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0x
NjA0MDk5OTAwJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAg
ICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNo
UmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vz
cy53YWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBd
LnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAg
IGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRX
aXRoV2ViS2l0KSk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICBh
d2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVk
Q29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgYXdhaXQgIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29y
ZSkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0
J10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RTM0J10pOwogCiAgICAgICAgICAgICBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21p
c2U7CiAKQEAgLTYwMSw0MyArNjAxLDQzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gYXdhaXQgZGIu
c2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZFMzNoJ30pOwogICAg
ICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21t
aXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkUzNCd9KTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OC5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXIn
XSwgMTYwMzAwNjgwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhb
MF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5pYyIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddKSwg
MTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZE
NjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5pYyIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBD
UFUiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAi
U3BpbiBDUFUiKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMx
WzBdWydvcmRlciddLCAxNjA0MDAzMTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzMVswXVsndGVzdGFiaWxpdHknXSwgIldlYktpdCBjcmFzaGVzIik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzEubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9yeSdd
LCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0
MTZFMzFbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkUzMVswXVsndGVzdGFiaWxpdHknXSwgIldlYktpdCBjcmFzaGVz
Iik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRv
cnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsn
b3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0
MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBd
WydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQw
MDM0MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAw
MDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAg
ICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5
OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBjb21taXRzIHdpdGhvdXQgb3duZWQtY29tbWl0cyBp
ZiAib3duZWRDb21taXRDb21tYW5kIiBpcyBub3Qgc3BlY2lmaWVkIGluIGNvbmZpZycsIGFzeW5j
ICgpID0+IHsKQEAgLTY1OSwyNSArNjU5LDI1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcics
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVw
b3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAw
MzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9m
cm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAw
MzMwNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
NDAwMzMwNyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9
IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBm
ZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRl
QnVpbGRzKCk7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcydd
KTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVz
dWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVz
ZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1sw
XS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAg
ICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTY5NCwz
MCArNjk0LDMwIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAg
IGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5
J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21t
aXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3Np
dG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4
Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3Np
dG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4
Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVz
dWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
T1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZENjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11b
MF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVw
b3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwg
MTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjA0MDAzNDAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXBvcnQg
Y29tbWl0cyB3aXRoaW4gc3BlY2lmaWVkIHJldmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpA
QCAtNzM4LDI1ICs3MzgsMjUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzog
MTAsICdyZXZpc2lvbic6ICdTaWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVw
b3J0ZWQnOiB0cnVlfSldKTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMw
MDY4MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
MzAwNjgwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAw
MDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsK
ICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9j
ZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFu
ZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAK
ICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4
eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2ll
cnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwg
b3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUo
SlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0
ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAtNzczLDMwICs3NzMsMzAg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBj
b25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jl
cG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBd
WydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUz
M2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUz
NFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
LCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9t
PTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0
MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHVwZGF0ZSBjb21taXRzIHdp
dGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFuZ2UnLCBhc3luYyAoKSA9PiB7CkBAIC04MTcsMjkg
KzgxNywyOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3Jldmlz
aW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6IHRy
dWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAz
MDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsK
IAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2
MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAg
ICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoQXZhaWxhYmxlQnVpbGRzUHJv
bWlzZSA9IGZldGNoZXIuX2ZldGNoQXZhaWxhYmxlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3
YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAg
ICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxk
cyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
cmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hB
dmFpbGFibGVCdWlsZHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5j
b21taXRzVG9VcGRhdGUubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHQuY29tbWl0c1RvVXBkYXRlLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgdXNlICJsYXN0LXJlcG9ydGVkIiBvcmRlciArIDEgYXMgIm1pbk9yZGVy
IicsIGFzeW5jICgpID0+IHsKQEAgLTg1MywxNSArODUzLDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxk
RmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmExNkQxMDAnLCAnb3Jk
ZXInOiAxNjAzMDEwMDAwLCAncmVwb3J0ZWQnOiB0cnVlfSk7CiAKICAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkQxMDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDAwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHdhaXRG
b3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7
CiAgICAgICAgICAgICBjb25zdCBmZXRjaEFuZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNo
UmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2Nh
dGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNP
Ti5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0g
YXdhaXQgZmV0Y2hBbmRSZXBvcnRQcm9taXNlOwpAQCAtODc2LDE5ICs4NzYsMTkgQEAgZGVzY3Jp
YmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxNkQ2OSA9IHJlc3VsdHNbMl07CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQx
MDBhID0gcmVzdWx0c1szXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3Np
dG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDY5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZENjkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDEwMGEubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQx
MDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQxMDBhWzBdWydvcmRlciddLCAxNjAzMDEwMDAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDBhLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwYVswXVsncmVwb3NpdG9yeSddLCAxMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAw
YVswXVsnb3JkZXInXSksIDE2MDMwMTAwMDEpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDBh
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMTAwMDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDBhJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10pLCAxNjAzMDEwMDAxKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1
c2UgbWluUmV2aXNpb24gaW4gdGhlIGNvbmZpZyBpZiB0aGVyZSBpcyBubyBjb21taXQnLCBhc3lu
YyAoKSA9PiB7CkBAIC05MDEsMTMgKzkwMSwxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXIn
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVz
JywgeydpZCc6IDEwLCAnbmFtZSc6ICdPU1gnfSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQg
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gv
bGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKIAogICAg
ICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mu
d2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBk
YXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAg
ICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWls
ZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21p
c2U7CkBAIC05MjQsMjMgKzkyNCwyMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMCA9IHJlc3VsdHNbM107
CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDEgPSByZXN1bHRzWzRdOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10sIDE2
MDMwMTAwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEw
MC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RDEwMFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAwWzBdWydvcmRlciddKSwgMTYwMzAxMDAwMCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDEubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDFbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXIn
XSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZEMTAxLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQxMDFbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAw
KTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRv
PTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMTAxMDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQxMDEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMTAxMDApOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHN0b3AgcmVwb3J0aW5nIGlmIGFueSBjdXN0b20g
Y29tbWFuZCBmYWlscycsICgpID0+IHsKQEAgLTk2Myw2MCArOTYzLDYwIEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5
OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZENjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
LCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHdh
aXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9u
KCk7CiAgICAgICAgICAgICAgICAgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRj
aFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9y
SW52b2NhdGlvblByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4
IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdT
aWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhX
ZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRX
YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4
eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zvcics
ICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVqZWN0KCdDb21tYW5kIGZhaWxlZCcp
OwogICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaEFuZFJlcG9ydFByb21pc2UudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICAgICAgfSwgKGVycm9yX291dHB1dCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQoZXJyb3Jfb3V0cHV0KTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yX291dHB1dCwgJ0NvbW1hbmQgZmFpbGVkJyk7CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxl
ZCcpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAw
Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmEx
NkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
NjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gv
bGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAx
NjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11b
MF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQog
ICAgIH0pCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24t
dGVzdHMuanMKaW5kZXggNzFhMWQ1MzllYjYyZmVmMmFlYjdjZTBjMTk2NDBiMTY0YzJmY2YxMC4u
NjlhOTFmNWU2MTEzMDZlYWRiOGYyMTI3Yjg4ZDA1ZGVhYjk1YjEwYiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWlu
dGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTQ1LDgg
KzE0NSw4IEBAIGNvbnN0IGNvbmZpZ1dpdGhUd29UZXN0ZXJzID0gewogCiBmdW5jdGlvbiBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0LCBtZXRob2QsIHVybCwgY29udGVudFRvUmVzb2x2
ZSkKIHsKLSAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmws
IHVybCk7CiAgICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnRUb1Jlc29sdmUpOwogfQogCkBAIC0y
NjUsMjMgKzI2NSwyMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
SWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVz
dElkOiBzZWNvbmRUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0pKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVu
bmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVz
dGVyJyksIGJ1aWxkUmVxdWVzdElkOiBmaXJzdFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJywgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdhbm90aGVyIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdi
dWlsZHMnOiBbCiAgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEo
e2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IHNlY29uZFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSksCkBAIC0yOTIs
NDUgKzI5Miw0NSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwogCiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayhhbm90aGVyVGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzNiArMzQ0LDM2
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGNv
bnN0IHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgbGV0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAg
IGxldCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBsZXQgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBsZXQgb3RoZXJD
b21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtMzgxLDMyICszODEsMzIgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA3KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Nl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdP
SycpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAn
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAg
ICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9h
cGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQt
d2snOiB0cnVlLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLWFiLWJ1aWxkcyd9fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyJyksCiAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
ZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwg
YnVpbGROdW1iZXI6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQnVpbGRp
bmcgV2ViS2l0J30pKTsKQEAgLTQxNSwzOSArNDE1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0J1aWxkaW5nIFdlYktpdCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRj
aCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0
KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CkBAIC00NTYsMjYgKzQ1NiwyNiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsK
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWls
ZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJlciwgc3Rh
dHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
OSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxk
ZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246
ICdDb21waWxpbmcgV1RGJ30pKTsKQEAgLTQ4NCw4MCArNDg0LDgwIEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0Nv
bXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAg
IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwg
J3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBv
dGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgIGF3YWl0
IHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIGZpcnN0QnVpbGROdW1iZXIpOworICAgICAg
ICBhd2FpdCB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgZmlyc3RCdWls
ZE51bWJlcik7CiAKICAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCAnQ29tcGlsaW5nIFdURicpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CiAgICAgICAgIGxldCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC01NjYsMzIgKzU2NiwzMiBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30p
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAg
ICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZv
ck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0
QnVpbGROdW1iZXJ9KSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiks
IHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNr
Ym94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsKICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7
CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAnYnVpbGRzJzog
WwpAQCAtNjAzLDgzICs2MDMsODMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1
aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAg
ICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVt
YmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwotICAgICAgICBhd2Fp
dCB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7CisgICAgICAgIGF3YWl0
IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAKICAg
ICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RC
dWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAg
ICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWls
ZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtp
dFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldl
YmtpdFJvb3RdKTsKICAgICB9KTsKIApAQCAtNjk0LDM0ICs2OTQsMzQgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkg
PT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3Qg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRT
ZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJs
ZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC03
MjksMzIgKzcyOSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcx
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAg
ICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2Fw
aS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13
ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJ319KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9
KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
Myk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAg
ICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZv
ck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTc2Myw3NiAr
NzYzLDc2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9
IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVl
c3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1
aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91
cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9
IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTg0MSwzMiArODQxLDMy
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sy
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJ
REZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2sn
OiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVl
fX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWls
ZHMnOiBbCkBAIC04NzgsODAgKzg3OCw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgp
LCAxMjQpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWls
ZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAg
ICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
d2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtOTY3LDM0ICs5NjcsMzQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAg
dGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAg
ICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xMDAyLDMyICsxMDAyLDMyIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6
ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUv
MS5kYXQnKSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3Jj
ZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAn
cGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwg
YnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDog
MX0pKTsKQEAgLTEwMzYsNzYgKzEwMzYsNzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90
aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1
cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVw
bG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmls
ZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21t
aXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwpAQCAtMTExNCwzMiArMTExNCwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1
ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywg
J09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsn
aWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoK
ICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzIn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxk
LXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxk
cyc6IFsKQEAgLTExNTEsODAgKzExNTEsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5u
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQo
KSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0g
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0
KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAg
ICB9KTsKQEAgLTEyNDEsMjIgKzEyNDEsMjIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAg
ICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1
aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoMSwgNDUpOwpA
QCAtMTI2NSwzOSArMTI2NSwzOSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogICAgICAgICAgICAgY29uc3Qgcm9vdHMgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCku
YWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm9vdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb290cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgZmlyc3RSb290ID0gcm9vdHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJvb3RzWzBdLmZpbGVuYW1lKCksICdyb290NDUuZGF0Jyk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJSb290
cyA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlclJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyUm9vdHNbMF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0Ni5kYXQnKTsKICAg
ICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAg
ICdidWlsZHMnOiBbCkBAIC0xMzA3LDEzICsxMzA3LDEzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLXRl
c3RzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRh
dGEsIHsnaWQnOiAnMycsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKICAgICAgICAgICAgICAgICB7J3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYy
MicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzMnLCdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10
ZXN0cycsICdyb290cyc6IEpTT04uc3RyaW5naWZ5KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwgWwog
ICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0
YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVlc3RJZDogM30pLAog
ICAgICAgICAgICAgXSk7CkBAIC0xMzIxLDcgKzEzMjEsNyBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzQzLDM2ICsxMzQzLDM2IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0Lmlk
KCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNl
LmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyld
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMn
OiBbCkBAIC0xMzgzLDEzICsxMzgzLDEzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Nl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMn
OiBbCkBAIC0xNDAxLDI0ICsxNDAxLDI0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRl
c3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogCiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAx
KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEwMDIpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTAwMikpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDMyLDQ5ICsxNDMyLDQ5IEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsK
ICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5p
ZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3QuaWQoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1l
KCdvdGhlciBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogMzEyfSkpOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA5KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJywgMiksCkBAIC0xNDgzLDI4ICsxNDgzLDI4IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcWV1c3RzID0g
dGVzdEdyb3Vwc1swXS5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXFldXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3Rz
WzBdLmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBd
LnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ290aGVyIGJ1aWxk
ZXInLCAzMTIpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFl
dXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdvdGhlciBidWlsZGVyJywgMzEyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXFldXN0c1swXS5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXFldXN0c1sxXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cWV1c3RzWzFdLmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1
c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFl
dXN0c1sxXS5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBhc3NlcnRU
ZXN0QnVpbGRIYXNGYWlsZWQocmVxdWVzdCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQoIXJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgYXNzZXJ0VGVzdEJ1aWxkSGFzRmFpbGVkKGJ1aWxkUmVxZXVz
dHNbMl0pOwpAQCAtMTUyNCwzNiArMTUyNCwzNiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQo
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7CkBAIC0xNTYxLDMyICsxNTYxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFi
LWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1j
b21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3Np
dG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAg
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVy
JyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtMTU5NSw4NSArMTU5NSw4NSBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0
IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIz
KS50aGVuKCgpID0+IHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMywgW3tvd25lclJl
cG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwg
JzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMpLnRoZW4oKCkgPT4gdXBsb2FkUm9v
dChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdX
ZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBU
MDI6NTQ6MDkuNjY2JykpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0g
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
d2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CkBAIC0xNjgyLDMyICsxNjgyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicp
LCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1h
Yi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNb
Nl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQt
Y29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9z
aXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzog
WwpAQCAtMTcxOSw5NSArMTcxOSw5NSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJl
cG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJv
b3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAg
ICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRK
U0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVy
biB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCkudGhlbigoKSA9PiB1cGxv
YWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdX
ZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBU
MDI6NTQ6MDkuNjY2JykpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQo
b3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCkudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNl
SW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2Vi
S2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAy
OjU0OjA5LjY2NicpKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndl
YmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
b3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAg
IGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJKU0NSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
b3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVySlNDUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJv
b3QsIG90aGVySlNDUm9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE4MjQsMzYgKzE4
MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90
aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtMTg2MSwzMiAr
MTg2MSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVy
JyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcs
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3si
cmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIs
Im93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0p
KTsKQEAgLTE4OTUsMTI2ICsxODk1LDEyNiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1
cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVy
biB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5v
d25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBv
d25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDku
NjY2Jyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVl
c3QuaWQoKSksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRv
cnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7
CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAg
ICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBq
c2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KChvd25lZEpTQykpOwogICAgICAg
ICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
b3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMjAy
MywzMiArMjAyMywzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9
KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMics
ICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAg
ICAgICAgICB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQi
Olt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENv
cmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTIwNjAsMTQxICsyMDYw
LDE0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5v
d25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jv
b3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVy
QnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChw
YXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAg
IGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1Jl
cG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpz
Y1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9v
dCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0
KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKLSAgICAgICAgICAgIHJl
dHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCwgW3tvd25lclJlcG9z
aXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIw
MTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChw
YXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTog
J1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0x
MFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
LndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9
IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0
KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJKU0NSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZp
bGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtp
dFJvb3QsIG90aGVySlNDUm9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCmluZGV4
IDMwYmQyNWYwYWNkMDE3ZTQ1ZjhhODA4MWZjZWUxYjhkMDk3ZjY4ODEuLjUyY2IxZWMyNDNiOWYx
NjVkZjdkYzdkNjkwZTQwN2EwODA5ZWU4NGEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwpAQCAtMTIsNyArMTIsNyBAQCBj
bGFzcyBCdWlsZGJvdEJ1aWxkRW50cnkgewogCiAgICAgaW5pdGlhbGl6ZShzeW5jZXIsIHJhd0Rh
dGEpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLmJ1aWxkZXJJRCgpLCByYXdE
YXRhWydidWlsZGVyaWQnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChz
eW5jZXIuYnVpbGRlcklEKCkpLCBwYXJzZUludChyYXdEYXRhWydidWlsZGVyaWQnXSkpOwogCiAg
ICAgICAgIHRoaXMuX3N5bmNlciA9IHN5bmNlcjsKICAgICAgICAgdGhpcy5fYnVpbGRib3RCdWls
ZFJlcXVlc3RJZCA9IHJhd0RhdGFbJ2J1aWxkcmVxdWVzdGlkJ107CkBAIC00MSw3ICs0MSw3IEBA
IGNsYXNzIEJ1aWxkYm90QnVpbGRFbnRyeSB7CiAKICAgICBidWlsZFJlcXVlc3RTdGF0dXNJZlVw
ZGF0ZUlzTmVlZGVkKHJlcXVlc3QpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dC5pZCgpLCB0aGlzLl9idWlsZFJlcXVlc3RJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0LmlkKCksIHRoaXMuX2J1aWxkUmVxdWVzdElkKTsKICAgICAgICAgaWYgKCFyZXF1
ZXN0KQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIGlmICh0aGlzLmlzUGVuZGlu
ZygpKSB7CkBAIC0xMTcsNyArMTE3LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAg
ICBsZXQgcHJvcGVydGllcyA9IHRoaXMuX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QobmV3UmVx
dWVzdCwgcmVxdWVzdHNJbkdyb3VwKTsKIAogICAgICAgICBhc3NlcnQocHJvcGVydGllc1snZm9y
Y2VzY2hlZHVsZXInXSwgYGZvcmNlc2NoZWR1bGVyIHdhcyBub3Qgc3BlY2lmaWVkIGluIGJ1aWxk
Ym90IHByb3BlcnRpZXMgZm9yIGJ1aWxkIHJlcXVlc3QgJHtuZXdSZXF1ZXN0LmlkKCl9IG9uIHBs
YXRmb3JtICIke25ld1JlcXVlc3QucGxhdGZvcm0oKS5uYW1lKCl9IiBmb3IgYnVpbGRlciAiJHt0
aGlzLmJ1aWxkZXJOYW1lKCl9ImApOwotICAgICAgICBhc3NlcnQuZXF1YWwoIXRoaXMuX3NsYXZl
UHJvcGVydHlOYW1lLCAhc2xhdmVOYW1lKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCF0
aGlzLl9zbGF2ZVByb3BlcnR5TmFtZSwgIXNsYXZlTmFtZSk7CiAgICAgICAgIGlmICh0aGlzLl9z
bGF2ZVByb3BlcnR5TmFtZSkKICAgICAgICAgICAgIHByb3BlcnRpZXNbdGhpcy5fc2xhdmVQcm9w
ZXJ0eU5hbWVdID0gc2xhdmVOYW1lOwogCkBAIC0zMzcsNyArMzM3LDcgQEAgY2xhc3MgQnVpbGRi
b3RTeW5jZXIgewogCiAgICAgICAgIGFzc2VydChjb25maWcuYnVpbGRSZXF1ZXN0QXJndW1lbnQs
ICdidWlsZFJlcXVlc3RBcmd1bWVudCBtdXN0IHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHByb3Bl
cnR5IHVzZWQgdG8gc3RvcmUgdGhlIGJ1aWxkIHJlcXVlc3QgSUQnKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwodHlwZW9mKGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzKSwgJ29iamVjdCcsICdyZXBv
c2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFtZSB0byBp
dHMgZGVmaW5pdGlvbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzKSwgJ29iamVjdCcsICdyZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3Bl
Y2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFtZSB0byBpdHMgZGVmaW5pdGlvbicpOwogCiAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cHMgPSB7fTsKICAgICAgICAgZm9yIChjb25zdCBu
YW1lIGluIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzKQpAQCAtNDE2LDcgKzQxNiw3IEBAIGNsYXNz
IEJ1aWxkYm90U3luY2VyIHsKIAogICAgIHN0YXRpYyBfcGFyc2VSZXBvc2l0b3J5R3JvdXAobmFt
ZSwgZ3JvdXApCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnJlcG9z
aXRvcmllcyksICdvYmplY3QnLAorICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKGdy
b3VwLnJlcG9zaXRvcmllcyksICdvYmplY3QnLAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3Jv
dXAgIiR7bmFtZX0iIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmll
c2ApOwogICAgICAgICBhc3NlcnQoISgnZGVzY3JpcHRpb24nIGluIGdyb3VwKSB8fCB0eXBlb2Yo
Z3JvdXBbJ2Rlc2NyaXB0aW9uJ10pID09ICdzdHJpbmcnLAogICAgICAgICAgICAgYFJlcG9zaXRv
cnkgZ3JvdXAgIiR7bmFtZX0iIGhhdmUgYW4gaW52YWxpZCBkZXNjcmlwdGlvbmApOwpAQCAtNDMx
LDcgKzQzMSw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgIGNvbnN0IHJl
cG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZShyZXBvc2l0b3J5TmFtZSk7
CiAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeSwgYCIke3JlcG9zaXRvcnlOYW1lfSIgaXMg
bm90IGEgdmFsaWQgcmVwb3NpdG9yeSBuYW1lYCk7CiAgICAgICAgICAgICByZXBvc2l0b3J5QnlO
YW1lW3JlcG9zaXRvcnlOYW1lXSA9IHJlcG9zaXRvcnk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodHlwZW9mKG9wdGlvbnMpLCAnb2JqZWN0JywgYCIke3JlcG9zaXRvcnlOYW1lfSIgc3BlY2lm
aWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWVgKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0eXBlb2Yob3B0aW9ucyksICdvYmplY3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVj
aWZpZXMgYSBub24tZGljdGlvbmFyeSB2YWx1ZWApOwogICAgICAgICAgICAgYXNzZXJ0KFt1bmRl
ZmluZWQsIHRydWUsIGZhbHNlXS5pbmNsdWRlcyhvcHRpb25zLmFjY2VwdHNQYXRjaCksCiAgICAg
ICAgICAgICAgICAgYCIke3JlcG9zaXRvcnlOYW1lfSIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRz
UGF0Y2ggdmFsdWU6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucy5hY2NlcHRzUGF0Y2gpfWApOwog
ICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWNjZXB0c1BhdGNoKQpAQCAtNDQxLDcgKzQ0MSw3IEBA
IGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgfQogICAgICAgICBhc3NlcnQocGFyc2Vk
UmVwb3NpdG9yeUxpc3QubGVuZ3RoLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBu
b3Qgc3BlY2lmeSBhbnkgcmVwb3NpdG9yeWApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBl
b2YoZ3JvdXAudGVzdFByb3BlcnRpZXMpLCAnb2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7
bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQg
dHlwZWApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKGdyb3VwLnRlc3RQcm9w
ZXJ0aWVzKSwgJ29iamVjdCcsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZpZXMg
dGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlkIHR5cGVgKTsKIAogICAgICAg
ICBjb25zdCByZXNvbHZlUmVwb3NpdG9yeSA9IChyZXBvc2l0b3J5TmFtZSkgPT4gewogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5hbWVd
OwpAQCAtNDcwLDcgKzQ3MCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgfSk7
CiAgICAgICAgIGFzc2VydCghZ3JvdXAuYWNjZXB0c1Jvb3RzID09ICFzcGVjaWZpZXNSb290cywK
ICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBhY2NlcHRzIHJvb3RzIGJ1
dCBkb2VzIG5vdCBzcGVjaWZ5IHJvb3RzIGluIHRlc3RQcm9wZXJ0aWVzYCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChwYXJzZWRSZXBvc2l0b3J5TGlzdC5sZW5ndGgsIHRlc3RSZXBvc2l0b3JpZXMu
c2l6ZSwKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZFJlcG9zaXRvcnlMaXN0Lmxl
bmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXplLAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3Jv
dXAgIiR7bmFtZX0iIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVk
IGluIHRlc3RpbmdgKTsKIAogICAgICAgICBsZXQgYnVpbGRQcm9wZXJ0aWVzVGVtcGxhdGUgPSBu
dWxsOwpAQCAtNTA0LDcgKzUwNCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAg
ICAgIGFzc2VydChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNpemUgfHwgaGFzT3duZWRS
ZXZpc2lvbnMsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZpZXMgdGhlIHByb3Bl
cnRpZXMgZm9yIGJ1aWxkaW5nIGJ1dCBkb2VzIG5vdCBhY2NlcHQgYW55IHBhdGNoZXMgb3IgbmVl
ZCB0byBidWlsZCBvd25lZCBjb21wb25lbnRzYCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IHJl
cG9zaXRvcnkgb2YgcGF0Y2hSZXBvc2l0b3JpZXMpCiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJl
dmlzaW9uUmVwb3NpdG9yaWVzLmhhcyhyZXBvc2l0b3J5KSwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7
bmFtZX0iIHNwZWNpZmllcyBhIHBhdGNoIGZvciAiJHtyZXBvc2l0b3J5Lm5hbWUoKX0iIGJ1dCBk
b2VzIG5vdCBzcGVjaWZ5IGEgcmV2aXNpb25gKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChw
YXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNpemUsIHBhdGNoUmVwb3NpdG9yaWVzLnNpemUs
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5
TGlzdC5zaXplLCBwYXRjaFJlcG9zaXRvcmllcy5zaXplLAogICAgICAgICAgICAgICAgIGBSZXBv
c2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9y
aWVzIGxpc3RlZCBpbiBidWlsZGluZyBhIHBhdGNoYCk7CiAgICAgICAgIH0KIApAQCAtNTY0LDEy
ICs1NjQsMTIgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCiAgICAgICAgICAgICBzd2l0Y2gg
KG5hbWUpIHsKICAgICAgICAgICAgIGNhc2UgJ3Byb3BlcnRpZXMnOiAvLyBGYWxsdGhyb3VnaAot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YodmFsdWUpLCAnb2JqZWN0JywgJ0J1
aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeScpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YodmFsdWUpLCAnb2JqZWN0JywgJ0J1aWxkIHByb3Bl
cnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeScpOwogICAgICAgICAgICAgICAgIGlmICghY29u
ZmlnWydwcm9wZXJ0aWVzJ10pCiAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1sncHJvcGVydGll
cyddID0ge307CiAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGNvbmZpZ1sncHJv
cGVydGllcyddOwogICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB2YWx1ZSkgewot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0
cmluZycsIGBCdWlsZCBwcm9wZXJ0aWVzICIke25hbWV9IiBzcGVjaWZpZXMgYSBub24tc3RyaW5n
IHZhbHVlIG9mIHR5cGUgIiR7dHlwZW9mKHZhbHVlKX0iYCk7CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YodmFsdWVbbmFtZV0pLCAnc3RyaW5nJywgYEJ1aWxk
IHByb3BlcnRpZXMgIiR7bmFtZX0iIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlw
ZSAiJHt0eXBlb2YodmFsdWUpfSJgKTsKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllc1tu
YW1lXSA9IHZhbHVlW25hbWVdOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTU4MCw3ICs1ODAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAg
ICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWUuc2xpY2UoKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgJ2J1aWxkZXInOiAvLyBGYWxsdGhyb3VnaAotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YodmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0g
c2hvdWxkIGJlIG9mIHN0cmluZyB0eXBlYCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQgYmUgb2Ygc3Ry
aW5nIHR5cGVgKTsKICAgICAgICAgICAgICAgICBjb25maWdbbmFtZV0gPSB2YWx1ZTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ2J1aWxkZXJJRCc6CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dl
cmFibGUuanMKaW5kZXggNDBkZTBhNTY5N2M4N2NlYjA5ODM1ODcyZDdlMmUwODUzMzliYjNjMy4u
MjljMWU1MDhjZmVkNjU2NGM1YzIzOWYwNjA1OTg0ZThlNDE5NmYzMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJs
ZS5qcwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYXNzZXJ0
KHRyaWdnZXJhYmxlIGluc3RhbmNlb2YgVHJpZ2dlcmFibGUsICdNdXN0IHNwZWNpZnkgYSB2YWxp
ZCB0cmlnZ2VyYWJsZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5h
bWUoKSwgdGhpcy5fbmFtZSwgJ011c3Qgc3BlY2lmeSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBz
eW5jZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2VyYWJsZS5uYW1l
KCksIHRoaXMuX25hbWUsICdNdXN0IHNwZWNpZnkgdGhlIHRyaWdnZXJhYmxlIG9mIHRoaXMgc3lu
Y2VyJyk7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0LnJlcG9z
aXRvcnlHcm91cCgpOwogICAgICAgICAgICAgaWYgKCFyZXBvc2l0b3J5R3JvdXApIHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoYEJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0Lmlk
KCl9IGRvZXMgbm90IHNwZWNpZnkgYSByZXBvc2l0b3J5IGdyb3VwLiBTdWNoIGEgYnVpbGQgcmVx
dWVzdCBpcyBubyBsb25nZXIgc3VwcG9ydGVkLmApOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcwppbmRleCBhY2YwNDlkMzg4
ZmM2NzdhZmEwODQ4ODgwNjE1ZGE2MWNjMWNlZTM5Li4yNjQyNTUyZGVjZjMwMWZhYTU0MDQ0NDdk
OGQ5M2RkNDBjNGE3MDU4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvbWFya3VwLWNvbXBvbmVudC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcwpAQCAtMSw0ICsxLDYgQEAKKyd1c2Ugc3RyaWN0
JzsKIAorY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CiBjb25zdCBNYXJrdXBEb2N1
bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1bWVudCB7CiAgICAgY29uc3RydWN0b3IoKQogICAg
IHsKQEAgLTI3LDcgKzI5LDcgQEAgY29uc3QgTWFya3VwRG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFy
a3VwRG9jdW1lbnQgewogCiAgICAgX2lkRm9yQ2xvbmUob3JpZ2luYWwpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChvcmlnaW5hbCBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOworICAgICAg
ICBhc3NlcnQub2sob3JpZ2luYWwgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKICAgICAgICAgcmV0
dXJuIHRoaXMuX25vZGVJZCsrOwogICAgIH0KIApAQCAtMzgsNyArNDAsNyBAQCBjb25zdCBNYXJr
dXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1bWVudCB7CiAKICAgICBtYXJrdXAobm9k
ZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG5vZGUgaW5zdGFuY2VvZiBNYXJrdXBO
b2RlKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG5vZGUgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKICAg
ICAgICAgcmV0dXJuIG5vZGUuX21hcmt1cCgpOwogICAgIH0KIApAQCAtNTYsNyArNTgsNyBAQCBj
b25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1bWVudCB7CiBjbGFzcyBN
YXJrdXBOb2RlIHsKICAgICBjb25zdHJ1Y3RvcihpZCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHR5cGVvZihpZCkgPT0gJ251bWJlcicpOworICAgICAgICBhc3NlcnQub2sodHlwZW9m
KGlkKSA9PSAnbnVtYmVyJyk7CiAgICAgICAgIHRoaXMuX2lkID0gaWQ7CiAgICAgICAgIHRoaXMu
X3BhcmVudE5vZGUgPSBudWxsOwogICAgIH0KQEAgLTczLDkgKzc1LDkgQEAgY2xhc3MgTWFya3Vw
Tm9kZSB7CiAKICAgICBfY2xvbmVOb2RlRGF0YShjbG9uZWROb2RlKQogICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQodHlwZW9mKGNsb25lZE5vZGUuX2lkKSA9PSAnbnVtYmVyJyk7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2lkICE9IGNsb25lZE5vZGUuX2lkKTsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoY2xvbmVkTm9kZS5fcGFyZW50Tm9kZSA9PSBudWxsKTsKKyAgICAgICAg
YXNzZXJ0Lm9rKHR5cGVvZihjbG9uZWROb2RlLl9pZCkgPT0gJ251bWJlcicpOworICAgICAgICBh
c3NlcnQub2sodGhpcy5faWQgIT0gY2xvbmVkTm9kZS5faWQpOworICAgICAgICBhc3NlcnQub2so
Y2xvbmVkTm9kZS5fcGFyZW50Tm9kZSA9PSBudWxsKTsKICAgICB9CiAKICAgICByZW1vdmUoKQpA
QCAtMTEzLDcgKzExNSw3IEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUgZXh0ZW5kcyBNYXJrdXBO
b2RlIHsKICAgICAgICAgaWYgKGNoaWxkLl9wYXJlbnROb2RlKQogICAgICAgICAgICAgY2hpbGQu
cmVtb3ZlKCk7CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY2hpbGQuX3BhcmVudE5vZGUgPT0g
bnVsbCk7CisgICAgICAgIGFzc2VydC5vayhjaGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKICAg
ICAgICAgdGhpcy5fY2hpbGROb2Rlcy5wdXNoKGNoaWxkKTsKICAgICAgICAgY2hpbGQuX3BhcmVu
dE5vZGUgPSB0aGlzOwogICAgIH0KQEAgLTEyMyw3ICsxMjUsNyBAQCBjbGFzcyBNYXJrdXBQYXJl
bnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiAgICAgICAgIGlmIChjaGlsZC5fcGFyZW50Tm9k
ZSAhPSB0aGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjb25zdCBpbmRleCA9IHRo
aXMuX2NoaWxkTm9kZXMuaW5kZXhPZihjaGlsZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlu
ZGV4ID49IDApOworICAgICAgICBhc3NlcnQub2soaW5kZXggPj0gMCk7CiAgICAgICAgIHRoaXMu
X2NoaWxkTm9kZXMuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICAgY2hpbGQuX3BhcmVudE5vZGUg
PSBudWxsOwogICAgIH0KQEAgLTE0MiwxMCArMTQ0LDEwIEBAIGNsYXNzIE1hcmt1cFBhcmVudE5v
ZGUgZXh0ZW5kcyBNYXJrdXBOb2RlIHsKIAogICAgICAgICBpZiAobmV3Q2hpbGQuX3BhcmVudE5v
ZGUpCiAgICAgICAgICAgICBuZXdDaGlsZC5yZW1vdmUoKTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQobmV3Q2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayhuZXdD
aGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKIAogICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMu
X2NoaWxkTm9kZXMuaW5kZXhPZihvbGRDaGlsZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlu
ZGV4ID49IDApOworICAgICAgICBhc3NlcnQub2soaW5kZXggPj0gMCk7CiAgICAgICAgIHRoaXMu
X2NoaWxkTm9kZXMuc3BsaWNlKGluZGV4LCAxLCBuZXdDaGlsZCk7CiAgICAgICAgIG9sZENoaWxk
Ll9wYXJlbnROb2RlID0gbnVsbDsKICAgICAgICAgbmV3Q2hpbGQuX3BhcmVudE5vZGUgPSB0aGlz
OwpAQCAtMTU1LDggKzE1Nyw4IEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUgZXh0ZW5kcyBNYXJr
dXBOb2RlIHsKIGNsYXNzIE1hcmt1cENvbnRlbnRSb290IGV4dGVuZHMgTWFya3VwUGFyZW50Tm9k
ZSB7CiAgICAgY29uc3RydWN0b3IoaWQsIGhvc3QpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChob3N0IGluc3RhbmNlb2YgTWFya3VwRWxlbWVudCk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGhvc3QuX2NvbnRlbnRSb290ID09IG51bGwpOworICAgICAgICBhc3NlcnQub2soaG9zdCBp
bnN0YW5jZW9mIE1hcmt1cEVsZW1lbnQpOworICAgICAgICBhc3NlcnQub2soaG9zdC5fY29udGVu
dFJvb3QgPT0gbnVsbCk7CiAgICAgICAgIHN1cGVyKGlkKTsKICAgICAgICAgdGhpcy5faG9zdEVs
ZW1lbnQgPSBudWxsOwogICAgICAgICBob3N0Ll9jb250ZW50Um9vdCA9IHRoaXM7CkBAIC0xNzUs
NyArMTc3LDcgQEAgY2xhc3MgTWFya3VwRWxlbWVudCBleHRlbmRzIE1hcmt1cFBhcmVudE5vZGUg
ewogICAgIGNvbnN0cnVjdG9yKGlkLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoaWQpOwot
ICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YobmFtZSkgPT0gJ3N0cmluZycpOworICAgICAg
ICBhc3NlcnQub2sodHlwZW9mKG5hbWUpID09ICdzdHJpbmcnKTsKICAgICAgICAgdGhpcy5fbmFt
ZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSBuZXcgTWFwOwogICAgICAgICB0
aGlzLl92YWx1ZSA9IG51bGw7CkBAIC0zNjQsNyArMzY2LDcgQEAgY2xhc3MgTWFya3VwQ29tcG9u
ZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogICAgICAgICBzdXBlcigpOwog
ICAgICAgICB0aGlzLl9uYW1lID0gY29tcG9uZW50c0J5Q2xhc3MuZ2V0KG5ldy50YXJnZXQpOwog
ICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb21wb25lbnRzTWFwLmdldCh0aGlzLl9uYW1lKTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoY29tcG9uZW50LCBgQ29tcG9uZW50ICIke3RoaXMuX25h
bWV9IiBoYXMgbm90IGJlZW4gZGVmaW5lZGApOworICAgICAgICBhc3NlcnQub2soY29tcG9uZW50
LCBgQ29tcG9uZW50ICIke3RoaXMuX25hbWV9IiBoYXMgbm90IGJlZW4gZGVmaW5lZGApOwogICAg
ICAgICB0aGlzLl9jb21wb25lbnRJZCA9IGNvbXBvbmVudC5pZDsKICAgICAgICAgdGhpcy5fZWxl
bWVudCA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRSb290ID0gbnVsbDsKQEAgLTQxMiw3
ICs0MTQsNyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9u
ZW50QmFzZSB7CiAKICAgICBzdGF0aWMgcnVuUmVuZGVyTG9vcCgpCiAgICAgewotICAgICAgICBj
b25zb2xlLmFzc2VydCghY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKKyAgICAgICAgYXNz
ZXJ0Lm9rKCFjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQpOwogICAgICAgICBkbyB7CiAgICAg
ICAgICAgICBjb25zdCBjdXJyZW50U2V0ID0gWy4uLmNvbXBvbmVudHNUb1JlbmRlcl07CiAgICAg
ICAgICAgICBjb21wb25lbnRzVG9SZW5kZXIuY2xlYXIoKTsKQEAgLTQyOSwxNCArNDMxLDE0IEBA
IGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsK
IAogICAgIHJlbmRlclJlcGxhY2UocGFyZW50Tm9kZSwgY29udGVudCkKICAgICB7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9PSB0aGlzKTsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50Tm9kZSBpbnN0YW5jZW9mIE1hcmt1cFBhcmVudE5v
ZGUpOworICAgICAgICBhc3NlcnQub2soY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID09IHRo
aXMpOworICAgICAgICBhc3NlcnQub2socGFyZW50Tm9kZSBpbnN0YW5jZW9mIE1hcmt1cFBhcmVu
dE5vZGUpOwogICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUFsbENoaWxkcmVuKCk7CiAgICAgICAg
IGlmIChjb250ZW50KSB7CiAgICAgICAgICAgICBNYXJrdXBDb21wb25lbnRCYXNlLl9hZGRDb250
ZW50VG9FbGVtZW50KHBhcmVudE5vZGUsIGNvbnRlbnQpOwogCiAgICAgICAgICAgICBjb25zdCBj
b21wb25lbnQgPSBjb21wb25lbnRzTWFwLmdldCh0aGlzLl9uYW1lKTsKLSAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGNvbXBvbmVudCk7CisgICAgICAgICAgICBhc3NlcnQub2soY29tcG9uZW50
KTsKICAgICAgICAgICAgIHRoaXMuX2FwcGx5U3R5bGVPdmVycmlkZXMocGFyZW50Tm9kZSwgY29t
cG9uZW50LnN0eWxlT3ZlcnJpZGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDkzLDcgKzQ5NSw3
IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNl
IHsKIAogICAgIHN0YXRpYyByZXNldCgpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCgh
Y3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFjdXJyZW50
bHlSZW5kZXJpbmdDb21wb25lbnQpOwogICAgICAgICBNYXJrdXBEb2N1bWVudC5yZXNldCgpOwog
ICAgICAgICBjb21wb25lbnRzTWFwLmNsZWFyKCk7CiAgICAgICAgIGNvbXBvbmVudHNCeUNsYXNz
LmNsZWFyKCk7CkBAIC01NjcsOSArNTY5LDkgQEAgY2xhc3MgTWFya3VwQ29tcG9uZW50QmFzZSBl
eHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAgc3RhdGljIGRlZmluZUVsZW1lbnQo
bmFtZSwgY29tcG9uZW50Q2xhc3MpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghY29t
cG9uZW50c01hcC5nZXQobmFtZSksIGBUaGUgY29tcG9uZW50ICIke25hbWV9IiBoYXMgYWxyZWFk
eSBiZWVuIGRlZmluZWRgKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFjb21wb25lbnRzTWFwLmdldChu
YW1lKSwgYFRoZSBjb21wb25lbnQgIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZGAp
OwogICAgICAgICBjb25zdCBleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzID0gY29tcG9uZW50c0J5
Q2xhc3MuZ2V0KGNvbXBvbmVudENsYXNzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWV4aXN0
aW5nQ29tcG9uZW50Rm9yQ2xhc3MsIGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MKKyAgICAgICAg
YXNzZXJ0Lm9rKCFleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzLCBleGlzdGluZ0NvbXBvbmVudEZv
ckNsYXNzCiAgICAgICAgICAgICA/IGBUaGUgY29tcG9uZW50IGNsYXNzICIke2V4aXN0aW5nQ29t
cG9uZW50Rm9yQ2xhc3N9IiBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgdG8gZGVmaW5lIGFub3RoZXIg
Y29tcG9uZW50ICIke2V4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MubmFtZX0iYCA6ICcnKTsKICAg
ICAgICAgY29tcG9uZW50c01hcC5zZXQobmFtZSwgewogICAgICAgICAgICAgY2xhc3M6IGNvbXBv
bmVudENsYXNzLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L29zLWJ1aWxkLWZldGNoZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMv
b3MtYnVpbGQtZmV0Y2hlci5qcwppbmRleCA5OTM0MDc5ZDZiM2FhNDlkODdlZTQzZGE1OTUxYTdk
YzEwMmMwOWZjLi4yZDZmNTBhOTU3MzBkY2Q2NmM0NzQ1ODMxYmI4ZWI3ZWI3ZjIzYTZiIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hl
ci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0
Y2hlci5qcwpAQCAtMTIxLDcgKzEyMSw3IEBAIGNsYXNzIE9TQnVpbGRGZXRjaGVyIHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBHb3QgJHtPYmplY3Qua2V5cygob3duZWRDb21t
aXRzKSkubGVuZ3RofSBvd25lZCBjb21taXRzIGZvciAiJHtjb21taXRbJ3JldmlzaW9uJ119ImAp
OwogICAgICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnlOYW1lIGluIG93bmVkQ29tbWl0
cykgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBvd25lZENvbW1pdCA9IG93bmVkQ29tbWl0
c1tyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
T2JqZWN0LmtleXMob3duZWRDb21taXQpLCBbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG93bmVkQ29tbWl0KSwgWydy
ZXZpc2lvbiddKTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZihvd25lZENvbW1p
dFsncmV2aXNpb24nXSkgPT0gJ3N0cmluZycpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBjb21taXRbJ293bmVkQ29tbWl0cyddID0gb3duZWRDb21taXRzOwpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKaW5kZXggYWY2YWEzNjhlZjUwYmI4
NzgzMTc2N2Y2YWI3NTYzMWMyODFkZTBjNy4uNDc3Mzc2NjYwNjYwYjgwNmQ0MTExOTkyMDdmOTQy
OGRjYTQ0NzI2MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L3JlbW90ZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3Rl
LmpzCkBAIC0zMSwxNCArMzEsMTQgQEAgY2xhc3MgTm9kZVJlbW90ZUFQSSBleHRlbmRzIENvbW1v
blJlbW90ZUFQSSB7CiAgICAgY29uZmlndXJlKHNlcnZlcikKICAgICB7CiAgICAgICAgIGFzc2Vy
dChzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cCcgfHwgc2VydmVyLnNjaGVtZSA9PT0gJ2h0dHBzJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yoc2VydmVyLmhvc3QpLCAnc3RyaW5nJywgJ2hv
c3Qgc2hvdWxkIGJlIGEgc3RyaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBl
b2Yoc2VydmVyLmhvc3QpLCAnc3RyaW5nJywgJ2hvc3Qgc2hvdWxkIGJlIGEgc3RyaW5nJyk7CiAg
ICAgICAgIGFzc2VydCghc2VydmVyLnBvcnQgfHwgdHlwZW9mKHNlcnZlci5wb3J0KSA9PSAnbnVt
YmVyJywgJ3BvcnQgc2hvdWxkIGJlIGEgbnVtYmVyJyk7CiAKICAgICAgICAgbGV0IGF1dGggPSBu
dWxsOwogICAgICAgICBpZiAoc2VydmVyLmF1dGgpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0eXBlb2Yoc2VydmVyLmF1dGgpLCAnb2JqZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEgZGljdGlv
bmFyeSB3aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBrZXlzJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnVzZXJuYW1lKSwgJ3N0cmluZycsICdhdXRo
IHNob3VsZCBjb250YWluIGEgc3RyaW5nIHVzZXJuYW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnBhc3N3b3JkKSwgJ3N0cmluZycsICdhdXRoIHNob3Vs
ZCBjb250YWluIGEgc3RyaW5nIHBhc3N3b3JkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoKSwgJ29iamVjdCcsICdhdXRoIHNob3VsZCBiZSBhIGRp
Y3Rpb25hcnkgd2l0aCB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXMga2V5cycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC51c2VybmFtZSksICdzdHJp
bmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBhIHN0cmluZyB1c2VybmFtZScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC5wYXNzd29yZCksICdzdHJp
bmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBhIHN0cmluZyBwYXNzd29yZCcpOwogICAgICAgICAg
ICAgYXV0aCA9IHsKICAgICAgICAgICAgICAgICB1c2VybmFtZTogc2VydmVyLmF1dGgudXNlcm5h
bWUsCiAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHNlcnZlci5hdXRoLnBhc3N3b3JkLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422417</attachid>
            <date>2021-03-05 14:09:31 -0800</date>
            <delta_ts>2021-03-05 15:11:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305140929.patch</filename>
            <type>text/plain</type>
            <size>911335</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi4zYjEzMjRmOTJk
NDI3ZDc1M2I0NzRhYTdiN2UwNGE0ZGJhMGJhOTRkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNjcgQEAKKzIwMjEtMDMtMDUgIFpoaWZlaSBGYW5nICA8emhpZmVp
X2ZhbmdAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2VydmVyIHRlc3QgcnVuIHdpdGggbmV3
IG5vZGUgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyNDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwdWJsaWMvdjMvaW5kZXguaHRtbDoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxz
L2FuYWx5c2lzLXJlc3VsdHMuanM6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBl
LmNvbnRhaW5zVGVzdCk6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmFkZCk6
CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLnZpZXdGb3JNZXRyaWMpOgorICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qczoKKyAgICAgICAgKEFuYWx5
c2lzVGFzayk6CisgICAgICAgIChBbmFseXNpc1Rhc2sucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRv
bik6CisgICAgICAgIChBbmFseXNpc1Rhc2sucHJvdG90eXBlLmFzc29jaWF0ZUJ1Zyk6CisgICAg
ICAgIChBbmFseXNpc1Rhc2sucHJvdG90eXBlLmRpc3NvY2lhdGVCdWcpOgorICAgICAgICAoQW5h
bHlzaXNUYXNrLnByb3RvdHlwZS5hc3NvY2lhdGVDb21taXQpOgorICAgICAgICAoQW5hbHlzaXNU
YXNrLnByb3RvdHlwZS5kaXNzb2NpYXRlQ29tbWl0KToKKyAgICAgICAgKEFuYWx5c2lzVGFzay5h
c3luYyBjcmVhdGUpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVnLmpzOgorICAgICAg
ICAoQnVnKToKKyAgICAgICAgKEJ1Zy5lbnN1cmVTaW5nbGV0b24pOgorICAgICAgICAoQnVnLnBy
b3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVp
bGQtcmVxdWVzdC5qczoKKyAgICAgICAgKEJ1aWxkUmVxdWVzdCk6CisgICAgICAgIChCdWlsZFJl
cXVlc3QucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgICogcHVibGljL3YzL21v
ZGVscy9idWlsZGVyLmpzOgorICAgICAgICAoQnVpbGQpOgorICAgICAgICAqIHB1YmxpYy92My9t
b2RlbHMvY29tbWl0LWxvZy5qczoKKyAgICAgICAgKENvbW1pdExvZyk6CisgICAgICAgIChDb21t
aXRMb2cucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChDb21taXRMb2cuZmV0
Y2hMYXRlc3RDb21taXRGb3JQbGF0Zm9ybSk6CisgICAgICAgIChDb21taXRMb2cub3JkZXJUd29D
b21taXRzKToKKyAgICAgICAgKENvbW1pdExvZy5vd25lZENvbW1pdERpZmZlcmVuY2VGb3JPd25l
ckNvbW1pdHMpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAg
ICAgICAgKENvbW1pdFNldC5wcm90b3R5cGUuX3VwZGF0ZUZyb21PYmplY3QpOgorICAgICAgICAo
Q29tbWl0U2V0LnByb3RvdHlwZS5wYXRjaEZvclJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0
U2V0LnByb3RvdHlwZS5yb290Rm9yUmVwb3NpdG9yeSk6CisgICAgICAgIChDb21taXRTZXQuY29u
dGFpbnNNdWx0aXBsZUNvbW1pdHNGb3JSZXBvc2l0b3J5LnNldCBjb25zdC5hbm90aGVyQ29tbWl0
LnNldCBjb21taXRGb3JSZXBvc2l0b3J5KToKKyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011
bHRpcGxlQ29tbWl0c0ZvclJlcG9zaXRvcnkuc2V0IGNvbnN0KToKKyAgICAgICAgKENvbW1pdFNl
dC5jb250YWluc011bHRpcGxlQ29tbWl0c0ZvclJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0
U2V0LmRpZmYpOgorICAgICAgICAoQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRz
KToKKyAgICAgICAgKENvbW1pdFNldCk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90
eXBlLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQu
cHJvdG90eXBlLmVxdWFscyk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmFk
ZEN1c3RvbVJvb3QpOgorICAgICAgICAoQ3VzdG9tQ29tbWl0U2V0KToKKyAgICAgICAgKEludGVy
bWVkaWF0ZUNvbW1pdFNldCk6CisgICAgICAgIChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90
eXBlLl9mZXRjaENvbW1pdExvZ0FuZE93bmVkQ29tbWl0cyk6CisgICAgICAgIChJbnRlcm1lZGlh
dGVDb21taXRTZXQucHJvdG90eXBlLnNldENvbW1pdEZvclJlcG9zaXRvcnkpOgorICAgICAgICAo
SW50ZXJtZWRpYXRlQ29tbWl0U2V0LnByb3RvdHlwZS5yZW1vdmVDb21taXRGb3JSZXBvc2l0b3J5
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanM6CisgICAgICAgIChE
YXRhTW9kZWxPYmplY3QuZmluZEJ5SWQpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWVh
c3VyZW1lbnQtc2V0LmpzOgorICAgICAgICAoTWVhc3VyZW1lbnRTZXQucHJvdG90eXBlLl9kaWRG
ZXRjaEpTT04pOgorICAgICAgICAoTWVhc3VyZW1lbnRTZXQucHJvdG90eXBlLmhhc0ZldGNoZWRS
YW5nZSk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9tZXRyaWMuanM6CisgICAgICAgIChN
ZXRyaWMucHJvdG90eXBlLmFkZFBsYXRmb3JtKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxz
L3BsYXRmb3JtLmpzOgorICAgICAgICAoUGxhdGZvcm0ucHJvdG90eXBlLmxhc3RNb2RpZmllZCk6
CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzOgorICAgICAgICAoUmVw
b3NpdG9yeS5wcm90b3R5cGUub3duZWRSZXBvc2l0b3JpZXMpOgorICAgICAgICAoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKToKKyAgICAgICAgKFJlcG9zaXRvcnkp
OgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczoKKyAgICAgICAgKFRl
c3RHcm91cCk6CisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6
CisgICAgICAgIChUZXN0R3JvdXAuX2NvbXB1dGVSZXF1ZXN0ZWRDb21taXRTZXRzLnNldCByZXF1
ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAgKFRlc3RHcm91cC5fY29tcHV0ZVJlcXVlc3RlZENv
bW1pdFNldHMuY29uc3Quc2V0IHJlcXVlc3QpOgorICAgICAgICAoVGVzdEdyb3VwLl9jb21wdXRl
UmVxdWVzdGVkQ29tbWl0U2V0cyk6CisgICAgICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2sp
OgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKToKKyAg
ICAgICAgKFRlc3RHcm91cC5jcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyk6CisgICAgICAgICog
cHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qczoKKyAgICAgICAgKFRpbWVTZXJpZXMucHJv
dG90eXBlLmFwcGVuZCk6CisgICAgICAgIChUaW1lU2VyaWVzLnByb3RvdHlwZS5wcmV2aW91c1Bv
aW50KToKKyAgICAgICAgKFRpbWVTZXJpZXMucHJvdG90eXBlLm5leHRQb2ludCk6CisgICAgICAg
IChUaW1lU2VyaWVzLnByb3RvdHlwZS52aWV3QmV0d2VlblBvaW50cyk6CisgICAgICAgIChUaW1l
U2VyaWVzKToKKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3KToKKyAgICAgICAgKFRpbWVTZXJpZXNW
aWV3LnByb3RvdHlwZS5maXJzdFBvaW50SW5UaW1lUmFuZ2UpOgorICAgICAgICAoVGltZVNlcmll
c1ZpZXcucHJvdG90eXBlLmxhc3RQb2ludEluVGltZVJhbmdlKToKKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzOgorICAgICAgICAoVHJpZ2dlcmFibGUpOgorICAgICAg
ICAoVHJpZ2dlcmFibGUudHJpZ2dlcmFibGVQbGF0Zm9ybXNGb3JUZXN0cyk6CisgICAgICAgICog
c2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXIt
dGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXIt
dGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRlc3RT
ZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAg
ICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRl
c3RzLmpzOgorICAgICAgICAoYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQpOgorICAg
ICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVk
X2hlcmUudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5q
czoKKyAgICAgICAgKHJldHVybi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19h
cHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzOgorICAgICAgICAoc2V0IHRo
ZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgIChlbXB0eVJlcG9ydC50aGVuKToKKyAgICAgICAgKGFzeW5jIGluaXRpYWxSZXBv
cnRDb21taXRzKToKKyAgICAgICAgKGFzeW5jIHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0dXMp
OgorICAgICAgICAoYXN5bmMgdGVzdFdpdGhFeHBlY3RlZEZhaWx1cmUpOgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAoZW1wdHlSZXBvcnQudGhl
bik6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS10
ZXN0LWdyb3Vwcy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2Vy
YWJsZS10ZXN0cy5qczoKKyAgICAgICAgKHVwZGF0ZS50aGVuKToKKyAgICAgICAgKHRoZW4ucmVz
cG9uc2UuZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAo
dGhlbi5kYi5zZWxlY3RBbGwuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0
aGVuLk1hbmlmZXN0LmZldGNoLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBs
b2FkLXJvb3QtdGVzdHMuanM6CisgICAgICAgIChhc3luYyBjb25zdCk6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLlRl
c3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6Cisg
ICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10
ZXN0cy5qczoKKyAgICAgICAgKGFzeW5jIGNyZWF0ZUFuYWx5c2lzVGFzayk6CisgICAgICAgIChj
b25zdC5jb21taXRTZXQub2YudXBkYXRlZEdyb3Vwcy4wLnJlcXVlc3RlZENvbW1pdFNldHMpOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFz
ay10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRl
LXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChjcmVhdGVBbmFseXNpc1Rhc2spOgorICAg
ICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lzVGFzay5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVu
KToKKyAgICAgICAgKHJldHVybi5hZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2suc3RyaW5nX2Fw
cGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToK
KyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5q
czoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3Jv
dXAtdGVzdHMuanM6CisgICAgICAgIChhc3luYyBjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAg
ICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qczoKKyAg
ICAgICAgKFRlc3RTZXJ2ZXIudGVzdENvbmZpZy51cGxvYWRGaWxlTGltaXRJbk1CLjEudGhlbik6
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qczoK
KyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jl
c291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoKKyAgICAgICAgKFRlbXBvcmFyeUZpbGUubWFrZVRl
bXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVp
bGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgIChhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZSk6CisgICAgICAgICh0aGVuLnJlZmV0Y2hNYW5pZmVzdC50aGVuKToKKyAgICAgICAgKGdl
dEJ1aWxkZXJOYW1lVG9JRE1hcFByb21pc2UudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3Rz
L3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3Rz
L3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanM6CisgICAgICAgIChhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdCk6CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3Qtc3luY2Vy
LmpzOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5pbml0aWFsaXplKToK
KyAgICAgICAgKEJ1aWxkYm90QnVpbGRFbnRyeS5wcm90b3R5cGUuYnVpbGRSZXF1ZXN0U3RhdHVz
SWZVcGRhdGVJc05lZWRlZCk6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkpOgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnNjaGVkdWxlUmVxdWVzdCk6CisgICAgICAgIChC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fcGFy
c2VSZXBvc2l0b3J5R3JvdXApOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIuX3ZhbGlkYXRlQW5k
TWVyZ2VDb25maWcpOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIpOgorICAgICAgICAqIHRvb2xz
L2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJs
ZS5wcm90b3R5cGUuX3ZhbGlkYXRlUmVxdWVzdHMpOgorICAgICAgICAqIHRvb2xzL2pzL21hcmt1
cC1jb21wb25lbnQuanM6CisgICAgICAgIChjb25zdC5NYXJrdXBEb2N1bWVudC5uZXcuTWFya3Vw
RG9jdW1lbnQucHJvdG90eXBlLl9pZEZvckNsb25lKToKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERv
Y3VtZW50Lm5ldy5NYXJrdXBEb2N1bWVudC5wcm90b3R5cGUubWFya3VwKToKKyAgICAgICAgKiB0
b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzOgorICAgICAgICAocHJvdG90eXBlLl9hZGRPd25l
ZENvbW1pdHNGb3JCdWlsZCk6CisgICAgICAgICogdG9vbHMvanMvcmVtb3RlLmpzOgorICAgICAg
ICAoTm9kZVJlbW90ZUFQSS5wcm90b3R5cGUuY29uZmlndXJlKToKKyAgICAgICAgKiB0b29scy9q
cy92My1tb2RlbHMuanM6CisKKwogMjAyMS0wMi0xOCAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggYSBidWcgdGhhdCBhIHN5bmNpbmcgc2NyaXB0IG1heSB0
cnkgdG8gcmV1c2UgYSBkZWxldGUgcm9vdC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvaW5kZXguaHRtbAppbmRleCBmNTMxMDAzZWQ1ZTY3MzUwOWU0MzdlNDgxMWJiMDlm
OGFjMzM3MmQzLi5iNzdiMzVhYTljNDYzYmNiZThkMDE2OTU3OWNiZDZkYjQ1NTgwMDQ0IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCkBAIC00Nyw2
ICs0Nyw3IEBAIFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVlZCB1cCB0aGUgbG9h
ZCB0aW1lIGZvciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2NyaXB0IHNyYz0iYXN5bmMtdGFz
ay5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJsYXppbHktZXZhbHVhdGVkLWZ1
bmN0aW9uLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9ImNvbW1pdC1zZXQtcmFu
Z2UtYmlzZWN0b3IuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iY29uc29sZS1h
c3NlcnQuanMiPjwvc2NyaXB0PgogCiAgICAgICAgIDxzY3JpcHQgc3JjPSJtb2RlbHMvdGltZS1z
ZXJpZXMuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9kZWxzL21lYXN1cmVt
ZW50LWFkYXB0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanMKaW5kZXgg
MjU5NTUzY2NiYjQxZTFlMWQ1ZTg4ZjNmNWFlMDBhM2IwZWE5NGFiYS4uZWU5OTM5MDlhOGJiMzIz
OGY4NTk2OTFmMDZkOTlkNmUxNWM3MGU4YyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1bHRzLmpzCkBA
IC0zOCw3ICszOCw3IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiAKICAgICBjb250YWluc1Rl
c3QodGVzdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRlc3QgaW5zdGFuY2VvZiBU
ZXN0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0ZXN0IGluc3RhbmNlb2YgVGVzdCk7CiAgICAg
ICAgIGZvciAoY29uc3QgbWV0cmljIG9mIHRlc3QubWV0cmljcygpKSB7CiAgICAgICAgICAgICBp
ZiAobWV0cmljLmlkKCkgaW4gdGhpcy5fbWV0cmljVG9CdWlsZE1hcCkKICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTU0LDE0ICs1NCwxNCBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHMg
ewogCiAgICAgYWRkKG1lYXN1cmVtZW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
bWVhc3VyZW1lbnQuY29uZmlnVHlwZSA9PSAnY3VycmVudCcpOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KG1lYXN1cmVtZW50LmNvbmZpZ1R5cGUgPT0gJ2N1cnJlbnQnKTsKICAgICAgICAgY29uc3Qg
bWV0cmljSWQgPSBtZWFzdXJlbWVudC5tZXRyaWNJZDsKICAgICAgICAgaWYgKCEobWV0cmljSWQg
aW4gdGhpcy5fbWV0cmljVG9CdWlsZE1hcCkpIHsKICAgICAgICAgICAgIHRoaXMuX21ldHJpY1Rv
QnVpbGRNYXBbbWV0cmljSWRdID0ge307CiAgICAgICAgICAgICB0aGlzLl9tZXRyaWNJZHMgPSBP
YmplY3Qua2V5cyh0aGlzLl9tZXRyaWNUb0J1aWxkTWFwKTsKICAgICAgICAgfQogICAgICAgICBj
b25zdCBtYXAgPSB0aGlzLl9tZXRyaWNUb0J1aWxkTWFwW21ldHJpY0lkXTsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQoIW1hcFttZWFzdXJlbWVudC5idWlsZElkXSk7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQoIW1hcFttZWFzdXJlbWVudC5idWlsZElkXSk7CiAgICAgICAgIG1hcFttZWFzdXJlbWVu
dC5idWlsZElkXSA9IG1lYXN1cmVtZW50OwogICAgIH0KIApAQCAtNzcsNyArNzcsNyBAQCBjbGFz
cyBBbmFseXNpc1Jlc3VsdHMgewogCiAgICAgdmlld0Zvck1ldHJpYyhtZXRyaWMpCiAgICAgewot
ICAgICAgICBjb25zb2xlLmFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBNZXRyaWMpOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KG1ldHJpYyBpbnN0YW5jZW9mIE1ldHJpYyk7CiAgICAgICAgIHJldHVy
biBuZXcgQW5hbHlzaXNSZXN1bHRzVmlldyh0aGlzLCBtZXRyaWMpOwogICAgIH0KIApAQCAtMTAz
LDggKzEwMyw4IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiBjbGFzcyBBbmFseXNpc1Jlc3Vs
dHNWaWV3IHsKICAgICBjb25zdHJ1Y3RvcihhbmFseXNpc1Jlc3VsdHMsIG1ldHJpYykKICAgICB7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuYWx5c2lzUmVzdWx0cyBpbnN0YW5jZW9mIEFuYWx5
c2lzUmVzdWx0cyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1ldHJpYyBpbnN0YW5jZW9mIE1l
dHJpYyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYW5hbHlzaXNSZXN1bHRzIGluc3RhbmNlb2Yg
QW5hbHlzaXNSZXN1bHRzKTsKKyAgICAgICAgY29uc29sZUFzc2VydChtZXRyaWMgaW5zdGFuY2Vv
ZiBNZXRyaWMpOwogICAgICAgICB0aGlzLl9yZXN1bHRzID0gYW5hbHlzaXNSZXN1bHRzOwogICAg
ICAgICB0aGlzLl9tZXRyaWMgPSBtZXRyaWM7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKaW5k
ZXggMTc3NmE4MTdiYzMxOTk2OTI5NzJhNDBhYTRlZDY4YzFhOTVjZGVlZS4uYzZlNzllZjhlZTM3
MjViNWUyMGVlMTBiODdiNzZiNDZjMTZiMWU1MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCkBAIC03
LDEwICs3LDEwIEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmplY3Qgewog
ICAgICAgICB0aGlzLl9hdXRob3IgPSBvYmplY3QuYXV0aG9yOwogICAgICAgICB0aGlzLl9jcmVh
dGVkQXQgPSBvYmplY3QuY3JlYXRlZEF0OwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmpl
Y3QucGxhdGZvcm0gfHwgb2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAg
ICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0LnBsYXRmb3JtIGlu
c3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9IG9iamVjdC5wbGF0
Zm9ybTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0Lm1ldHJpYyB8fCBvYmplY3Qu
bWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydCghb2JqZWN0
Lm1ldHJpYyB8fCBvYmplY3QubWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsKICAgICAgICAgdGhp
cy5fbWV0cmljID0gb2JqZWN0Lm1ldHJpYzsKIAogICAgICAgICB0aGlzLl9zdGFydE1lYXN1cmVt
ZW50SWQgPSBvYmplY3Quc3RhcnRSdW47CkBAIC00MCwxNCArNDAsMTQgQEAgY2xhc3MgQW5hbHlz
aXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgewogICAgICAgICBzdXBlci51cGRh
dGVTaW5nbGV0b24ob2JqZWN0KTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9hdXRo
b3IgPT0gb2JqZWN0LmF1dGhvcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCt0aGlzLl9jcmVh
dGVkQXQgPT0gK29iamVjdC5jcmVhdGVkQXQpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLl9tZXRyaWMgPT0gb2JqZWN0Lm1ldHJpYyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX3N0YXJ0TWVhc3VyZW1lbnRJZCA9PSBvYmplY3Quc3RhcnRSdW4pOwotICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9zdGFydFRpbWUgPT0gb2JqZWN0LnN0YXJ0UnVuVGltZSk7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuZE1lYXN1cmVtZW50SWQgPT0gb2JqZWN0LmVuZFJ1
bik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuZFRpbWUgPT0gb2JqZWN0LmVuZFJ1
blRpbWUpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2F1dGhvciA9PSBvYmplY3QuYXV0
aG9yKTsKKyAgICAgICAgY29uc29sZUFzc2VydCgrdGhpcy5fY3JlYXRlZEF0ID09ICtvYmplY3Qu
Y3JlYXRlZEF0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmpl
Y3QucGxhdGZvcm0pOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX21ldHJpYyA9PSBvYmpl
Y3QubWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9zdGFydE1lYXN1cmVtZW50
SWQgPT0gb2JqZWN0LnN0YXJ0UnVuKTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9zdGFy
dFRpbWUgPT0gb2JqZWN0LnN0YXJ0UnVuVGltZSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhp
cy5fZW5kTWVhc3VyZW1lbnRJZCA9PSBvYmplY3QuZW5kUnVuKTsKKyAgICAgICAgY29uc29sZUFz
c2VydCh0aGlzLl9lbmRUaW1lID09IG9iamVjdC5lbmRSdW5UaW1lKTsKIAogICAgICAgICB0aGlz
Ll9jYXRlZ29yeSA9IG9iamVjdC5jYXRlZ29yeTsKICAgICAgICAgdGhpcy5fY2hhbmdlVHlwZSA9
IG9iamVjdC5yZXN1bHQ7IC8vIENhbid0IGNoYW5nZSBkdWUgdG8gdjIgY29tcGF0aWJpbGl0eS4K
QEAgLTkzLDggKzkzLDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAKICAgICBhc3NvY2lhdGVCdWcodHJhY2tlciwgYnVnTnVtYmVyKQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQodHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNrZXIpOwotICAgICAg
ICBjb25zb2xlLmFzc2VydCh0eXBlb2YoYnVnTnVtYmVyKSA9PSAnbnVtYmVyJyk7CisgICAgICAg
IGNvbnNvbGVBc3NlcnQodHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNrZXIpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KHR5cGVvZihidWdOdW1iZXIpID09ICdudW1iZXInKTsKICAgICAgICAgdmFy
IGlkID0gdGhpcy5pZCgpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnYXNzb2NpYXRlLWJ1ZycsIHsKICAgICAgICAgICAgIHRhc2s6IGlkLApAQCAtMTA4LDggKzEw
OCw4IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmplY3QgewogCiAgICAg
ZGlzc29jaWF0ZUJ1ZyhidWcpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChidWcgaW5z
dGFuY2VvZiBCdWcpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmJ1Z3MoKS5pbmNsdWRl
cyhidWcpKTsKKyAgICAgICAgY29uc29sZUFzc2VydChidWcgaW5zdGFuY2VvZiBCdWcpOworICAg
ICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuYnVncygpLmluY2x1ZGVzKGJ1ZykpOwogICAgICAgICB2
YXIgaWQgPSB0aGlzLmlkKCk7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdhc3NvY2lhdGUtYnVnJywgewogICAgICAgICAgICAgdGFzazogaWQsCkBAIC0xMjQsOCAr
MTI0LDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAg
ICBhc3NvY2lhdGVDb21taXQoa2luZCwgcmVwb3NpdG9yeSwgcmV2aXNpb24pCiAgICAgewotICAg
ICAgICBjb25zb2xlLmFzc2VydChraW5kID09ICdjYXVzZScgfHwga2luZCA9PSAnZml4Jyk7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsK
KyAgICAgICAgY29uc29sZUFzc2VydChraW5kID09ICdjYXVzZScgfHwga2luZCA9PSAnZml4Jyk7
CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkp
OwogICAgICAgICBpZiAocmV2aXNpb24uc3RhcnRzV2l0aCgncicpKQogICAgICAgICAgICAgcmV2
aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMSk7CiAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5p
ZCgpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVs
ZWRPYmplY3QgewogCiAgICAgZGlzc29jaWF0ZUNvbW1pdChjb21taXQpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7CiAgICAgICAgIHZhciBp
ZCA9IHRoaXMuaWQoKTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2Fzc29jaWF0ZS1jb21taXQnLCB7CiAgICAgICAgICAgICB0YXNrOiBpZCwKQEAgLTMyOCw3ICsz
MjgsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICB7
CiAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7bmFtZSwgc3RhcnRSdW46IHN0YXJ0UG9pbnQu
aWQsIGVuZFJ1bjogZW5kUG9pbnQuaWR9OwogICAgICAgICBpZiAodGVzdEdyb3VwTmFtZSkgewot
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwZXRpdGlvbkNvdW50KTsKKyAgICAgICAgICAg
IGNvbnNvbGVBc3NlcnQocmVwZXRpdGlvbkNvdW50KTsKICAgICAgICAgICAgIHBhcmFtZXRlcnNb
J3JldmlzaW9uU2V0cyddID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKFtz
dGFydFBvaW50LmNvbW1pdFNldCgpLCBlbmRQb2ludC5jb21taXRTZXQoKV0pOwogICAgICAgICAg
ICAgcGFyYW1ldGVyc1sncmVwZXRpdGlvbkNvdW50J10gPSByZXBldGl0aW9uQ291bnQ7CiAgICAg
ICAgICAgICBwYXJhbWV0ZXJzWyd0ZXN0R3JvdXBOYW1lJ10gPSB0ZXN0R3JvdXBOYW1lOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVnLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVnLmpzCmluZGV4
IGMxNTg4NjcxOTJhNmQwZjc3ZGU5M2FmOGE3OGM5OTgyZTA1MWYxNjUuLmY3OTAwMDljZTUzNzM3
MmY4NzRhNWM0MTM1ODA5MDM4NzU1ODMyYTEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1Zy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9idWcuanMKQEAgLTQsMTQgKzQsMTQgQEAgY2xhc3MgQnVn
IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAgICAgICAgIHN1cGVyKGlkLCBvYmpl
Y3QpOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdC5idWdUcmFja2VyIGluc3RhbmNl
b2YgQnVnVHJhY2tlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQob2JqZWN0LmJ1Z1RyYWNrZXIg
aW5zdGFuY2VvZiBCdWdUcmFja2VyKTsKICAgICAgICAgdGhpcy5fYnVnVHJhY2tlciA9IG9iamVj
dC5idWdUcmFja2VyOwogICAgICAgICB0aGlzLl9idWdOdW1iZXIgPSBvYmplY3QubnVtYmVyOwog
ICAgIH0KIAogICAgIHN0YXRpYyBlbnN1cmVTaW5nbGV0b24ob2JqZWN0KQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQob2JqZWN0LmJ1Z1RyYWNrZXIgaW5zdGFuY2VvZiBCdWdUcmFja2Vy
KTsKKyAgICAgICAgY29uc29sZUFzc2VydChvYmplY3QuYnVnVHJhY2tlciBpbnN0YW5jZW9mIEJ1
Z1RyYWNrZXIpOwogICAgICAgICB2YXIgaWQgPSBvYmplY3QuYnVnVHJhY2tlci5pZCgpICsgJy0n
ICsgb2JqZWN0Lm51bWJlcjsKICAgICAgICAgcmV0dXJuIHN1cGVyLmVuc3VyZVNpbmdsZXRvbihp
ZCwgb2JqZWN0KTsKICAgICB9CkBAIC0xOSw4ICsxOSw4IEBAIGNsYXNzIEJ1ZyBleHRlbmRzIERh
dGFNb2RlbE9iamVjdCB7CiAgICAgdXBkYXRlU2luZ2xldG9uKG9iamVjdCkKICAgICB7CiAgICAg
ICAgIHN1cGVyLnVwZGF0ZVNpbmdsZXRvbihvYmplY3QpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl9idWdUcmFja2VyID09IG9iamVjdC5idWdUcmFja2VyKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5fYnVnTnVtYmVyID09IG9iamVjdC5udW1iZXIpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KHRoaXMuX2J1Z1RyYWNrZXIgPT0gb2JqZWN0LmJ1Z1RyYWNrZXIpOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KHRoaXMuX2J1Z051bWJlciA9PSBvYmplY3QubnVtYmVyKTsKICAgICB9
CiAKICAgICBidWdUcmFja2VyKCkgeyByZXR1cm4gdGhpcy5fYnVnVHJhY2tlcjsgfQpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVx
dWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxk
LXJlcXVlc3QuanMKaW5kZXggZjA5NWUwZDdhYmU4NmEwMjY1MjE1MTYxMjc4NGQyMWQxMDNhNTYx
Ni4uOTUyYTM3ZDU2YmFhNDNlNDI1ZTc5NzRlODA4NzMwOTFhOTJlZjQ1OCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1y
ZXF1ZXN0LmpzCkBAIC02LDIwICs2LDIwIEBAIGNsYXNzIEJ1aWxkUmVxdWVzdCBleHRlbmRzIERh
dGFNb2RlbE9iamVjdCB7CiAgICAgewogICAgICAgICBzdXBlcihpZCwgb2JqZWN0KTsKICAgICAg
ICAgdGhpcy5fdHJpZ2dlcmFibGUgPSBvYmplY3QudHJpZ2dlcmFibGU7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCFvYmplY3QucmVwb3NpdG9yeUdyb3VwIHx8IG9iamVjdC5yZXBvc2l0b3J5R3Jv
dXAgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgIGNvbnNv
bGVBc3NlcnQoIW9iamVjdC5yZXBvc2l0b3J5R3JvdXAgfHwgb2JqZWN0LnJlcG9zaXRvcnlHcm91
cCBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwKTsKICAgICAgICAgdGhpcy5f
YW5hbHlzaXNUYXNrSWQgPSBvYmplY3QudGFzazsKICAgICAgICAgdGhpcy5fdGVzdEdyb3VwSWQg
PSBvYmplY3QudGVzdEdyb3VwSWQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmplY3QudGVz
dEdyb3VwIHx8IG9iamVjdC50ZXN0R3JvdXAgaW5zdGFuY2VvZiBUZXN0R3JvdXApOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KCFvYmplY3QudGVzdEdyb3VwIHx8IG9iamVjdC50ZXN0R3JvdXAgaW5z
dGFuY2VvZiBUZXN0R3JvdXApOwogICAgICAgICB0aGlzLl90ZXN0R3JvdXAgPSBvYmplY3QudGVz
dEdyb3VwOwogICAgICAgICBpZiAodGhpcy5fdGVzdEdyb3VwKQogICAgICAgICAgICAgdGhpcy5f
dGVzdEdyb3VwLmFkZEJ1aWxkUmVxdWVzdCh0aGlzKTsKICAgICAgICAgdGhpcy5fcmVwb3NpdG9y
eUdyb3VwID0gb2JqZWN0LnJlcG9zaXRvcnlHcm91cDsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
b2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAgICAgICAgdGhpcy5f
cGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmpl
Y3QudGVzdCB8fCBvYmplY3QudGVzdCBpbnN0YW5jZW9mIFRlc3QpOworICAgICAgICBjb25zb2xl
QXNzZXJ0KCFvYmplY3QudGVzdCB8fCBvYmplY3QudGVzdCBpbnN0YW5jZW9mIFRlc3QpOwogICAg
ICAgICB0aGlzLl90ZXN0ID0gb2JqZWN0LnRlc3Q7CiAgICAgICAgIHRoaXMuX29yZGVyID0gb2Jq
ZWN0Lm9yZGVyOwotICAgICAgICBjb25zb2xlLmFzc2VydChvYmplY3QuY29tbWl0U2V0IGluc3Rh
bmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2VydChvYmplY3QuY29tbWl0U2V0
IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgdGhpcy5fY29tbWl0U2V0ID0gb2JqZWN0
LmNvbW1pdFNldDsKICAgICAgICAgdGhpcy5fc3RhdHVzID0gb2JqZWN0LnN0YXR1czsKICAgICAg
ICAgdGhpcy5fc3RhdHVzVXJsID0gb2JqZWN0LnVybDsKQEAgLTMxLDExICszMSwxMSBAQCBjbGFz
cyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgdXBkYXRlU2lu
Z2xldG9uKG9iamVjdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX29yZGVy
ID09IG9iamVjdC5vcmRlcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NvbW1pdFNl
dCA9PSBvYmplY3QuY29tbWl0U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9vcmRl
ciA9PSBvYmplY3Qub3JkZXIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2NvbW1pdFNl
dCA9PSBvYmplY3QuY29tbWl0U2V0KTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBvYmpl
Y3QudGVzdEdyb3VwOwotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fdGVzdEdyb3VwIHx8
IHRoaXMuX3Rlc3RHcm91cCA9PSB0ZXN0R3JvdXApOworICAgICAgICBjb25zb2xlQXNzZXJ0KCF0
aGlzLl90ZXN0R3JvdXAgfHwgdGhpcy5fdGVzdEdyb3VwID09IHRlc3RHcm91cCk7CiAgICAgICAg
IGlmICghdGhpcy5fdGVzdEdyb3VwICYmIHRlc3RHcm91cCkKICAgICAgICAgICAgIHRlc3RHcm91
cC5hZGRCdWlsZFJlcXVlc3QodGhpcyk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzCmluZGV4IGIzMjA0MGY0YjgwYTI0YWJi
Y2FhZDlmODAzZDMzODk0YTJmMmY1MDAuLjIyZWM3Mjc5NmIzMjEzZGUyMTQ4M2Y1N2YyZDllY2I1
Y2NjMDM5YTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL2J1aWxkZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvYnVpbGRlci5qcwpAQCAtMTgsNyArMTgsNyBAQCBjbGFzcyBCdWlsZGVyIGV4dGVu
ZHMgTGFiZWxlZE9iamVjdCB7CiBjbGFzcyBCdWlsZCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7
CiAgICAgY29uc3RydWN0b3IoaWQsIGJ1aWxkZXIsIGJ1aWxkVGFnLCBidWlsZFRpbWUpCiAgICAg
ewotICAgICAgICBjb25zb2xlLmFzc2VydChidWlsZGVyIGluc3RhbmNlb2YgQnVpbGRlcik7Cisg
ICAgICAgIGNvbnNvbGVBc3NlcnQoYnVpbGRlciBpbnN0YW5jZW9mIEJ1aWxkZXIpOwogICAgICAg
ICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2J1aWxkZXIgPSBidWlsZGVyOwogICAgICAgICB0
aGlzLl9idWlsZFRhZyA9IGJ1aWxkVGFnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1
NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAwYi4uMDZlNmFkZjc1ZWI4ZDE2YmVhMTRkZTYwZjcy
NTA1YTQ4OWU2OWJmMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LWxvZy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCkBAIC0zLDExICszLDExIEBACiBjbGFzcyBD
b21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIGNvbnN0cnVjdG9yKGlkLCBy
YXdEYXRhKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocGFyc2VJbnQoaWQpID09IGlk
KTsKKyAgICAgICAgY29uc29sZUFzc2VydChwYXJzZUludChpZCkgPT0gaWQpOwogICAgICAgICBz
dXBlcihpZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkID09IHJhd0RhdGEuaWQpCisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoaWQgPT0gcmF3RGF0YS5pZCkKICAgICAgICAgdGhpcy5fcmVwb3Np
dG9yeSA9IHJhd0RhdGEucmVwb3NpdG9yeTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5f
cmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0
KHRoaXMuX3JlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKICAgICAgICAgdGhpcy5f
cmF3RGF0YSA9IHJhd0RhdGE7CiAgICAgICAgIHRoaXMuX293bmVkQ29tbWl0cyA9IG51bGw7CiAg
ICAgICAgIHRoaXMuX293bmVyQ29tbWl0ID0gbnVsbDsKQEAgLTE4LDggKzE4LDggQEAgY2xhc3Mg
Q29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAgICAgICAgIHN1cGVy
LnVwZGF0ZVNpbmdsZXRvbihyYXdEYXRhKTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCgrdGhp
cy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1lJ10pOwotICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09IHJhd0RhdGFbJ3JldmlzaW9uJ10p
OworICAgICAgICBjb25zb2xlQXNzZXJ0KCt0aGlzLl9yYXdEYXRhWyd0aW1lJ10gPT0gK3Jhd0Rh
dGFbJ3RpbWUnXSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNp
b24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKIAogICAgICAgICBpZiAocmF3RGF0YS5hdXRo
b3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3RGF0YS5hdXRob3JOYW1lID0gcmF3RGF0YS5h
dXRob3JOYW1lOwpAQCAtODMsOCArODMsOCBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRh
TW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGZldGNoTGF0ZXN0Q29tbWl0Rm9yUGxhdGZvcm0o
cmVwb3NpdG9yeSwgcGxhdGZvcm0pCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChyZXBv
c2l0b3J5IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBs
YXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xlQXNzZXJ0KHJlcG9z
aXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKKyAgICAgICAgY29uc29sZUFzc2VydChwbGF0
Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkRmV0
Y2goYC9hcGkvY29tbWl0cy8ke3JlcG9zaXRvcnkuaWQoKX0vbGF0ZXN0YCwge3BsYXRmb3JtOiBw
bGF0Zm9ybS5pZCgpfSkudGhlbigoZGF0YSkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0
cyA9IGRhdGFbJ2NvbW1pdHMnXTsKICAgICAgICAgICAgIGlmICghY29tbWl0cyB8fCAhY29tbWl0
cy5sZW5ndGgpCkBAIC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0
YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBvcmRlclR3b0NvbW1pdHMoZmlyc3RDb21taXQs
IHNlY29uZENvbW1pdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KENvbW1pdExvZy5o
YXNPcmRlcmluZyhmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0KSk7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQoQ29tbWl0TG9nLmhhc09yZGVyaW5nKGZpcnN0Q29tbWl0LCBzZWNvbmRDb21taXQpKTsK
ICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTbWFsbGVyID0gZmlyc3RDb21taXQuaGFzQ29tbWl0
VGltZSgpICYmIHNlY29uZENvbW1pdC5oYXNDb21taXRUaW1lKCkgPwogICAgICAgICAgICAgZmly
c3RDb21taXQudGltZSgpIDwgc2Vjb25kQ29tbWl0LnRpbWUoKSA6IGZpcnN0Q29tbWl0Lm9yZGVy
KCkgPCBzZWNvbmRDb21taXQub3JkZXIoKTsKICAgICAgICAgcmV0dXJuIGZpcnN0Q29tbWl0U21h
bGxlciA/IFtmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0XSA6IFtzZWNvbmRDb21taXQsIGZpcnN0
Q29tbWl0XTsKQEAgLTE0MiwxMiArMTQyLDEyIEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERh
dGFNb2RlbE9iamVjdCB7CiAKICAgICBzdGF0aWMgb3duZWRDb21taXREaWZmZXJlbmNlRm9yT3du
ZXJDb21taXRzKC4uLmNvbW1pdHMpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb21t
aXRzLmxlbmd0aCA+PSAyKTsKKyAgICAgICAgY29uc29sZUFzc2VydChjb21taXRzLmxlbmd0aCA+
PSAyKTsKIAogICAgICAgICBjb25zdCBvd25lZENvbW1pdFJlcG9zaXRvcmllcyA9IG5ldyBTZXQ7
CiAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0TWFwTGlzdCA9IGNvbW1pdHMubWFwKChjb21taXQp
ID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCk7Ci0gICAgICAgICAgICBj
b25zb2xlLmFzc2VydChjb21taXQuX293bmVkQ29tbWl0cyk7CisgICAgICAgICAgICBjb25zb2xl
QXNzZXJ0KGNvbW1pdCk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdC5fb3duZWRD
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0TWFwID0gY29tbWl0Ll9idWls
ZE93bmVkQ29tbWl0TWFwKCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlcG9zaXRvcnkgb2Yg
b3duZWRDb21taXRNYXAua2V5cygpKQogICAgICAgICAgICAgICAgIG93bmVkQ29tbWl0UmVwb3Np
dG9yaWVzLmFkZChyZXBvc2l0b3J5KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCmluZGV4IDA0MjI5ZTFlMDBiMjlk
NzgzNTY5ODlmNDk5ZjA1ODk1ZWQzMmRkMzYuLjc3OGUzZjQ2OGQ1NzQxMjlmNzc4YzMwNDhmMjhi
N2QzOGZlYTVkMTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL2NvbW1pdC1zZXQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcwpAQCAtMzksMTAgKzM5LDEwIEBAIGNsYXNzIENv
bW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIGNvbnN0IHJvb3RGaWxl
cyA9IG5ldyBTZXQ7CiAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBvYmplY3QucmV2aXNpb25J
dGVtcykgewogICAgICAgICAgICAgY29uc3QgY29tbWl0ID0gaXRlbS5jb21taXQ7Ci0gICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChjb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cpOwotICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQoIWl0ZW0ucGF0Y2ggfHwgaXRlbS5wYXRjaCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghaXRlbS5yb290Rmls
ZSB8fCBpdGVtLnJvb3RGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCFpdGVtLmNvbW1pdE93bmVyIHx8IGl0ZW0uY29tbWl0T3duZXIgaW5z
dGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICAgICAgY29uc29sZUFzc2VydChjb21taXQgaW5z
dGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICAgICAgY29uc29sZUFzc2VydCghaXRlbS5wYXRj
aCB8fCBpdGVtLnBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGNv
bnNvbGVBc3NlcnQoIWl0ZW0ucm9vdEZpbGUgfHwgaXRlbS5yb290RmlsZSBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KCFpdGVtLmNvbW1pdE93bmVy
IHx8IGl0ZW0uY29tbWl0T3duZXIgaW5zdGFuY2VvZiBDb21taXRMb2cpOwogICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeSA9IGNvbW1pdC5yZXBvc2l0b3J5KCk7CiAgICAgICAgICAgICB0aGlz
Ll9yZXBvc2l0b3J5VG9Db21taXRNYXAuc2V0KHJlcG9zaXRvcnksIGNvbW1pdCk7CiAgICAgICAg
ICAgICB0aGlzLl9yZXBvc2l0b3J5VG9QYXRjaE1hcC5zZXQocmVwb3NpdG9yeSwgaXRlbS5wYXRj
aCk7CkBAIC05Miw4ICs5Miw4IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAgICAgICAgIHJldHVybiBjb21taXQgPyBjb21taXQucmV2aXNpb24oKSA6IG51bGw7
CiAgICAgfQogCi0gICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRo
aXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KTsgfQotICAgIHJvb3RGb3JS
ZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlUb1Jvb3RNYXAu
Z2V0KHJlcG9zaXRvcnkpOyB9CisgICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsg
cmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmhhcyhyZXBvc2l0b3J5KSA/IHRoaXMu
X3JlcG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KSA6IG51bGw7IH0KKyAgICByb290
Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5VG9QYXRj
aE1hcC5oYXMocmVwb3NpdG9yeSkgPyB0aGlzLl9yZXBvc2l0b3J5VG9Sb290TWFwLmdldChyZXBv
c2l0b3J5KSA6IG51bGw7IH0KICAgICByZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShyZXBvc2l0
b3J5KSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5UmVxdWlyZXNCdWlsZE1hcC5nZXQocmVwb3Np
dG9yeSkgfHwgZmFsc2U7IH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZXR1cm4gYSBE
YXRlIG9iamVjdC4KQEAgLTE1Nyw3ICsxNTcsNyBAQCBjbGFzcyBDb21taXRTZXQgZXh0ZW5kcyBE
YXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGNvbnRhaW5zTXVsdGlwbGVDb21taXRzRm9y
UmVwb3NpdG9yeShjb21taXRTZXRzLCByZXBvc2l0b3J5KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKICAgICAgICAgaWYg
KGNvbW1pdFNldHMubGVuZ3RoIDwgMikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgY29uc3QgZmlyc3RDb21taXQgPSBjb21taXRTZXRzWzBdLmNvbW1pdEZvclJlcG9zaXRvcnko
cmVwb3NpdG9yeSk7CkBAIC0xODcsNyArMTg3LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMg
RGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBjcmVhdGVOYW1lV2l0aG91dENvbGxpc2lv
bihuYW1lLCBleGlzdGluZ05hbWVTZXQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChl
eGlzdGluZ05hbWVTZXQgaW5zdGFuY2VvZiBTZXQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGV4
aXN0aW5nTmFtZVNldCBpbnN0YW5jZW9mIFNldCk7CiAgICAgICAgIGlmICghZXhpc3RpbmdOYW1l
U2V0LmhhcyhuYW1lKSkKICAgICAgICAgICAgIHJldHVybiBuYW1lOwogICAgICAgICBjb25zdCBu
YW1lV2l0aE51bWJlck1hdGNoID0gbmFtZS5tYXRjaCgvKC4rPylccypcKFxzKihcZCspXHMqXClc
cyokLyk7CkBAIC0yMDgsNyArMjA4LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0YU1v
ZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBkaWZmKGZpcnN0Q29tbWl0U2V0LCBzZWNvbmRDb21t
aXRTZXQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghZmlyc3RDb21taXRTZXQuZXF1
YWxzKHNlY29uZENvbW1pdFNldCkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KCFmaXJzdENvbW1p
dFNldC5lcXVhbHMoc2Vjb25kQ29tbWl0U2V0KSk7CiAgICAgICAgIGNvbnN0IGFsbFJlcG9zaXRv
cmllcyA9IG5ldyBTZXQoWy4uLmZpcnN0Q29tbWl0U2V0LnJlcG9zaXRvcmllcygpLCAuLi5zZWNv
bmRDb21taXRTZXQucmVwb3NpdG9yaWVzKCldKTsKICAgICAgICAgY29uc3Qgc29ydGVkUmVwb3Np
dG9yaWVzID0gUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKFsuLi5h
bGxSZXBvc2l0b3JpZXNdKTsKICAgICAgICAgY29uc3QgbmFtZVBhcnRzID0gW107CkBAIC0yNjQs
NyArMjY0LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAg
ICBzdGF0aWMgcmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cykKICAgICB7CiAg
ICAgICAgIHJldHVybiBjb21taXRTZXRzLm1hcCgoY29tbWl0U2V0KSA9PiB7Ci0gICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDdXN0b21Db21taXRTZXQgfHwg
Y29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGNvbnNvbGVBc3Nl
cnQoY29tbWl0U2V0IGluc3RhbmNlb2YgQ3VzdG9tQ29tbWl0U2V0IHx8IGNvbW1pdFNldCBpbnN0
YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvblNldCA9IHt9Owog
ICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiBjb21taXRTZXQucmVwb3NpdG9yaWVz
KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBwYXRjaEZpbGUgPSBjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpOwpAQCAtMzI5LDE0ICszMjksMTQgQEAgY2xhc3MgQ3Vz
dG9tQ29tbWl0U2V0IHsKIAogICAgIHNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5
LCByZXZpc2lvbiwgcGF0Y2ggPSBudWxsLCBvd25lclJldmlzaW9uID0gbnVsbCkKICAgICB7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhdGNoIHx8IHBhdGNoIGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKKyAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5IGluc3RhbmNlb2YgUmVw
b3NpdG9yeSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoIXBhdGNoIHx8IHBhdGNoIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKICAgICAgICAgdGhpcy5fcmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5
LnNldChyZXBvc2l0b3J5LCB7cmV2aXNpb24sIHBhdGNoLCBvd25lclJldmlzaW9ufSk7CiAgICAg
fQogCiAgICAgZXF1YWxzKG90aGVyKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQob3Ro
ZXIgaW5zdGFuY2VvZiBDdXN0b21Db21taXRTZXQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KG90
aGVyIGluc3RhbmNlb2YgQ3VzdG9tQ29tbWl0U2V0KTsKICAgICAgICAgaWYgKHRoaXMuX3Jldmlz
aW9uTGlzdEJ5UmVwb3NpdG9yeS5zaXplICE9IG90aGVyLl9yZXZpc2lvbkxpc3RCeVJlcG9zaXRv
cnkuc2l6ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzc5LDcgKzM3OSw3IEBA
IGNsYXNzIEN1c3RvbUNvbW1pdFNldCB7CiAKICAgICBhZGRDdXN0b21Sb290KHVwbG9hZGVkRmls
ZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHVwbG9hZGVkRmlsZSBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodXBsb2FkZWRGaWxlIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKICAgICAgICAgdGhpcy5fY3VzdG9tUm9vdHMucHVzaCh1cGxv
YWRlZEZpbGUpOwogICAgIH0KIH0KQEAgLTM4OCw3ICszODgsNyBAQCBjbGFzcyBJbnRlcm1lZGlh
dGVDb21taXRTZXQgewogCiAgICAgY29uc3RydWN0b3IoY29tbWl0U2V0KQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAg
ICAgY29uc29sZUFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAg
ICB0aGlzLl9jb21taXRCeVJlcG9zaXRvcnkgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9vd25l
clRvT3duZWRSZXBvc2l0b3JpZXMgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9mZXRjaGluZ1By
b21pc2VCeVJlcG9zaXRvcnkgPSBuZXcgTWFwOwpAQCAtNDExLDcgKzQxMSw3IEBAIGNsYXNzIElu
dGVybWVkaWF0ZUNvbW1pdFNldCB7CiAgICAgX2ZldGNoQ29tbWl0TG9nQW5kT3duZWRDb21taXRz
KHJlcG9zaXRvcnksIHJldmlzaW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIENvbW1pdExvZy5m
ZXRjaEZvclNpbmdsZVJldmlzaW9uKHJlcG9zaXRvcnksIHJldmlzaW9uLCB0cnVlKS50aGVuKChj
b21taXRzKSA9PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRzLmxlbmd0aCA9
PT0gMSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdHMubGVuZ3RoID09PSAxKTsK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IGNvbW1pdHNbMF07CiAgICAgICAgICAgICBpZiAo
IWNvbW1pdC5vd25zQ29tbWl0cygpKQogICAgICAgICAgICAgICAgIHJldHVybiBjb21taXQ7CkBA
IC00MzQsOCArNDM0LDggQEAgY2xhc3MgSW50ZXJtZWRpYXRlQ29tbWl0U2V0IHsKIAogICAgIHNl
dENvbW1pdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSwgY29tbWl0LCBvd25lckNvbW1pdCA9IG51
bGwpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChyZXBvc2l0b3J5IGluc3RhbmNlb2Yg
UmVwb3NpdG9yeSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENv
bW1pdExvZyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJl
cG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENvbW1p
dExvZyk7CiAgICAgICAgIHRoaXMuX2NvbW1pdEJ5UmVwb3NpdG9yeS5zZXQocmVwb3NpdG9yeSwg
Y29tbWl0KTsKICAgICAgICAgaWYgKCFvd25lckNvbW1pdCkKICAgICAgICAgICAgIG93bmVyQ29t
bWl0ID0gY29tbWl0Lm93bmVyQ29tbWl0KCk7CkBAIC00NTAsMTIgKzQ1MCwxMiBAQCBjbGFzcyBJ
bnRlcm1lZGlhdGVDb21taXRTZXQgewogCiAgICAgcmVtb3ZlQ29tbWl0Rm9yUmVwb3NpdG9yeShy
ZXBvc2l0b3J5KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeSBpbnN0
YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHJlcG9zaXRvcnkgaW5z
dGFuY2VvZiBSZXBvc2l0b3J5KTsKICAgICAgICAgdGhpcy5fZmV0Y2hpbmdQcm9taXNlQnlSZXBv
c2l0b3J5LnNldChyZXBvc2l0b3J5LCBudWxsKTsKICAgICAgICAgY29uc3Qgb3duZXJDb21taXQg
PSB0aGlzLm93bmVyQ29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsKICAgICAgICAgaWYg
KG93bmVyQ29tbWl0KSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5U2V0ID0gdGhpcy5f
b3duZXJUb093bmVkUmVwb3NpdG9yaWVzLmdldChvd25lckNvbW1pdC5yZXBvc2l0b3J5KCkpOwot
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeVNldC5oYXMocmVwb3NpdG9yeSkp
OworICAgICAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5U2V0LmhhcyhyZXBvc2l0b3J5
KSk7CiAgICAgICAgICAgICByZXBvc2l0b3J5U2V0LmRlbGV0ZShyZXBvc2l0b3J5KTsKICAgICAg
ICAgfSBlbHNlIGlmICh0aGlzLl9vd25lclRvT3duZWRSZXBvc2l0b3JpZXMuaGFzKHJlcG9zaXRv
cnkpKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZFJlcG9zaXRvcmllcyA9IHRoaXMuX293bmVy
VG9Pd25lZFJlcG9zaXRvcmllcy5nZXQocmVwb3NpdG9yeSk7CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcwppbmRleCBm
MTg5Mjk4YTQ3YjQ1OGRjYWI3YjdiYTlmMzU1ZmViOWY0ZWM4MGNhLi5lNTZjODEyMGMyMzQwYmIx
NGU2YzFiZjc2NTE4NWY0NTZiYzFiMDAyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMKQEAgLTQ0LDcgKzQ0LDcg
QEAgY2xhc3MgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBzdGF0aWMgZmluZEJ5SWQoaWQpCiAgICAg
ewogICAgICAgICB2YXIgaWRNYXAgPSB0aGlzLm5hbWVkU3RhdGljTWFwKCdpZCcpOwotICAgICAg
ICByZXR1cm4gaWRNYXAgPyBpZE1hcFtpZF0gOiBudWxsOworICAgICAgICByZXR1cm4gaWRNYXAg
PyAoaWRNYXAuaGFzT3duUHJvcGVydHkoaWQpID8gaWRNYXBbaWRdIDogbnVsbCkgOiBudWxsOwog
ICAgIH0KIAogICAgIHN0YXRpYyBsaXN0Rm9yU3RhdGljTWFwKG5hbWUpCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVudC1zZXQu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVu
dC1zZXQuanMKaW5kZXggYzJjZDAxNmYzNjkyZGRmNGEyZTVmMmI5NjkxYzdjOTEzZGU1YzhhYS4u
Y2ZjMjA4NjI3NzgwNmRkODYzYmQ4NzMxNDY2NDZiOGI0Mzk4ZTI1MSAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0Lmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21lYXN1cmVt
ZW50LXNldC5qcwpAQCAtMTQ1LDcgKzE0NSw3IEBAIGNsYXNzIE1lYXN1cmVtZW50U2V0IHsKICAg
ICAgICAgICAgIHRoaXMuX2NsdXN0ZXJTdGFydCA9IHJlc3BvbnNlWydjbHVzdGVyU3RhcnQnXTsK
ICAgICAgICAgICAgIHRoaXMuX2NsdXN0ZXJTaXplID0gcmVzcG9uc2VbJ2NsdXN0ZXJTaXplJ107
CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJpbWFy
eUNsdXN0ZXJFbmRUaW1lKTsKKyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fcHJpbWFy
eUNsdXN0ZXJFbmRUaW1lKTsKIAogICAgICAgICB0aGlzLl9hZGRGZXRjaGVkQ2x1c3RlcihuZXcg
TWVhc3VyZW1lbnRDbHVzdGVyKHJlc3BvbnNlKSk7CiAgICAgfQpAQCAtMTY0LDcgKzE2NCw3IEBA
IGNsYXNzIE1lYXN1cmVtZW50U2V0IHsKIAogICAgIGhhc0ZldGNoZWRSYW5nZShzdGFydFRpbWUs
IGVuZFRpbWUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChzdGFydFRpbWUgPCBlbmRU
aW1lKTsKKyAgICAgICAgY29uc29sZUFzc2VydChzdGFydFRpbWUgPCBlbmRUaW1lKTsKICAgICAg
ICAgbGV0IGZvdW5kU3RhcnQgPSBmYWxzZTsKICAgICAgICAgbGV0IHByZXZpb3VzRW5kVGltZSA9
IG51bGw7CiAgICAgICAgIGVuZFRpbWUgPSBNYXRoLm1pbihlbmRUaW1lLCB0aGlzLl9wcmltYXJ5
Q2x1c3RlckVuZFRpbWUpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvbWV0cmljLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvbWV0cmljLmpzCmluZGV4IGEzZTkzNjkxY2Q3MDc4NDM3ZDM1OWQ1ZTA3Zjc5
ZTRhNzA4ZDhkNmYuLmFiOTE3NjJjOWYwODVlODc1ZjQ5MDAyODg1ODIxYWRiOTFhZDVmMTggMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21ldHJp
Yy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZXRy
aWMuanMKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgTWV0cmljIGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAKICAgICBhZGRQbGF0Zm9ybShwbGF0Zm9ybSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9y
bXMucHVzaChwbGF0Zm9ybSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCmluZGV4IDNhNmQ1OGNjNDhiYTM2
MGQwYzM5YTQxNzRiZWVlODVhYmViOGM2MDMuLjkzNmFhMDA1ZTQ4ZjQ0MjM1OGY4ODAwMGIxZTI2
OTY2OTI4MjYyOGQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3BsYXRmb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFBsYXRmb3Jt
IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBsYXN0TW9kaWZpZWQobWV0cmljKQogICAg
IHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsKKyAg
ICAgICAgY29uc29sZUFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBNZXRyaWMpOwogICAgICAgICBy
ZXR1cm4gdGhpcy5fbGFzdE1vZGlmaWVkQnlNZXRyaWNbbWV0cmljLmlkKCldOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVw
b3NpdG9yeS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Jl
cG9zaXRvcnkuanMKaW5kZXggOTMxOTg5OWRkY2Y2MDI3NTlkMDI0ODA5MDM1OTU3ZmUwNjNmMWE0
Yi4uMDEyZjgyY2VkZTM4NDhhMTZmMWI4NGJlMTI4ZTNiMzljNjIyMzIyZCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5
LmpzCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2Jq
ZWN0IHsKICAgICBvd25lZFJlcG9zaXRvcmllcygpCiAgICAgewogICAgICAgICBjb25zdCBvd25l
cnNoaXBzID0gdGhpcy5uYW1lZFN0YXRpY01hcCgncmVwb3NpdG9yeU93bmVyc2hpcHMnKTsKLSAg
ICAgICAgcmV0dXJuIG93bmVyc2hpcHMgPyBvd25lcnNoaXBzW3RoaXMuaWQoKV0gOiBudWxsOwor
ICAgICAgICByZXR1cm4gb3duZXJzaGlwcyA/IChvd25lcnNoaXBzLmhhc093blByb3BlcnR5KHRo
aXMuaWQoKSkgPyBvd25lcnNoaXBzW3RoaXMuaWQoKV0gOiBudWxsKSA6IG51bGw7CiAgICAgfQog
CiAgICAgc3RhdGljIHNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwocmVwb3NpdG9yaWVz
KQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBSZXBvc2l0b3J5IGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKGEubmFtZSgpIDwgYi5uYW1lKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJ
bnQoYS5pZCgpKSAtIHBhcnNlSW50KGIuaWQoKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGIu
X2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAg
ICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdGVzdC1ncm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKaW5kZXggOTdlOGJjOGVlM2NkYTlhNmY2NDE2MjM1
MzRlNjdmYjgwMDM5OTgyYi4uZTcwZmFjNmM5ZmYxZTI2OGYwMjBjYzQyOGU3ZWU1MjJmOWVhMTVh
NCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
dGVzdC1ncm91cC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy90ZXN0LWdyb3VwLmpzCkBAIC0yMCw3ICsyMCw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRl
bmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0aGlzLl9jb21wdXRlUmVxdWVzdGVkQ29tbWl0
U2V0c0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbihUZXN0R3JvdXAuX2NvbXB1
dGVSZXF1ZXN0ZWRDb21taXRTZXRzKTsKICAgICAgICAgdGhpcy5fcmVxdWVzdGVkQ29tbWl0U2V0
cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbW1pdFNldFRvTGFiZWwgPSBuZXcgTWFwOwotICAg
ICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0LnBsYXRmb3JtIHx8IG9iamVjdC5wbGF0Zm9ybSBp
bnN0YW5jZW9mIFBsYXRmb3JtKTsKKyAgICAgICAgY29uc29sZUFzc2VydCghb2JqZWN0LnBsYXRm
b3JtIHx8IG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAgICAgICAgdGhp
cy5fcGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07CiAgICAgfQogCkBAIC0yOCw5ICsyOCw5IEBA
IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgIHsKICAgICAgICAg
c3VwZXIudXBkYXRlU2luZ2xldG9uKG9iamVjdCk7CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5fdGFza0lkID09IG9iamVjdC50YXNrKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoK3Ro
aXMuX2NyZWF0ZWRBdCA9PSArb2JqZWN0LmNyZWF0ZWRBdCk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHRoaXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQodGhpcy5fdGFza0lkID09IG9iamVjdC50YXNrKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCgrdGhpcy5fY3JlYXRlZEF0ID09ICtvYmplY3QuY3JlYXRlZEF0KTsKKyAgICAgICAgY29uc29s
ZUFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwogCiAgICAgICAgIHRo
aXMuX2lzSGlkZGVuID0gb2JqZWN0LmhpZGRlbjsKICAgICAgICAgdGhpcy5fbmVlZHNOb3RpZmlj
YXRpb24gPSBvYmplY3QubmVlZHNOb3RpZmljYXRpb247CkBAIC0xNDIsNyArMTQyLDcgQEAgY2xh
c3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBjb21wYXJlVGVzdFJl
c3VsdHMobWV0cmljLCBiZWZvcmVNZWFzdXJlbWVudHMsIGFmdGVyTWVhc3VyZW1lbnRzKQogICAg
IHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dChtZXRyaWMpOwogICAgICAgICBjb25zdCBiZWZvcmVWYWx1ZXMgPSBiZWZvcmVNZWFzdXJlbWVu
dHMubWFwKChtZWFzdXJtZW50KSA9PiBtZWFzdXJtZW50LnZhbHVlKTsKICAgICAgICAgY29uc3Qg
YWZ0ZXJWYWx1ZXMgPSBhZnRlck1lYXN1cmVtZW50cy5tYXAoKG1lYXN1cmVtZW50KSA9PiBtZWFz
dXJlbWVudC52YWx1ZSk7CiAgICAgICAgIGNvbnN0IGJlZm9yZU1lYW4gPSBTdGF0aXN0aWNzLnN1
bShiZWZvcmVWYWx1ZXMpIC8gYmVmb3JlVmFsdWVzLmxlbmd0aDsKQEAgLTE2MCw3ICsxNjAsNyBA
QCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgICAgICAg
ICByZXN1bHQuZnVsbExhYmVsRm9yTWVhbiA9ICdSdW5uaW5nJzsKICAgICAgICAgICAgICAgICBy
ZXN1bHQuZnVsbExhYmVsRm9ySW5kaXZpZHVhbCA9ICdSdW5uaW5nJzsKICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVzdWx0LmNoYW5nZVR5cGUg
PT09IG51bGwpOworICAgICAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQocmVzdWx0LmNoYW5nZVR5
cGUgPT09IG51bGwpOwogICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0dXMgPSAncGVuZGluZyc7
CiAgICAgICAgICAgICAgICAgcmVzdWx0LmxhYmVsID0gJ1BlbmRpbmcnOwogICAgICAgICAgICAg
ICAgIHJlc3VsdC5mdWxsTGFiZWxGb3JNZWFuID0gJ1BlbmRpbmcnOwpAQCAtMjQ2LDcgKzI0Niw3
IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogCiAgICAgc3RhdGlj
IGNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwgdGVzdCwgZ3JvdXBOYW1lLCByZXBl
dGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCByZXZpc2lv
blNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7
CiAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrTmFtZSwgbmFtZTogZ3JvdXBOYW1lLCBwbGF0
Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBldGl0aW9uQ291bnQsIHJl
dmlzaW9uU2V0cywgbmVlZHNOb3RpZmljYXRpb246ICEhbm90aWZ5T25Db21wbGV0aW9ufTsKICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
JywgcGFyYW1zKS50aGVuKChkYXRhKSA9PiB7CkBAIC0yNTgsNyArMjU4LDcgQEAgY2xhc3MgVGVz
dEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBzdGF0aWMgY3JlYXRlV2l0aEN1
c3RvbUNvbmZpZ3VyYXRpb24odGFzaywgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRp
dGlvbkNvdW50LCBjb21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKKyAgICAgICAgY29uc29s
ZUFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAgICAgY29uc3QgcmV2aXNpb25T
ZXRzID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNvbW1pdFNldHMpOwog
ICAgICAgICBjb25zdCBwYXJhbXMgPSB7dGFzazogdGFzay5pZCgpLCBuYW1lOiBncm91cE5hbWUs
IHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJlcGV0aXRpb25Db3Vu
dCwgcmV2aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3RpZnlPbkNvbXBsZXRpb259
OwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKQEAgLTI2OCw3ICsyNjgsNyBAQCBjbGFz
cyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIHN0YXRpYyBjcmVhdGVB
bmRSZWZldGNoVGVzdEdyb3Vwcyh0YXNrLCBuYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNl
dHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNv
bW1pdFNldHMubGVuZ3RoID09IDIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdFNldHMu
bGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2
aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHsKICAgICAgICAgICAg
IHRhc2s6IHRhc2suaWQoKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL3RpbWUtc2VyaWVzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKaW5kZXggOTM4ODlhNmMzYWZmNzJiNTQy
ZTYzOWI1NmI0YzZkNjE0NmM2OWQ2Zi4uNDIyNTdlNjc5ZWY5Y2FhYmQwMmUwYmRiMmM3NThmMjJl
NjQzYmRjNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvdGltZS1zZXJpZXMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKQEAgLTExLDcgKzExLDcgQEAgY2xhc3MgVGltZVNl
cmllcyB7CiAKICAgICBhcHBlbmQoaXRlbSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGl0ZW0uc2VyaWVzID09PSB1bmRlZmluZWQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGl0ZW0u
c2VyaWVzID09PSB1bmRlZmluZWQpOwogICAgICAgICBpdGVtLnNlcmllcyA9IHRoaXM7CiAgICAg
ICAgIGl0ZW0uc2VyaWVzSW5kZXggPSB0aGlzLl9kYXRhLmxlbmd0aDsKICAgICAgICAgdGhpcy5f
ZGF0YS5wdXNoKGl0ZW0pOwpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBUaW1lU2VyaWVzIHsKIAog
ICAgIHByZXZpb3VzUG9pbnQocG9pbnQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChw
b2ludC5zZXJpZXMgPT0gdGhpcyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocG9pbnQuc2VyaWVz
ID09IHRoaXMpOwogICAgICAgICBpZiAoIXBvaW50LnNlcmllc0luZGV4KQogICAgICAgICAgICAg
cmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW3BvaW50LnNlcmllc0luZGV4
IC0gMV07CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFRpbWVTZXJpZXMgewogCiAgICAgbmV4dFBv
aW50KHBvaW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocG9pbnQuc2VyaWVzID09
IHRoaXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHBvaW50LnNlcmllcyA9PSB0aGlzKTsKICAg
ICAgICAgaWYgKHBvaW50LnNlcmllc0luZGV4ICsgMSA+PSB0aGlzLl9kYXRhLmxlbmd0aCkKICAg
ICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVtwb2ludC5z
ZXJpZXNJbmRleCArIDFdOwpAQCAtODcsOCArODcsOCBAQCBjbGFzcyBUaW1lU2VyaWVzIHsKIAog
ICAgIHZpZXdCZXR3ZWVuUG9pbnRzKGZpcnN0UG9pbnQsIGxhc3RQb2ludCkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0UG9pbnQuc2VyaWVzID09IHRoaXMpOwotICAgICAgICBj
b25zb2xlLmFzc2VydChsYXN0UG9pbnQuc2VyaWVzID09IHRoaXMpOworICAgICAgICBjb25zb2xl
QXNzZXJ0KGZpcnN0UG9pbnQuc2VyaWVzID09IHRoaXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0
KGxhc3RQb2ludC5zZXJpZXMgPT0gdGhpcyk7CiAgICAgICAgIHJldHVybiBuZXcgVGltZVNlcmll
c1ZpZXcodGhpcywgZmlyc3RQb2ludC5zZXJpZXNJbmRleCwgbGFzdFBvaW50LnNlcmllc0luZGV4
ICsgMSk7CiAgICAgfQogfTsKQEAgLTk2LDkgKzk2LDkgQEAgY2xhc3MgVGltZVNlcmllcyB7CiBj
bGFzcyBUaW1lU2VyaWVzVmlldyB7CiAgICAgY29uc3RydWN0b3IodGltZVNlcmllcywgc3RhcnRp
bmdJbmRleCwgYWZ0ZXJFbmRpbmdJbmRleCwgZmlsdGVyZWREYXRhID0gbnVsbCkKICAgICB7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRpbWVTZXJpZXMgaW5zdGFuY2VvZiBUaW1lU2VyaWVzKTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoc3RhcnRpbmdJbmRleCA8PSBhZnRlckVuZGluZ0luZGV4
KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYWZ0ZXJFbmRpbmdJbmRleCA8PSB0aW1lU2VyaWVz
Ll9kYXRhLmxlbmd0aCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGltZVNlcmllcyBpbnN0YW5j
ZW9mIFRpbWVTZXJpZXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHN0YXJ0aW5nSW5kZXggPD0g
YWZ0ZXJFbmRpbmdJbmRleCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYWZ0ZXJFbmRpbmdJbmRl
eCA8PSB0aW1lU2VyaWVzLl9kYXRhLmxlbmd0aCk7CiAgICAgICAgIHRoaXMuX3RpbWVTZXJpZXMg
PSB0aW1lU2VyaWVzOwogICAgICAgICB0aGlzLl9kYXRhID0gZmlsdGVyZWREYXRhIHx8IHRpbWVT
ZXJpZXMuX2RhdGE7CiAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7CkBAIC0yMDYsNyArMjA2
LDcgQEAgY2xhc3MgVGltZVNlcmllc1ZpZXcgewogCiAgICAgZmlyc3RQb2ludEluVGltZVJhbmdl
KHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0
VGltZSA8PSBlbmRUaW1lKTsKKyAgICAgICAgY29uc29sZUFzc2VydChzdGFydFRpbWUgPD0gZW5k
VGltZSk7CiAgICAgICAgIGZvciAobGV0IHBvaW50IG9mIHRoaXMpIHsKICAgICAgICAgICAgIGlm
IChwb2ludC50aW1lID4gZW5kVGltZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKQEAg
LTIxOCw3ICsyMTgsNyBAQCBjbGFzcyBUaW1lU2VyaWVzVmlldyB7CiAKICAgICBsYXN0UG9pbnRJ
blRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChzdGFydFRpbWUgPD0gZW5kVGltZSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoc3RhcnRU
aW1lIDw9IGVuZFRpbWUpOwogICAgICAgICBmb3IgKGxldCBwb2ludCBvZiB0aGlzLl9yZXZlcnNl
KCkpIHsKICAgICAgICAgICAgIGlmIChwb2ludC50aW1lIDwgc3RhcnRUaW1lKQogICAgICAgICAg
ICAgICAgIHJldHVybiBudWxsOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwppbmRleCBkNWZmM2M0OGMzMjlmOWI0
ZDY4ZTg0MjAzMGQyMGJkMmE4N2U1YThkLi4zNjMwZjM1NWFkMjgyMDVlOGQyYTIwNGYyZTBmNTlh
ZTJiN2E5YjhmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy90cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwpAQCAtMTQsNyArMTQsNyBAQCBjbGFzcyBUcmln
Z2VyYWJsZSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICBmb3IgKGNvbnN0IGNvbmZp
ZyBvZiBvYmplY3QuY29uZmlndXJhdGlvbnMpIHsKICAgICAgICAgICAgIGNvbnN0IGtleSA9IGAk
e2NvbmZpZy50ZXN0LmlkKCl9LSR7Y29uZmlnLnBsYXRmb3JtLmlkKCl9YDsKICAgICAgICAgICAg
IHRoaXMuX2FjY2VwdGVkVGVzdHMuYWRkKGNvbmZpZy50ZXN0KTsKLSAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCEoa2V5IGluIGNvbmZpZ3VyYXRpb25NYXApKTsKKyAgICAgICAgICAgIGNvbnNv
bGVBc3NlcnQoIShrZXkgaW4gY29uZmlndXJhdGlvbk1hcCkpOwogICAgICAgICAgICAgY29uZmln
dXJhdGlvbk1hcFtrZXldID0gdGhpczsKICAgICAgICAgfQogICAgIH0KQEAgLTQwLDcgKzQwLDcg
QEAgY2xhc3MgVHJpZ2dlcmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIHN0YXRp
YyB0cmlnZ2VyYWJsZVBsYXRmb3Jtc0ZvclRlc3RzKHRlc3RzKQogICAgIHsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodGVzdHMgaW5zdGFuY2VvZiBBcnJheSk7CisgICAgICAgIGNvbnNvbGVBc3Nl
cnQodGVzdHMgaW5zdGFuY2VvZiBBcnJheSk7CiAgICAgICAgIGlmICghdGVzdHMubGVuZ3RoKQog
ICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgICByZXR1cm4gdGhpcy5zb3J0QnlOYW1lKFBs
YXRmb3JtLmFsbCgpLmZpbHRlcigocGxhdGZvcm0pID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVz
dHMuanMKaW5kZXggMTEyYjA5MTVmZjhmOTk0MjVlZTY4NDY1M2MyOTU0MmE0Nzk5OWJjNC4uM2Jk
ZWRlYzdiOWMyYzFiZjdmNGEzOTBjNmI3OGNiZGM3NzIzMGUzMyAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9y
bXMtdGVzdHMuanMKQEAgLTQ1LDE5ICs0NSwxOSBAQCBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3Jt
cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3BsYXRm
b3JtcycsICduYW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3JtcykgPT4gewogICAgICAg
ICAgICAgb2xkUGxhdGZvcm1zID0gcGxhdGZvcm1zOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBs
YXRmb3Jtc1swXVsnbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkUGxhdGZvcm1zWzFdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzJdWyduYW1lJ10sICdUcnVuayBNb3VudGFpbiBM
aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zWzBdWydu
YW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQ
bGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1z
LnBocCcsCiAgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRQbGF0
Zm9ybXNbMV1bJ2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1syXVsnaWQnXX0pOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwo
J3BsYXRmb3JtcycpOwogICAgICAgICB9KS50aGVuKChuZXdQbGF0Zm9ybXMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1sy
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3UGxhdGZvcm1zLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5ld1BsYXRmb3Jtc1swXSwg
b2xkUGxhdGZvcm1zWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobmV3
UGxhdGZvcm1zWzFdLCBvbGRQbGF0Zm9ybXNbMl0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNjksMTUgKzY5LDE1IEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkVGVzdFJ1bnMgPSByZXN1bHQu
cm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10s
ICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1swXVsn
cnVuX3N1bV9jYWNoZSddLCA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVu
c1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRh
aW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5f
c3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sz
XVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10s
ICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVu
c1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hl
J10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1syXVsn
cGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAn
VHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVy
bGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAgICAgICAgICAgeydh
Y3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rl
c3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX2lkJ119KTsKQEAgLTg1LDIwICs4
NSwyMCBAQCBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5xdWVyeShxdWVyeUZvclJ1bnMpOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IG5ld1Rlc3RSdW5zID0gcmVzdWx0LnJvd3M7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5z
WzBdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1b
J3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCdd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFt
ZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5l
d1Rlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQnXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUn
XSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdU
ZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1szXVsncnVuX2lkJ10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10s
ICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVz
dFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmln
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9p
ZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNo
ZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsn
cnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50
YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sx
XVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
bmV3VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1l
J10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbM11b
J3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sz
XVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZp
ZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTExNCwxMyArMTE0LDEzIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yQ29uZmlnLCBb
cmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXV0pOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIG9sZENvbmZpZ3MgPSByZXN1bHQu
cm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzLmxlbmd0aCwgMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsncGxhdGZvcm1fbmFtZSddLCBy
ZXBvcnRzWzBdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25m
aWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob2xkQ29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5lJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRz
WzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFd
WydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b2xkQ29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzBd
WydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdz
WzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob2xkQ29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsncGxhdGZvcm1fbmFtZSdd
LCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJl
bnQnKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1z
LnBocCcsCiAgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRDb25m
aWdzWzBdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRDb25maWdzWzFdWydwbGF0
Zm9ybV9pZCddfSk7CkBAIC0xMjgsMTMgKzEyOCwxMyBAQCBkZXNjcmliZSgiL2FkbWluL3BsYXRm
b3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeShxdWVyeUZv
ckNvbmZpZywgW3JlcG9ydHNbMF1bJ3BsYXRmb3JtJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ11d
KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBuZXdD
b25maWdzID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmln
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ3Bs
YXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNl
bGluZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ3BsYXRmb3Jt
X25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlncy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ3BsYXRmb3JtX25h
bWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdi
YXNlbGluZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMV1b
J3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZp
Z190eXBlJ10sICdjdXJyZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1y
ZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fk
bWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKaW5kZXggMmZmNTNjYmY4OGFjMjRiMGU5MjE2
YjBhNzJlNGUzNzA5MjI3YTg4MS4uYjA4YWY5ZmRmOWM2YjQzMDUwMjkwZGM3NWEyMzQ1YTcyNjUx
ZjhlNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
ZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwpAQCAtNDgs
MTAgKzQ4LDEwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0V2l0
aFJldmlzaW9ucyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdXZWJLaXQnfSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlcG9zaXRvcmllcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
UmVwc2l0b3J5SWQgPSByZXBvc2l0b3JpZXNbMF0ub3duZXIgPT0gMSA/IHJlcG9zaXRvcmllc1sx
XS5pZCA6IHJlcG9zaXRvcmllc1swXS5pZDsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RS
b3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICcyMTMyMTQnLCAncmVwb3NpdG9yeSc6IHdlYmtp
dFJlcHNpdG9yeUlkfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewpAQCAtNjUsMjcg
KzY1LDI3IEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoc2ltcGxlUmVwb3J0WzBdKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxs
KCdidWlsZHMnKSwgZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyldKTsKICAgICAgICAgfSkudGhlbigo
cmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBidWlsZHMgPSByZXN1bHRbMF07CiAgICAg
ICAgICAgICBjb25zdCByZXBvcnRzID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkc1sw
XVsndGFnJ10sIDE5ODYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHNbMF1bJ3RhZyddLCAnMTk4Nicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIHJlcG9ydElkID0gcmVwb3J0c1swXVsnaWQnXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgMTk4Nik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3J0c1swXVsnYnVpbGRfdGFnJ10sICcxOTg2Jyk7CiAgICAgICAg
ICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQgPSBO
VUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigo
YnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMCk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhg
L2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PSR7cmVwb3J0SWR9YCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYnVpbGRzJyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkc1swXVsn
dGFnJ10sIDE5ODYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10s
ICcxOTg2Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NSwxMCArOTUsMTAgQEAgZGVz
Y3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBvcnRbMF0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50
aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90ID0gcmVwb3J0c1swXTsKICAgICAgICAgICAg
IHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7
IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTEwNiwx
NCArMTA2LDE0IEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2Vs
ZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbmV3
UG9ydCA9IHJlcG9ydHNbMF07CiAgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdFsnY29tbWl0dGVk
X2F0J10gPSBudWxsOwogICAgICAgICAgICAgbmV3UG9ydFsnY29tbWl0dGVkX2F0J10gPSBudWxs
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFsUmVwcm90WydidWlsZCddLCBu
ZXdQb3J0WydidWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvcmln
aW5hbFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9ydFsnYnVpbGQnXSk7CiAgICAgICAgICAgICBvcmln
aW5hbFJlcHJvdFsnYnVpbGQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQb3J0WydidWlsZCdd
ID0gbnVsbDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3JpZ2luYWxSZXByb3QsIG5l
d1BvcnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvcmlnaW5hbFJlcHJv
dCwgbmV3UG9ydCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJl
cXVlc3RzLXRlc3RzLmpzCmluZGV4IDgzZmJlNTk3ZmU3OWEzYTFiZjgwNTBhYzgzNzdiZGQ4NjQ3
NDRlNjYuLmNkZTVlZGYyYmIxZjI3ZDVkMzk3MTVjYjM2YWVmNjBjYmU1MTJiMDkgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC0xMyw3ICsxMyw3IEBAIGRlc2NyaWJlKCcv
YXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gIlRyaWdnZXJhYmxlTm90Rm91bmQiIHdoZW4gdGhlIGRhdGFiYXNlIGlzIGVtcHR5JywgKCkg
PT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ1RyaWdnZXJhYmxlTm90Rm91
bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwg
J1RyaWdnZXJhYmxlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxLDEx
ICsyMSwxMSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1aWxkX3RyaWdn
ZXJhYmxlcycsIHtuYW1lOiAnYnVpbGQtd2Via2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXSwgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ10sIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMn
LCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzMsMzYgKzMzLDM2IEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEu
YWRkVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10u
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDQwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICI5MzEx
NiIsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQsIDQw
NCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsx
XS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCksIDQwNCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAog
ICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICAgICAge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAgICAg
IHtjb21taXQ6ICcyMDE3JywgY29tbWl0T3duZXI6ICI5NjMzNiIsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDUpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6
IDg3ODMyLCByZXBvc2l0b3J5OiAnOScsIHJldmlzaW9uOiAnMTAuMTEgMTVBMjg0JywgdGltZTog
MH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0s
IHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDkzMTE2LCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lv
bjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4Nzh9KQotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0sIHtjb21taXRPd25lcjogJzkzMTE2JywgaWQ6
ICcxNzk3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCB0
aW1lOiAxNDU2OTYwNzk1MzAwfSkKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0cyddWzNdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiA5NjMzNiwgcmVwb3NpdG9y
eTogJzExJywgcmV2aXNpb246ICcxOTI3MzYnLCB0aW1lOiAxNDQ4MjI1MzI1NjUwfSkKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzRdLCB7Y29tbWl0T3du
ZXI6ICc5NjMzNicsIGlkOiAyMDE3LCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25l
ZC1qc2MtOTE5MScsIHRpbWU6IDE0NjIyMzA4MzcxMDB9KQorICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0sIHtjb21taXRPd25lcjog
bnVsbCwgaWQ6ICc4NzgzMicsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246ICcxMC4xMSAxNUEy
ODQnLCB0aW1lOiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogJzkzMTE2JywgcmVwb3Np
dG9yeTogJzExJywgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAxNDQ1OTQ1ODE2ODc4fSkKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLCB7
Y29tbWl0T3duZXI6ICc5MzExNicsIGlkOiAnMTc5NycsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZp
c2lvbjogJ293bmVkLWpzYy02MTYxJywgdGltZTogMTQ1Njk2MDc5NTMwMH0pCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVszXSwge2NvbW1pdE93
bmVyOiBudWxsLCBpZDogJzk2MzM2JywgcmVwb3NpdG9yeTogJzExJywgcmV2aXNpb246ICcxOTI3
MzYnLCB0aW1lOiAxNDQ4MjI1MzI1NjUwfSkKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0cyddWzRdLCB7Y29tbWl0T3duZXI6ICc5NjMzNicsIGlkOiAn
MjAxNycsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgdGlt
ZTogMTQ2MjIzMDgzNzEwMH0pCiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXVsnY3JlYXRlZEF0J10gPSAwOwogICAgICAgICAgICAgY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAgICAgICBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMl1bJ2NyZWF0ZWRBdCddID0gMDsKICAgICAgICAgICAg
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXVsnY3JlYXRlZEF0J10gPSAwOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcw
NCcsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAn
MjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3Jk
ZXI6ICcwJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2Ny
aXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7
aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlH
cm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkw
MCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0
dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAw
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBv
c2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3Jv
dXA6ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5n
Jywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0
ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAw
JywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1Jywg
dGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAn
cGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxs
LCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAnMTA4MCcsIHRyaWdn
ZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxh
dGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNvbW1pdFNldDogJzQw
MycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxs
LCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAnNzA1JywgdGFzazog
JzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVz
dDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzEnLCBj
b21taXRTZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51
bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDog
JzcwNicsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3Vw
OiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywg
b3JkZXI6ICcyJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rl
c2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLCB7aWQ6ICc3MDcnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJl
cG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RH
cm91cDogJzkwMCcsIG9yZGVyOiAnMycsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRp
bmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3Jl
YXRlZEF0OiAwfSk7CiAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwLDMwICs3MCwzMCBAQCBk
ZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdh
aXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRh
YmFzZSgpKTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcp
OwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0Lmtl
eXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21t
aXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAg
IHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMx
MTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21t
aXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7Cisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcx
MDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlk
KSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUn
LAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLApAQCAtMTAxLDUzICsx
MDEsNTMgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9u
SXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAw
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAg
ICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAn
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1
aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCBy
ZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hv
dWxkIHJldXNlIHJvb3QgYnVpbHQgZm9yIG93bmVkIGNvbW1pdCBpZiBzYW1lIGNvbXBsZXRlZCBi
dWlsZCByZXF1ZXN0IGV4aXN0cycsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgTW9ja0Rh
dGEuYWRkVHdvTW9ja1Rlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoVGVzdFNlcnZlci5kYXRhYmFz
ZSgpKTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkLCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkLCA0MDUpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNv
bnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycs
ICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAzKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5p
ZCksIDQwNSk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29t
bWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEw
MX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
cmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25l
cjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAn
MTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9
LAogICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzA0KTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRT
ZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA3
MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNv
bW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDcwOCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uY29tbWl0U2V0KSwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAg
ICAgICBjb25zdCB1cGRhdGVzID0gezcwODogewogICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogNzA0fX07CkBAIC0xNTksMjkgKzE1
OSwyOSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBb
J2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxv
YWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
Lmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMo
Y29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRz
JywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDMpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtj
b21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNC
dWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzEx
NicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3du
ZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
MTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsy
XS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93
bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzIn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBw
YXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLQotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwNCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0
U2V0LCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwg
NzA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5j
b21taXRTZXQsIDQwNSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2
JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsK
KworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxl
bmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLmlkKSwgNzA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9
KTsKIAogICAgIGl0KCdyZXVzZSByb290cyBmcm9tIGV4aXN0aW5nIGJ1aWxkIHJlcXVlc3RzIGlm
IHRoZSBjb21taXRzIHNldHMgYXJlIGVxdWFsIGV4Y2VwdCB0aGUgZXhpc3RlbmNlIG9mIGN1c3Rv
bSByb290cycsIGFzeW5jICgpID0+IHsKQEAgLTE5NSwzMiArMTk1LDMyIEBAIGRlc2NyaWJlKCcv
YXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKTsKICAgICAgICAg
bGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3Rh
dHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMn
LCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lv
bkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJv
b3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZp
c2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjog
bnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9
XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxl
OiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY3VzdG9tUm9v
dHMsIFsxMDNdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMl0uY3VzdG9tUm9vdHMsIFsxMDRdKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
Y3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWycxMDQnXSk7CisKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5p
ZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJs
LCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewotICAgICAgICAgICAg
ICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgICAgIHN0YXR1czog
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWls
ZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5
bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLApAQCAt
MjI4LDI3ICsyMjgsMjcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxk
LXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
aWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
aWQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBu
dWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1z
LCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlz
aW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
LSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
MTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5jdXN0b21Sb290cywgWzEwM10p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0
b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMx
MTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbJzEwMyddKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMs
IFsnMTA0J10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0
KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVlc3Qgd2l0aCAiQ2Fubm90
UmV1c2VEZWxldGVkUm9vdCIgaWYgYW55IHJvb3QgdG8gcmV1c2UgaXMgZGVsZXRlZCcsIGFzeW5j
ICgpID0+IHsKQEAgLTI5OSwzMSArMjk5LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVl
c3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCku
cXVlcnkoYENSRUFURSBUUklHR0VSIGVtdWxhdGVfZmlsZV9wdXJnZSBBRlRFUiBVUERBVEUgT0Yg
Y29tbWl0c2V0X3Jvb3RfZmlsZSBPTiBjb21taXRfc2V0X2l0ZW1zCiAgICAgICAgICAgICBGT1Ig
RUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZW11bGF0ZV9maWxlX3B1cmdlKCk7YCk7CiAgICAg
ICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05X
aXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWls
ZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRG
aWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1
ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMn
XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAw
KTsKLQotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5y
ZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
MTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsy
XS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
JzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJv
b3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1d
KTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOwogCiAg
ICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICBzdGF0dXM6IGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWls
ZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCl9fTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdFJldXNlRGVsZXRl
ZFJvb3QnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygn
L2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVO
YW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtMzM3LDI5ICszMzYsMjkgQEAgZGVzY3JpYmUoJy9hcGkv
YnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFk
ZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydydW5u
aW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGlu
ZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICBjb25zdCBj
b250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygn
L2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRz
J11bNF0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVy
bCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQsIDYwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uc3RhdHVzLCAncGVu
ZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhd
LnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjog
bnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1d
KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
Lmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMs
ICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDog
ewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKIAogICAgICAgICBh
d2FpdCBhc3NlcnRUaHJvd3MoJ05vTWF0Y2hpbmdDb21taXRTZXRJdGVtJywgKCkgPT4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywK
QEAgLTM3NCwzMCArMzczLDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdj
b21taXRfc2V0X2l0ZW1zJywge3NldDogNDAxLCBjb21taXQ6IDExMTE2OH0pCiAgICAgICAgIGNv
bnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3Rh
dHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwg
NDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnMTExMTY4
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uc3RhdHVzLCAncGVuZGluZycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnVybCwg
bnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewotICAg
ICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
dXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290
UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgICAg
IHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKIAogICAgICAgICBhd2FpdCBh
c3NlcnRUaHJvd3MoJ0Nhbm5vdFJldXNlUm9vdFdpdGhOb25NYXRjaGluZ0NvbW1pdFNldHMnLCAo
KSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWls
ZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5
bmMtc2xhdmUnLApAQCAtNDEwLDMwICs0MDksMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWls
ZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydydW5uaW5nJywgJ3Bl
bmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5k
aW5nJywgJ3BlbmRpbmcnXSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1
aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0
U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
aWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsK
ICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAg
ICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3J1bm5pbmcnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ3J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3Mo
J0Nhbk9ubHlSZXVzZUNvbXBsZXRlZEJ1aWxkUmVxdWVzdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdl
YmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAg
ICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC00NDUsMjcgKzQ0NCwyNyBAQCBk
ZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdh
aXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRh
YmFzZSgpKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRz
J11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
JzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21w
bGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
aWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKICAgICAgICAgICAg
IHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IDk5OX19
OwpAQCAtNDgxLDU1ICs0ODAsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVp
bGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVx
dWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVz
J10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250
ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAn
c3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAg
IFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxl
OiBudWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsxXS5pZCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlz
aW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJzknKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNpb24sICcxMC4x
MSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11b
MV0uaWQsIDkzMTE2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRz
J11bMV0ucmVwb3NpdG9yeSwgJzExJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMzNik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcxMScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5Mjcz
NicpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNv
bW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcyMDAnKTsKLQotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQs
IDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5z
dGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydj
b21taXRzJ11bMF0uaWQpLCA4NzgzMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICc5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVB
Mjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcxMScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5v
cmRlciksIDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0
U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcyMDAn
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCksIDQw
Mik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyKSwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQpLCA0MDEpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVszXS5pZCksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZv
cm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTUzNyw1NSArNTM2LDU1IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNl
cnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1
aWxkLXdlYmtpdD91c2VMZWdhY3lJZFJlc29sdXRpb249dHJ1ZScpOwogICAgICAgICB9KS50aGVu
KChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMn
LCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2
aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LCB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQsIDQwMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsxXS5pZCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7
Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVz
QnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5NjMzNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBu
dWxsfV0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzBd
LmlkLCA4NzgzMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cydd
WzBdLnJlcG9zaXRvcnksICdtYWNPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCwgOTMxMTYpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnV2ViS2l0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJldmlz
aW9uLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
cyddWzJdLmlkLCA5NjMzNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMl0ucmV2aXNpb24sICcxOTI3MzYnKTsKLQotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQs
IDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0ZXN0J10pOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5p
ZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0
U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21lIHRlc3QnXSk7Ci0K
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJd
LmlkLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMl0ub3JkZXIsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21t
aXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uaWQsIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmNv
bW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsIFsnc29tZSB0ZXN0J10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAu
MTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnV2ViS2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJldmlzaW9u
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnY29tbWl0cyddWzJdLmlkKSwgOTYzMzYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0b3J5LCAnV2ViS2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9u
LCAnMTkyNzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQp
LCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnc29t
ZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxh
dGZvcm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQpLCA0MDEp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgWydzb21lIHRlc3QnXSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1p
dFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCBbJ3Nv
bWUgdGVzdCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU5NSw3ICs1OTQsNyBAQCBk
ZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3Rz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0
KTsKIAogICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAgICAgICAg
ICAgICBhc3NlcnQodGVzdCk7CkBAIC02MDMsOTQgKzYwMiw5NCBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9
IFBsYXRmb3JtLmZpbmRCeUlkKDY1KTsKICAgICAgICAgICAgIGFzc2VydChwbGF0Zm9ybSk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwNCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA5
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0
ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3Jt
KCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBd
Lm9yZGVyKCksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9y
bSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpKSwgMCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVp
bGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5pZCgpLCA3MDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdy
b3VwSWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSksIDEpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCkgaW5zdGFuY2Vv
ZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhh
c0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhh
c1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5pc1Bl
bmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzA2KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sy
XS5pZCgpKSwgNzA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3JtKCksIHBsYXRmb3Jt
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzJdLm9yZGVyKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJd
LmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5v
ayghYnVpbGRSZXF1ZXN0c1syXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5v
ayghYnVpbGRSZXF1ZXN0c1syXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KGJ1aWxkUmVxdWVzdHNbMl0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlkKCks
IDcwNyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3Jv
dXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10u
dGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzNdLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcwNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgOTAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3Qo
KSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7
CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzRmluaXNoZWQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzU3RhcnRlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmlzUGVuZGluZygpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCiAgICAgICAgICAgICBjb25zdCBvc3ggPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1l
KCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCks
ICdtYWNPUycpOwogCiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktp
dCcpOwogCiAgICAgICAgICAgICBjb25zdCBqc2MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIxMyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3JlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRD
b3JlJyk7CiAKICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
c1swXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOwog
CiAgICAgICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uY29t
bWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkoanNjKSwgJzE5MTYyMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4
NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
J293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25k
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVw
b3NpdG9yeShvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdC5yZXZpc2lv
bigpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CiAKICAgICAgICAgICAgIGNvbnN0IGZpcnN0
V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7
CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFdlYktpdENvbW1pdCA9IHNlY29uZENvbW1pdFNl
dC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9u
KCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrc2Vjb25kV2Vi
S2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7CiAKICAgICAgICAgICAgIGNvbnN0IGZp
cnN0U0pDQ29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShqc2MpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0U0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25l
ZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFNKQ0NvbW1pdC50
aW1lKCksIDE0NTY5NjA3OTUzMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZp
cnN0U0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFNKQ0NvbW1pdC50aW1lKCksIDE0NTY5NjA3OTUzMDAp
OwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRTSkNDb21taXQgPSBzZWNvbmRDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeShqc2MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29u
ZFNKQ0NvbW1pdC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCgrc2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRTSkNDb21taXQucmV2aXNpb24oKSwgJ293
bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK3NlY29uZFNK
Q0NvbW1pdC50aW1lKCksIDE0NjIyMzA4MzcxMDApCiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC02OTgsNyArNjk3LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFRlc3RHcm91cFdpdGhPd25lckNvbW1p
dE5vdEluQ29tbWl0U2V0KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGF3YWl0IE1h
bmlmZXN0LmZldGNoKCk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSBhd2FpdCBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgY29uc3QgdGVzdCA9
IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgYXNzZXJ0KHRlc3QpOwpAQCAtNzA4LDMzICs3
MDcsMzMgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAK
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gYnVpbGRSZXF1ZXN0c1swXTsKIAotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDcwNCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QudGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5vcmRlcigpLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgNzA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5vcmRlcigpKSwgMCk7
CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBD
b21taXRTZXQpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgp
KTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3QuaGFzU3RhcnRlZCgpKTsKICAgICAg
ICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwog
CiAgICAgICAgIGNvbnN0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeC5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwg
J1dlYktpdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dl
YktpdCcpOwogCiAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMjEzKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGpzYy5uYW1lKCksICdKYXZhU2NyaXB0Q29yZScpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3JlJyk7CiAK
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCks
ICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LnRv
cExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBvbmUuaWQoKSA8IGFu
b3RoZXIuaWQoKSksIFtvc3gsIHdlYmtpdF0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNl
dC50b3BMZXZlbFJlcG9zaXRvcmllcygpLnNvcnQoKG9uZSwgYW5vdGhlcikgPT4gcGFyc2VJbnQo
b25lLmlkKCkpIC0gcGFyc2VJbnQoYW5vdGhlci5pZCgpKSksIFtvc3gsIHdlYmtpdF0pOwogICAg
ICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LnJlcG9zaXRvcnlHcm91cCgpLmFjY2VwdHMoY29t
bWl0U2V0KSk7CiAgICAgfSk7CiAKQEAgLTc0NCw3ICs3NDMsNyBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAg
ICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAgICAgICAgICAgICBhc3NlcnQodGVz
dCk7CkBAIC03NTIsNzkgKzc1MSw3OSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRC
eUlkKDY1KTsKICAgICAgICAgICAgIGFzc2VydChwbGF0Zm9ybSk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCksIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0u
aWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sw
XS5vcmRlcigpKSwgMCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5j
b21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3
MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRl
c3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5vcmRlcigpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCks
IHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhhc1N0YXJ0ZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5pZCgpKSwgNzAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJd
LnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCkpLCAy
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpIGlu
c3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1syXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1syXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNb
Ml0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlkKCksIDcwMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnBsYXRmb3JtKCksIHBs
YXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVy
KCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbM10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwgdGVzdCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1
ZXN0c1szXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBh
c3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwogCiAgICAgICAgICAgICBsZXQgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCg5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKIAogICAg
ICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAg
IGxldCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RD
b21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKIAogICAgICAgICAgICAgbGV0IHNlY29u
ZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1p
dFNldCgpLCBzZWNvbmRDb21taXRTZXQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmly
c3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjEx
IDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwg
JzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogCiAgICAg
ICAgICAgICBsZXQgb3N4Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9y
eShvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAn
MTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LCBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0U2V0LmNv
bW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CiAKICAgICAgICAgICAgIGxldCBmaXJzdFdlYktpdENv
bW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwg
MTQ0NTk0NTgxNjg3OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RXZWJL
aXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOwogCiAgICAg
ICAgICAgICBsZXQgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRXZWJL
aXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5Mjcz
NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTgzNCw3
ICs4MzMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChi
dWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg0NCw3ICs4NDMsNyBA
QCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9y
VHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVl
c3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgs
IDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3Ro
LCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1NCw3ICs4NTMsNyBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFi
bGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRpbmcoKSk7CkBAIC04NzYs
NyArODc1LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigo
YnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhh
c1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNQ
ZW5kaW5nKCkpOwpAQCAtODk5LDMyICs4OTgsMzIgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQn
KTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSwgMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDYw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlkKCks
IDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3Jv
dXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzRdLmlkKCksIDcxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzEyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpLCAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlkKCksIDcxMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgs
IDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFd
LmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5pZCgp
KSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcw
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSksIDcxMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0
XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLmlkKCkpLCA3MTEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0udGVz
dEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgNzEyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91
cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcxMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0R3JvdXBJZCgp
KSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTkzNywz
MCArOTM2LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5hbGwo
KS5maW5kKCh0cmlnZ2VyYWJsZSkgPT4gdHJpZ2dlcmFibGUubmFtZSgpID09ICdidWlsZC13ZWJr
aXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3Jv
dXBzKCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2Vy
YWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGdyb3VwcyA9
IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVwb3Np
dG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgp
LCAnd2Via2l0LWdpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5uYW1l
KCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLm5hbWUoKSwgJ3dlYmtpdC1naXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMV0ubmFtZSgpLCAnd2Via2l0LXN2bicpOwogICAgICAgICAgICAgcmV0dXJuIEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAg
fSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCksIDcwMik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzFdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlk
KCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5yZXBv
c2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNF0uaWQoKSwgMTcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s0XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDE3MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sw
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpLCAxNzAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnJlcG9zaXRvcnlH
cm91cCgpLCBncm91cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbN10uaWQoKSwgMTcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1s3XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91
cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlk
KCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgp
LCBncm91cHNbMV0pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s0XS5pZCgpKSwgMTcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLmlk
KCkpLCAxNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzVdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSksIDE3MDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgMTcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk3MSwzMiArOTcwLDMyIEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVp
bGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MTApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCksIDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzExKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCksIDYw
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRl
cigpLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCks
IDcxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3Jv
dXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5pZCgpLCA3MTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCksIDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlkKCksIDcwMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJZCgpLCA2MDApOwot
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSwg
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpLCA3MDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10udGVzdEdyb3VwSWQo
KSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzdd
Lm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5vcmRl
cigpKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0c1sxXS5pZCgpKSwgNzExKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSks
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSksIDcxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCkpLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNd
LmlkKCkpLCA3MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlk
KCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpKSwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpKSwg
NzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzVdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSksIDcwMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2
XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCkpLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCA3MDMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10udGVz
dEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpKSwgMyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xMDA4LDM2ICsxMDA3LDM2IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3Jk
JywKICAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVwZGF0ZXMKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAw
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCwgNDAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2FuY2VsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcpOwot
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnRl
c3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVsyXS5pZCwgNzAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0
Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAz
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ11bM10ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3Bv
bnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworCisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5vcmRlciksIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NhbmNlbGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcw
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyKSwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3Jt
LCAnNjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
MV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7CisKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciksIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1p
dFNldCksIDQwMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0u
dGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bM10ub3JkZXIpLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICc2NScpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsKICAgICAgICAgICAgIH0sICgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdTaG91bGQgbm90IGJlIHJlYWNoZWQn
KTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMTUxOTEwYmFlYjI1
NTYwMjZiOTJmMGEzMWJkMTkwNTY4YmZhYjcxMy4uMjg1NjlmMDYzNzMwNGUzYTYyY2Y3NzAwOTIz
OTNmN2YwZTczNjU5NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCkBAIC0xMTksMjIgKzExOSwyMiBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKIAogICAgIGZ1bmN0aW9u
IGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdCwgc3VibWl0dGVkKQogICAg
IHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsncmV2aXNpb24nXSwgc3VibWl0dGVkWydy
ZXZpc2lvbiddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG5ldyBEYXRlKGNvbW1pdFsndGltZSdd
KS50b0lTT1N0cmluZygpLCBzdWJtaXR0ZWRbJ3RpbWUnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRbJ21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ25hbWUn
XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvckVtYWlsJ10sIHN1Ym1pdHRl
ZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRbJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZFsncmV2aXNpb24nXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChuZXcgRGF0ZShjb21taXRbJ3RpbWUnXSkudG9JU09TdHJpbmcoKSwgc3VibWl0
dGVkWyd0aW1lJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydtZXNzYWdl
J10sIHN1Ym1pdHRlZFsnbWVzc2FnZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFsnYXV0aG9yTmFtZSddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydhdXRob3JFbWFpbCddLCBzdWJtaXR0ZWRbJ2F1
dGhvciddWydhY2NvdW50J10pOwogICAgICAgICBpZihzdWJtaXR0ZWRbJ3ByZXZpb3VzQ29tbWl0
J10pIHsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10pOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsncHJldmlv
dXNDb21taXQnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGRlc2Ny
aWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+LycsICgpID0+IHsKICAgICAgICAgaXQoInNo
b3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5n
IHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0JykudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVw
b3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCkBAIC0xNDYsOCArMTQ2LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1p
dHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNTUsMTggKzE1
NSwxOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cykudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
LycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgY29u
c3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ107CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0c1swXSwg
c3VibWl0dGVkQ29tbWl0c1swXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1l
QXNPbmVTdWJtaXR0ZWQoY29tbWl0c1sxXSwgc3VibWl0dGVkQ29tbWl0c1sxXSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0c1syXSwgc3Vi
bWl0dGVkQ29tbWl0c1syXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
Ml1bJ3ByZXZpb3VzQ29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzJdWydwcmV2aW91c0NvbW1pdCddLCBjb21taXRz
WzFdWydpZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTc0LDE5ICsx
NzQsMTkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRzKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09T
WC8nKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHN1Ym1pdHRlZENvbW1pdHMgPSBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgc3VibWl0
dGVkQ29tbWl0cy5sZW5ndGgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzBdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzVdWydyZXZpc2lvbiddKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgc3VibWl0dGVk
Q29tbWl0c1s0XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMl1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbM11bJ3JldmlzaW9uJ10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzNdWydyZXZpc2lvbiddLCBzdWJt
aXR0ZWRDb21taXRzWzJdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1s0XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1sxXVsncmV2aXNpb24n
XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbNV1bJ3JldmlzaW9uJ10s
IHN1Ym1pdHRlZENvbW1pdHNbMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgc3VibWl0dGVkQ29tbWl0cy5sZW5ndGgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbidd
LCBzdWJtaXR0ZWRDb21taXRzWzVdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1s0
XVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbMl1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbM11bJ3JldmlzaW9uJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzNdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzJdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1s0XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1sxXVsn
cmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNb
NV1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMF1bJ3JldmlzaW9uJ10pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTk0LDcgKzE5NCw3IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2Nv
bW1pdHMvPHJlcG9zaXRvcnk+L29sZGVzdCcsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCBy
ZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9z
aXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Jl
cG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApAQCAtMjAyLDggKzIwMiw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1p
dHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9vbGRlc3QnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTIxNCw4ICsyMTQsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRz
LyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9vbGRlc3Qn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0
Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF0pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjI3LDkgKzIyNyw5IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL29s
ZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
c3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVs1XVsncmV2aXNpb24nXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVs1XVsncmV2
aXNpb24nXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMzcs
NyArMjM3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vbGF0ZXN0JywgKCkgPT4gewogICAg
ICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUg
bm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0Jyku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNDUsOCArMjQ1LDggQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICdu
YW1lJzogJ1dlYktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhdGVzdCcp
OwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjU3LDggKzI1Nyw4IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0L2xhdGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1p
dHMnXS5zbGljZSgpLnBvcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTI3
MCw5ICsyNzAsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNp
b25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCkBAIC0yODQsMTMgKzI4NCwxMyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRz
LyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLnF1ZXJ5KGBERUxFVEUgRlJP
TSB0ZXN0cyBXSEVSRSB0ZXN0X25hbWUgPSAnQS1UZXN0J2ApOwogCiAgICAgICAgICAgICBjb25z
dCBwbGF0Zm9ybXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3BsYXRmb3JtcycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICBjb25zdCB0
ZXN0X21ldHJpY3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3Rlc3RfbWV0cmljcycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RfbWV0cmljcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RfbWV0cmljcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAg
ICBjb25zdCB0ZXN0cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdHMnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgIGFzc2VydCh0ZXN0X21ldHJp
Y3NbMF0uaWQgIT0gdGVzdHNbMF0uaWQpOwogCkBAIC0zMDIsNyArMzAyLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0
cy88cmVwb3NpdG9yeT4vbGFzdC1yZXBvcnRlZCcsICgpID0+IHsKICAgICAgICAgaXQoInNob3Vs
ZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJl
cG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTMxNCw4ICszMTQsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3Bv
bnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIApAQCAtMzIzLDggKzMyMyw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCkBAIC0zNDAsOCArMzQwLDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1y
ZXBvcnRlZCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXS5zbGlj
ZSgpLnBvcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTM1Myw5ICszNTMs
OSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cydd
WzBdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9u
Q29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTM3MiwzMSArMzcyLDMxIEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzY3JnRvPTM3MCcpOwogICAgICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXN1
bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0
c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJldmlzaW9uLCAnU2ll
cnJhMTZDNjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJl
dmlzaW9uLCAnU2llcnJhMTZDNjgnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM3MCZ0bz0zNjcnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVz
dWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MjAwJnRvPTI5OScpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRz
ID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
T1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjkmdG89NDMyJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBy
ZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQgPSByZXN1bHRzWzBdOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNpb24sICdTaWVycmExNkQz
MicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXQucmV2aXNpb24s
ICdTaWVycmExNkQzMicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtNDA0LDcgKzQwNCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+Lzxjb21taXQ+JywgKCkg
PT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0
aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
MjEwOTQ5JykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlO
b3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC00MTYsNyArNDE2
LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScpOwogICAgICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyOCw4ICs0MjgsOCBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CiAgICAgICAgICAgICAg
ICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAogICAgICAgICAgICAgICAgICAgICByZXZpc2lv
bjogJzIxMDk1MCcsCkBAIC00NDcsOCArNDQ3LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5Jyk7
CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0
Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMV0pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNDU4LDggKzQ1OCw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JS
ZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RK
U09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7
CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC8yMTA5NDk/cHJlZml4LW1hdGNoPWZhbHNlJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsw
XSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7CiAgICAgICAgIH0pOwogCkBAIC00
NjgsOCArNDY4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9
IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OT9wcmVmaXgt
bWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVT
dWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRz
J11bMV0pOwogICAgICAgICB9KTsKIApAQCAtNDc4LDcgKzQ3OCw3IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JS
ZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RK
U09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7
CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC8yMTA5ND9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdBbWJpZ3Vv
dXNSZXZpc2lvblByZWZpeCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgic2hvdWxkIG5v
dCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRoZXJlIGlzIGEgY29tbWl0
IHJldmlzaW9uIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQgcmV2aXNpb24gcHJlZml4IiwgYXN5
bmMgKCkgPT4gewpAQCAtNDg2LDggKzQ4Niw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoY29tbWl0
c09uZVByZWZpeE9mVGhlT3RoZXIpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBjb21taXRzT25lUHJlZml4T2ZUaGVP
dGhlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8yMTA5ND9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRz
J11bMF0sIGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyWydjb21taXRzJ11bMF0pOwogICAgICAg
ICB9KTsKIApAQCAtNDk2LDcgKzQ5Niw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lv
bkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygn
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBj
b25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8y
MTA5MD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoInNob3VsZCBub3QgbWF0Y2ggcHJlZml4IGFuZCByZXR1cm4gJ1Vua293bkNv
bW1pdCcgd2hlbiBzdm4gY29tbWl0IHN0YXJ0cyB3aXRoICdyJyBwcmVmaXggYW5kIHRoZXJlIGlz
IG5vIGV4YWN0IG1hdGNoIiwgYXN5bmMgKCkgPT4gewpAQCAtNTA0LDcgKzUwNCw3IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9u
Q29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC9yMjEwOTU/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3du
Q29tbWl0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJzaG91bGQgaGFuZGxlIGNvbW1p
dCByZXZpc2lvbiB3aXRoIHNwYWNlIiwgKCkgPT4gewpAQCAtNTE1LDEyICs1MTUsMTIgQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1MlMjBYLzEwLjExLjEwJTIwU2llcnJhMTZDNjcnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdCA9IHJlc3VsdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0LmlkLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0LnJldmlzaW9uLCAnMTAuMTEuMTAgU2llcnJhMTZDNjcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29tbWl0LmlkKSwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJzEwLjExLjEwIFNpZXJyYTE2
QzY3Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUzOCwxMyArNTM4LDEz
IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
XSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9vd25lci1yZXZpc2lv
bj0xMC4xMiUyMDE2QTMyMycpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwg
MSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBvd25lZENvbW1pdCA9IHJlc3VsdHMuY29tbWl0
c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21taXQucmVwb3NpdG9y
eSwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9u
LCAnMjEwOTUwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93bmVkQ29tbWl0Lmlk
LCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3duZWRD
b21taXQucmVwb3NpdG9yeSksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvd25lZENvbW1pdC5yZXZpc2lvbiwgJzIxMDk1MCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvd25lZENvbW1pdC5pZCksIDIpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCkBAIC01NTgsOCArNTU4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvMS9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cywgW10pOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC01NzMsOCArNTczLDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9v
d25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIwMTZBMzI0JykKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRz
LmNvbW1pdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KQogICAgIH0pOwpAQCAtNTgyLDcgKzU4Miw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+Lz9w
cmVjZWRpbmdSZXZpc2lvbj08Y29tbWl0LTE+Jmxhc3RSZXZpc2lvbj08Y29tbWl0LTI+JywgKCkg
PT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0
aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
P2Zyb209MjEwOTAwJnRvPTIxMTAwMCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3Vu
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
IApAQCAtNTk0LDcgKzU5NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJl
Y2VkaW5nUmV2aXNpb249MjEwOTAwJmxhc3RSZXZpc2lvbj0yMTEwMDAnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MDcsOCArNjA3LDggQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5NDkmbGFzdFJldmlz
aW9uPTIxMDk1MCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21t
aXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjIxLDcgKzYy
MSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249
MjEwOTUwJmxhc3RSZXZpc2lvbj0yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRDb21taXRSYW5nZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29tbWl0UmFuZ2UnKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjM1LDggKzYzNSw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2
aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XS5tYXAoKGNvbW1pdCkgPT4gY29tbWl0WydyZXZpc2lvbiddKSwgWycxMC4xMiAxNkIyNTU1Jywg
JzEwLjEyIDE2QjI2NTcnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3Jldmlz
aW9uJ10pLCBbJzEwLjEyIDE2QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIApAQCAtNjUwLDcgKzY1MCw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNp
b249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNv
bnNpc3RlbnRDb21taXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApAQCAtNjY0LDcgKzY2NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1p
dHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249
MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNvbnNp
c3RlbnRDb21taXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIApAQCAtNjc4LDggKzY3OCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2aXNpb249MTAu
MTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Nv
bW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02OTMsOCAr
NjkzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9u
PTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTcwOCw4ICs3MDgsOCBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEw
OTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQo
cmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb21t
aXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTQ5JywKQEAgLTc0
Myw4ICs3NDMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ3Jmxh
c3RSZXZpc2lvbj0yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVswXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11b
MV0pOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCmluZGV4IGJkYTI3NGZi
MTk5NmQ0N2E2MTIxNDNmY2Y1MjJkNmQ5OTRjNGVmZDguLmFjNzE5ZTlkYzgwMWUyYTYwM2QxZDMz
OGEwYWY5NmU3MTc5NmYwNzAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCkBAIC0xMyw3ICsxMyw3
IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNo
b3VsZCBnZW5lcmF0ZSBhbiBlbXB0eSBtYW5pZmVzdCB3aGVuIGRhdGFiYXNlIGlzIGVtcHR5Iiwg
KCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL21hbmlmZXN0JykudGhlbigobWFuaWZlc3QpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoT2JqZWN0LmtleXMobWFuaWZlc3QpLnNvcnQoKSwgWydhbGwnLCAnYnVnVHJhY2tl
cnMnLCAnYnVpbGRlcnMnLCAnZGFzaGJvYXJkJywgJ2Rhc2hib2FyZHMnLAorICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgpLCBbJ2Fs
bCcsICdidWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJvYXJkcycs
CiAgICAgICAgICAgICAgICAgJ2ZpbGVVcGxvYWRTaXplTGltaXQnLCAnbWF4Um9vdFJldXNlQWdl
SW5EYXlzJywgJ21ldHJpY3MnLCAncGxhdGZvcm1Hcm91cHMnLCAncmVwb3NpdG9yaWVzJywgJ3Np
dGVUaXRsZScsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cycsICdzdW1tYXJ5UGFnZXMnLCAndGVz
dEFnZVRvbGVyYW5jZUluSG91cnMnLCAndGVzdHMnLCAndHJpZ2dlcmFibGVzJ10pOwogCkBAIC00
NSwyMiArNDUsMjIgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdidWdfdHJhY2tlcnMn
LCBidWd6aWxsYURhdGEpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAgICAgICB9KS50aGVu
KChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVn
VHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJsOiAnaHR0cHM6Ly93ZWJraXQu
b3JnL2IvJG51bWJlcicsCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJsOiAnaHR0cHM6Ly93
ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICAgICAgbmV3QnVnVXJsOiAnaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvJywgcmVwb3NpdG9yaWVzOiBudWxsfX0pOwogCiAgICAgICAgICAg
ICBsZXQgbWFuaWZlc3QgPSBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChjb250ZW50KTsKICAg
ICAgICAgICAgIGxldCB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgxKTsKICAgICAgICAg
ICAgIGFzc2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5h
bWUoKSwgJ0J1Z3ppbGxhJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5idWdV
cmwoMTIzKSwgJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxh
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwg
J2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIGNsZWFyIEJ1ZyBhbmQgQnVnVHJh
Y2tlciBzdGF0aWMgbWFwcyB3aGVuIHJlc2V0IiwgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2Fp
dCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdidWdfdHJhY2tlcnMnLCBidWd6aWxsYURh
dGEpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczov
L3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDogJ2h0dHBz
Oi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAogICAgICAgICAgICAgbmV3QnVnVXJsOiAnaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvJywgcmVwb3NpdG9yaWVzOiBudWxsfX0pOwogCiAgICAgICAgIE1h
bmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwpAQCAtOTIsMjggKzkyLDI4IEBAIGRl
c2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7CiAgICAgICAgICAgICBhc3NlcnQod2Vi
a2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdo
dHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9y
Zy8xMjMnKTsKIAogICAgICAgICAgICAgbGV0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5
KTsKICAgICAgICAgICAgIGFzc2VydChtYWNvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
bWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCht
YWNvcy5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgICAgICBsZXQgaW9zID0gUmVwb3NpdG9y
eS5maW5kQnlJZCgyMik7CiAgICAgICAgICAgICBhc3NlcnQoaW9zKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOwogCiAgICAgICAgICAgICBsZXQgdHJhY2tlciA9IEJ1
Z1RyYWNrZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQodHJhY2tlcik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxsYScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtpdC5v
cmcvYi8xMjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5ld0J1Z1VybCgp
LCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRyYWNrZXIucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8vd2Via2l0Lm9y
Zy9iLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmV3QnVn
VXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwogCiAgICAg
ICAgICAgICB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgyKTsKICAgICAgICAgICAgIGFz
c2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5hbWUoKSwg
J1JhZGFyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZSh0cmFja2VyLnJlcG9zaXRvcmllcygpKSwgW2lvcywgbWFjb3NdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ1JhZGFyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZSh0cmFja2VyLnJl
cG9zaXRvcmllcygpKSwgW2lvcywgbWFjb3NdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTEzMSwxOSArMTMxLDE5IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkg
ewogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7CiAg
ICAgICAgICAgICBhc3NlcnQod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVy
bEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMp
LCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0Lm93bmVkUmVwb3NpdG9yaWVzKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBsZXQgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKICAgICAgICAgICAgIGFzc2VydChv
c3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdPUyBYJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3Np
dG9yeS5maW5kQnlJZCgzNSldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gu
bmFtZSgpLCAnT1MgWCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvc3gu
b3duZWRSZXBvc2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUpXSk7CiAKICAgICAg
ICAgICAgIGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFz
c2VydChpb3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3Mub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5vd25lZFJlcG9zaXRvcmllcygpLCBudWxs
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBkZXNjcmliZSgn
L2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21h
bmlmZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZGVycywgeworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CiAgICAgICAgICAgICAgICAgJzEnOiB7
bmFtZTogJ1NvbWVCdWlsZGVyJywgYnVpbGRVcmw6ICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcv
YnVpbGRlcnMvJGJ1aWxkZXJOYW1lL2J1aWxkLyRidWlsZFRhZyd9LAogICAgICAgICAgICAgICAg
ICcyJzoge25hbWU6ICdTb21lT3RoZXJCdWlsZGVyJywgYnVpbGRVcmw6IG51bGx9CiAgICAgICAg
ICAgICB9KTsKQEAgLTE2NSwxMyArMTY1LDEzIEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0Jywg
ZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgYnVpbGRlciA9IEJ1aWxkZXIuZmluZEJ5
SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lQnVpbGRlcicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9Tb21lQnVpbGRlci9idWlsZC8xMjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAnaHR0cHM6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycpOwogCiAgICAgICAg
ICAgICBidWlsZGVyID0gQnVpbGRlci5maW5kQnlJZCgyKTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZGVyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVP
dGhlckJ1aWxkZXInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLnVybEZvckJ1
aWxkKDEyMyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIu
bmFtZSgpLCAnU29tZU90aGVyQnVpbGRlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0yMDIsMTQgKzIwMiwxNCBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dC50ZXN0cywgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRl
c3RzLCB7CiAgICAgICAgICAgICAgICAgIjEiOiB7Im5hbWUiOiAiU29tZVRlc3QiLCAicGFyZW50
SWQiOiBudWxsLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjIiOiB7Im5hbWUiOiAi
U29tZU90aGVyVGVzdCIsICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxsfSwKICAgICAgICAg
ICAgICAgICAiMyI6IHsibmFtZSI6ICJDaGlsZFRlc3QiLCAicGFyZW50SWQiOiAiMSIsICJ1cmwi
OiBudWxsfSwKICAgICAgICAgICAgICAgICAiNCI6IHsibmFtZSI6ICJHcmFuZENoaWxkIiwgInBh
cmVudElkIjogIjMiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICB9KTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5tZXRyaWNzLCB7CiAgICAgICAgICAgICAgICAgJzUn
OiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMScsIGFnZ3JlZ2F0b3I6IG51bGx9LAogICAgICAgICAg
ICAgICAgICc2Jzoge25hbWU6ICdUaW1lJywgdGVzdDogJzInLCBhZ2dyZWdhdG9yOiAnVG90YWwn
fSwKICAgICAgICAgICAgICAgICAnNyc6IHtuYW1lOiAnTWFsbG9jJywgdGVzdDogJzInLCBhZ2dy
ZWdhdG9yOiAnVG90YWwnfSwKQEAgLTI0NCw3ICsyNDQsNyBAQCBkZXNjcmliZSgnL2FwaS9tYW5p
ZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChpb3NHcm91cCk7CiAgICAg
ICAgICAgICBhc3NlcnQobWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2
ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKICAgICAgICAg
ICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChzb21lVGVzdCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAgICAgICAgIGFzc2Vy
dChtYXZlcmlja3MuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI1Myw5ICsyNTMsOSBAQCBkZXNj
cmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydCht
YXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAgICAgICAgICBhc3Nl
cnQobWF2ZXJpY2tzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFsbG9jKSk7CiAgICAgICAgICAg
ICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNHcm91cCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25l
IDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLm5hbWUo
KSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogICAgICAgICAgICAgYXNzZXJ0KGlvczlpcGhvbmU1cy5o
YXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNU
ZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhh
c1Rlc3QoY2hpbGRUZXN0KSk7CkBAIC0yNjQsNjMgKzI2NCw2MyBAQCBkZXNjcmliZSgnL2FwaS9t
YW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVz
Lmhhc01ldHJpYyhzb21lT3RoZXJUZXN0VGltZSkpOwogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5
aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAgICAgICAgICAgIGFz
c2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMuZ3JvdXAoKSwgaW9zR3JvdXApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgpLCBpb3NHcm91cCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1BsYXRmb3JtcyA9IG1hY0dyb3VwLnBsYXRmb3Jtcygp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJpY2tzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXNbMF0sIG1hdmVyaWNrcyk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGlvc1BsYXRmb3JtcyA9IGlvc0dyb3VwLnBsYXRmb3JtcygpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlwaG9uZTVzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXNbMF0sIGlvczlpcGhvbmU1cyk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1lKCksICdTb21lVGVzdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0LnBhcmVudFRlc3QoKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0LnBhdGgoKSwgW3NvbWVUZXN0
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29t
ZVRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdC5wYXJlbnRU
ZXN0KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVz
dC5wYXRoKCksIFtzb21lVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFzb21lVGVzdC5vbmx5
Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNv
bWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21lVGVzdE1ldHJpY10pOwotCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMubmFtZSgpLCAnVGltZScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JOYW1lKCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmxhYmVsKCksICdUaW1l
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0TWV0cmljLmNoaWxkTWV0
cmljcygpLCBjaGlsZFRlc3QubWV0cmljcygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lVGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRlc3QnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0LnBhcmVudFRlc3QoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVPdGhlclRlc3QucGF0aCgpLCBb
c29tZU90aGVyVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21l
VGVzdC5jaGlsZFRlc3RzKCksIFtjaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc29tZVRlc3QubWV0cmljcygpLCBbc29tZVRlc3RNZXRyaWNdKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLm5hbWUoKSwgJ1RpbWUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5hZ2dyZWdh
dG9yTmFtZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVz
dE1ldHJpYy5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzb21lVGVzdE1ldHJpYy5jaGlsZE1ldHJpY3MoKSwgY2hpbGRUZXN0Lm1ldHJpY3MoKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMuZnVsbE5hbWUo
KSwgJ1NvbWVUZXN0IDogVGltZScpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5wYXJlbnRUZXN0KCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhdGgoKSwgW3NvbWVP
dGhlclRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZU90aGVyVGVzdC5vbmx5Q29udGFp
bnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVPdGhl
clRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90
aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uYWdncmVnYXRvck5hbWUoKSwg
J1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNz
KClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5h
bWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5hZ2dyZWdh
dG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJU
ZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGlsZE1ldHJpY3MoKS5s
ZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmlj
cygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9jIDogVG90YWwnKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVz
dCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21l
VGVzdCwgY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNv
bWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1l
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNz
KClbMF0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3Rh
bCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmlj
cygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhl
clRlc3QgOiBUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5hZ2dyZWdhdG9y
TmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3Ro
ZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGlsZE1l
dHJpY3MoKS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVP
dGhlclRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9j
IDogVG90YWwnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5u
YW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGls
ZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWNoaWxkVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5jaGlsZFRlc3RzKCksIFtncmFu
ZENoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5tZXRyaWNz
KCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QubWV0cmlj
cygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRU
ZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6
IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUo
KSwgJ0dyYW5kQ2hpbGQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxkVGVz
dC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5kQ2hpbGRU
ZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVzdC5jaGls
ZFRlc3RzKCksIFtncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFt
ZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6IFRpbWUnKTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUoKSwgJ0dyYW5kQ2hpbGQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5wYXJlbnRUZXN0
KCksIGNoaWxkVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5k
Q2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5kQ2hpbGRUZXN0XSk7
CiAgICAgICAgICAgICBhc3NlcnQoZ3JhbmRDaGlsZFRlc3Qub25seUNvbnRhaW5zU2luZ2xlTWV0
cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENoaWxkVGVzdC5jaGls
ZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxkVGVzdC5t
ZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxk
VGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVUZXN0IFx1
MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBUaW1lJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVzdHMoKSwgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0
Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3Qg
XHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM3NCw1OSArMzc0LDU5IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUo
KSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51cmxGb3JSZXZp
c2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9zV2Via2l0MSA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoMTAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtp
dDEubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJraXQx
Lm93bmVySWQoKSwgOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJraXQxLnVybEZv
clJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3NXZWJraXQxLm93bmVySWQoKSks
IDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS51cmxGb3JSZXZp
c2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAg
IGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNoYXJl
ZCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNo
YXJlZC5uYW1lKCksICdTaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
aGFyZWQubmFtZSgpLCAnU2hhcmVkJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNvbWVUZXN0ID0g
VGVzdC5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1l
KCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0
Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNvbWVPdGhlclRlc3Qg
PSBUZXN0LmZpbmRCeUlkKDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRl
c3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOwogCiAgICAgICAgICAg
ICBjb25zdCBjaGlsZFRlc3QgPSBUZXN0LmZpbmRCeUlkKDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGlvczlpcGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLm5hbWUoKSwgJ2lP
UyA5IGlQaG9uZSA1cycpOwogCiAgICAgICAgICAgICBjb25zdCBtYXZlcmlja3MgPSBQbGF0Zm9y
bS5maW5kQnlJZCg0Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2ZXJpY2tzLm5hbWUo
KSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1h
dmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKIAogICAgICAgICAgICAgY29uc3Qg
c2llcnJhID0gUGxhdGZvcm0uZmluZEJ5SWQoMTA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2llcnJhLm5hbWUoKSwgJ1RydW5rIFNpZXJyYSBNYWNC
b29rUHJvMTEsMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxs
KCkubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJs
ZS5hbGwoKS5sZW5ndGgsIDMpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNvc1RyaWdnZXJhYmxl
ID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIG1hdmVyaWNr
cyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdi
dWlsZC53ZWJraXQub3JnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjb3NU
cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJU
ZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIG1hdmVy
aWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIG1hdmVy
aWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgbWF2ZXJpY2tz
KSwgbWFjb3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IGlvc1RyaWdnZXJhYmxl
ID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgaW9z
OWlwaG9uZTVzKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChpb3NUcmlnZ2VyYWJsZSwg
bWFjb3NUcmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zVHJpZ2dlcmFi
bGUubmFtZSgpLCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5u
b3RTdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zVHJpZ2dlcmFibGUubmFtZSgpLCAnaW9zLWJ1aWxk
LndlYmtpdC5vcmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZp
bmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1Ry
aWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlU
ZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1RyaWdnZXJhYmxl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0
Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NUcmlnZ2VyYWJs
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVz
dENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NUcmlnZ2VyYWJsZSk7
CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5
VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIHNpZXJyYSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobWFjVHJpZ2dlcmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndlYmtpdC5vcmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1lKCksICdtYWMt
YnVpbGQud2Via2l0Lm9yZycpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY1RyaWdnZXJhYmxlLmFj
Y2VwdGVkVGVzdHMoKS5oYXMoc29tZVRlc3QpKTsKIAogICAgICAgICAgICAgY29uc3QgZ3JvdXBz
ID0gbWFjVHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBUcmlnZ2VyYWJsZVJlcG9z
aXRvcnlHcm91cC5zb3J0QnlOYW1lKGdyb3Vwcyk7CiAKICAgICAgICAgICAgIGNvbnN0IGVtcHR5
Q3VzdG9tU2V0ID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKQEAgLTQ0NSwzNSArNDQ1LDM1IEBAIGRl
c2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY3Vzb21T
ZXRXaXRoV2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcx
OTE2MjInKTsKICAgICAgICAgICAgIGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZC5zZXRSZXZp
c2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkLCAnODY0NTYnKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzBd
LnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFu
ZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNj
ZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2Up
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmlzSGlkZGVu
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0c0N1
c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29z
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoZW1wdHlDdXN0
b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2Vw
dHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCB0cnVlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRB
bmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFj
Y2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzJdLm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzJd
LnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1l
KCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzBdLnJl
cG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1
c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMo
Y3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoZW1wdHlDdXN0
b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFd
LmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhj
dXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2Up
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLm5hbWUoKSwgJ3dl
YmtpdC1hbmQtc2hhcmVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzJdLmlzSGlkZGVuKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzJdLnJlcG9zaXRv
cmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0
cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVk
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2Vw
dHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwogICAgICAgICB9KTsKICAgICB9KTsKIApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVh
c3VyZW1lbnQtc2V0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCmluZGV4IDM1MmI2MTJmNzY3NjE4NTVl
NzhmNTM2YmIzYTEzMDg5NTVhY2IxZjQuLjI2YWYzZDMwMWM1ZGEzMzQ2NjIxOTQ4N2IwMzQ3N2Nh
MjI0ZGNjYzYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKQEAgLTI0Mywx
MiArMjQzLDEyIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGlt
ZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZv
cm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3Qn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBAIGRlc2NyaWJl
KCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWlu
IExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1l
bnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWApOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yNjksMTIgKzI2OSwxMiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVu
dC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdp
dGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09
JHtyZXN1bHQucGxhdGZvcm1JZH1hJm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MiwxMiArMjgyLDEyIEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAn
VGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9w
bGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YmAp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkTWV0cmljJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTcsNyArMzE3LDcgQEAgZGVzY3JpYmUoIi9hcGkv
bWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0
Lz9wbGF0Zm9ybT00NiZtZXRyaWM9NWApLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KGZhbHNlKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CkBAIC0zMjYsMzEgKzMyNiwzMSBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVu
dC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdp
dGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQv
P3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1g
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUaW1lJ10p
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhyZXNwb25zZSku
c29ydCgpLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhy
ZXNwb25zZSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnY2x1c3RlckNvdW50JywgJ2NsdXN0
ZXJTaXplJywgJ2NsdXN0ZXJTdGFydCcsCiAgICAgICAgICAgICAgICAgICAnY29uZmlndXJhdGlv
bnMnLCAnZWxhcHNlZFRpbWUnLCAnZW5kVGltZScsICdmb3JtYXRNYXAnLCAnbGFzdE1vZGlmaWVk
JywgJ3N0YXJ0VGltZScsICdzdGF0dXMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnY2x1c3RlckNvdW50J10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNw
b25zZVsnZm9ybWF0TWFwJ10sIFsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWwogICAgICAgICAgICAgICAgICdpZCcsICdt
ZWFuJywgJ2l0ZXJhdGlvbkNvdW50JywgJ3N1bScsICdzcXVhcmVTdW0nLCAnbWFya2VkT3V0bGll
cicsCiAgICAgICAgICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1lJywgJ2J1aWxkJywg
J2J1aWxkVGltZScsICdidWlsZFRhZycsICdidWlsZGVyJ10pOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0
VGltZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXJ0VGlt
ZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CiAgICAgICAgICAgICBhc3NlcnQo
dHlwZW9mKHJlc3BvbnNlWydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICdsYXN0TW9kaWZp
ZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlc3Bv
bnNlWydjb25maWd1cmF0aW9ucyddKSwgWydjdXJyZW50J10pOwogCiAgICAgICAgICAgICBjb25z
dCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHJlc3BvbnNlWydmb3JtYXRN
YXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9u
c2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmxl
bmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25z
ZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAgIG1lYW46
IDMsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICAg
c3VtOiAxNSwKQEAgLTM2Nyw3ICszNjcsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1z
ZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhC
dWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJl
dHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKTsKQEAgLTM4MywyMCArMzgzLDIwIEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJz
ID0gcmVzdWx0WzJdOwogICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXN1bHRbM107CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50SWQgPSBydW5zWzBdWydpZCddOwogICAg
ICAgICAgICAgY29uc3QgYnVpbGRJZCA9IGJ1aWxkc1swXVsnaWQnXTsKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydpZCddOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucydd
WydjdXJyZW50J10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50ID0g
cmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignaWQn
KV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50
W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJZCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmlu
ZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lkJyldLCBt
ZWFzdXJlbWVudElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWFzdXJlbWVu
dFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxkSWQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRN
YXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtNDI4LDggKzQyOCw4IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uVGltZSA9ICsobmV3IERh
dGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0J11bJ3RpbWVzdGFt
cCddKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvbkJ1aWxkVGltZSA9ICsobmV3IERhdGUo
cmVwb3J0V2l0aFJldmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRN
YXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFuOiAxMywKICAgICAg
ICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiA2NSwKQEAg
LTQzOSw3ICs0MzksNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCiAgICAgICAg
ICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAogICAgICAgICAgICAgICAgYnVp
bGRUYWc6ICcxMjQnIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVz
cG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJv
d3NbMV0pLCB7CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAgICAgICAgICBpdGVy
YXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAtNDY2LDE2ICs0NjYs
MTYgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKIAogICAgICAgICBjb25zdCBjdXJyZW50Um93cyA9IHJlc3Bv
bnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
dXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChy
ZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRhZywgMTI3KTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJy
ZW50Um93c1sxXSkuYnVpbGRUYWcsIDEyOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
dXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZv
cm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRhZywgJzEy
NycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9y
bWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgJzEyOCcpOwogICAgICAgICBhc3Nl
cnQoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmNvbW1pdFRp
bWUgPCByZXNwb25zZS5zdGFydFRpbWUpOwogICAgICAgICBhc3NlcnQoZm9ybWF0KHJlc3BvbnNl
Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmNvbW1pdFRpbWUgPCByZXNwb25zZS5zdGFy
dFRpbWUpOwogCiAgICAgICAgIGNvbnN0IGJhc2VsaW5lUm93cyA9IHJlc3BvbnNlWydjb25maWd1
cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmFzZWxpbmVSb3dz
Lmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydm
b3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgMTMxKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3Nb
MV0pLmJ1aWxkVGFnLCAxMjkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmFzZWxpbmVS
b3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJl
c3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgJzEzMScpOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFw
J10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsICcxMjknKTsKICAgICB9KTsKIAogICAgIGl0
KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBidWlsZCB0aW1lIHdoZW4gY29tbWl0IHRpbWVzIGFy
ZSBtaXNzaW5nIiwgKCkgPT4gewpAQCAtNTIyLDggKzUyMiw4IEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3Vs
dC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50Um93cyA9IHJlc3Bv
bnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgeworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10s
IGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAgICAg
ICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiAxNSwKQEAgLTUzMyw3
ICs1MzMsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiArRGF0ZS5VVEMoMjAxNywgMCwgMTksIDE1LCAy
OCwgMSksCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6ICtEYXRlLlVUQygyMDE3LCAwLCAxOSwg
MTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGFnOiAnMTAwMScgfSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJl
bnRSb3dzWzFdKSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQo
cmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAgICAgICAgICAgICAg
ICBtZWFuOiA3LAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAg
ICAgICAgIHN1bTogMzUsCkBAIC01NjIsOSArNTYyLDkgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3Vy
ZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28g
Y2x1c3RlcnMnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRUYWdzKHJlc3Bv
bnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJl
bnQnKSwKICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblswXVsnYnVp
bGRUYWcnXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWlsZFRhZyddXSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtNTgwLDEwICs1ODAsMTAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3Vy
ZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUg
dHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CiAgICAgICAg
ICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVu
dCddOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3No
b3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRXaXRoQW5jaWVudFJl
dmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRhZydd
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAy
LCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwgW3JlcG9ydFdp
dGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1b
J2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYwMywxNCArNjAzLDE0
IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmlj
SWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1Jlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0uanNvbmApLnRoZW4o
KGNhY2hlZFJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3
UmVzdWx0LCBjYWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOwogICAgICAgICAgICAgICAgIHJldHVybiBy
ZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2FjaGVkUmVzdWx0Wydz
dGFydFRpbWUnXX0uanNvbmApOwogICAgICAgICAgICAgfSkudGhlbigob2xkUmVzdWx0KSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3Qgb2xkYnVpbGRUYWdzID0gYnVpbGRUYWdzKG9sZFJlc3Vs
dCwgJ2N1cnJlbnQnKTsKICAgICAgICAgICAgICAgICBjb25zdCBuZXdidWlsZFRhZ3MgPSBidWls
ZFRhZ3MobmV3UmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGFzc2VydChvbGRi
dWlsZFRhZ3MubGVuZ3RoID49IDIsICdUaGUgb2xkIGNsdXN0ZXIgc2hvdWxkIGNvbnRhaW4gYXQg
bGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG5ld2J1aWxk
VGFncy5sZW5ndGggPj0gMiwgJ1RoZSBuZXcgY2x1c3RlciBzaG91bGQgY29udGFpbiBhdCBsZWFz
dCB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9s
ZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1aWxkVGFncy5z
bGljZSgwLCAyKSwKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9sZGJ1
aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1aWxkVGFncy5zbGlj
ZSgwLCAyKSwKICAgICAgICAgICAgICAgICAgICAgJ1R3byBjb25zZXFjdXRpdmUgY2x1c3RlcnMg
c2hvdWxkIHNoYXJlIHR3byBkYXRhIHBvaW50cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwpAQCAtNjI5LDkgKzYyOSw5IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBtYW5pZmVzdCA9IE1hbmlmZXN0
Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcGxh
dGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNZXRyaWMuYWxsKCkubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBtZXRyaWMgPSBNZXRyaWMuYWxsKClbMF07Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmltYXJ5Q2x1c3Rl
clsnbGFzdE1vZGlmaWVkJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
bGF0Zm9ybS5sYXN0TW9kaWZpZWQobWV0cmljKSwgcHJpbWFyeUNsdXN0ZXJbJ2xhc3RNb2RpZmll
ZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTY3MywxMCAr
NjczLDEwIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsK
ICAgICBpdCgic2hvdWxkIGFsbG93IHRvIHJlcG9ydCBhIGJ1aWxkIHJlcXVlc3QiLCBhc3luYyAo
KSA9PiB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJlcG9ydEFmdGVyQWRkaW5n
QnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJlcXVlc3Qp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1
cygnL2FwaS9tZWFzdXJlbWVudC1zZXQvP2FuYWx5c2lzVGFzaz01MDAnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwgWworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwg
NCwgMywgMTIsIDUwLCBbCiAgICAgICAgICAgICAgICAgWycxJywgJzknLCAnMTAuOC4yIDEyQzYw
JywgbnVsbCwgMF0sIFsnMicsICcxMScsICcxNDE5NzcnLCBudWxsLCAxMzYwMTQwOTIwOTAwXV0s
CiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1cnJlbnQnXV0p
OwogICAgIH0pOwpAQCAtNzExLDE3ICs3MTEsMTcgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpOwogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCByZXBvcnRBZnRl
ckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQ29tbWl0
c05lZWRzUm91bmRDb21taXRUaW1lQW5kQnVpbGRSZXF1ZXN0KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCiAgICAgICAgIGNvbnN0IHJhd1dlYktpdENv
bW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21taXRzL1dlYktp
dC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRz
WzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZFdlYktpdENv
bW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0gYXdhaXQgcmVtb3Rl
LmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4yJTIwMTJDNjBgKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhw
ZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmF3TWFj
T1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CiAKICAg
ICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUwMCcpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywgMTIsIDUwLCBb
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwg
W1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgIFsnMScsICc5JywgJzEwLjguMiAxMkM2
MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWycyJywgJzExJywgJzE0MTk3Nycs
IG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAgICAgMSwgMTM2MjA0
NjMyMzM4OCwgJzEyMycsIDEsIDEsICdjdXJyZW50J11dKTsKICAgICB9KTsKQEAgLTc1NywxNCAr
NzU3LDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0
aENvbW1pdHNOZWVkc1JvdW5kQ29tbWl0VGltZV0pOwogCiAgICAgICAgIGNvbnN0IHJhd1dlYktp
dENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21taXRzL1dl
YktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21t
aXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZFdlYktp
dENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4yJTIwMTJDNjBg
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0udGltZSwg
ZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmF3
TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CiAK
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91
bnRhaW4gTGlvbicsICdGcmFtZVJhdGUnKTsKICAgICAgICAgY29uc3QgcHJpbWFyeUNsdXN0ZXIg
PSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9w
bGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJhdGlvbnMu
Y3VycmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJhdGlvbnMuY3VycmVudCwgW1sxLCA0
LCAzLCAxMiwgNTAsIGZhbHNlLCBbCiAgICAgICAgICAgICBbMSwgMSwgJzEwLjguMiAxMkM2MCcs
IG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWzIsIDIsICcxNDE5NzcnLCBudWxsLCBl
eHBlY3RlZFdlYktpdENvbW1pdFRpbWVdXSwKICAgICAgICAgICAgIGV4cGVjdGVkV2ViS2l0Q29t
bWl0VGltZSwgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDFdXSk7CiAgICAgfSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29t
bWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IDMyNDczMzk2MTg4ZjY4YzczOWQ3NDhhYmY4
YTg2ZmVkNGE0MGZmZTEuLmI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQwYzMwYzRiMTg1OWIg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC03OCwxNiArNzgsMTYgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlv
biAoKSB7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZlIG5hbWUgaXMg
bWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1Ns
YXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBp
dCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCAoKSA9PiB7CiAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIGVtcHR5UmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZv
dW5kJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFs
bCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3MubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk1LDcgKzk1
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChlbXB0eVJlcG9y
dCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTAzLDEx
ICsxMDMsMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRy
dWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2
ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKTsKICAgICAg
ICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWyduYW1lJ10sIHN1YnZl
cnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXVsnbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF1bJ3JlcG9z
aXRvcnknXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTUsNyArMTE1LDcgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RB
bGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CkBAIC0xMjMsMTQgKzEyMywxNCBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGxldCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgbGV0IHJlcG9ydGVk
RGF0YSA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsn
cmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDIt
MDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydp
ZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJl
cG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgcmVw
b3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6
MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBd
WydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydu
YW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1
dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM4LDEwICsx
MzgsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJz
aW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25JbnZh
bGlkQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb24nKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmV2aXNpb24nKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2Vs
ZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ5
LDMyICsxNDksMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0
PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2
ZXJzaW9uVHdvQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2Nv
bW1pdHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJz
ID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsKIAogICAgICAgICAg
ICAgbGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgcmVwb3J0ZWRE
YXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWyd0
aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3Ry
aW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwg
cmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdWydwcmV2aW91c19jb21taXQnXSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1
dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1b
J2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERh
dGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNb
MF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45Jyku
dG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsn
bWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3ByZXZpb3VzX2Nv
bW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJz
WzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERh
dGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogCiAgICAgICAgICAgICByZXBvcnRlZERhdGEgPSBz
dWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBE
YXRlKCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSdd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgY29t
bWl0dGVyc1sxXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsn
cHJldmlvdXNfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFt
ZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFdWydhY2NvdW50J10s
IHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lv
biddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWyd0aW1lJ10u
dG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwg
cmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydwcmV2aW91c19jb21taXQnXSwgY29t
bWl0c1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVy
c1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQnXSwgcmVwb3J0ZWRE
YXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4
MiwxMCArMTgyLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2Vy
dD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQo
c3VidmVyc2lvbkludmFsaWRQcmV2aW91c0NvbW1pdCkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdGYWlsZWRUb0ZpbmRQcmV2aW91c0NvbW1pdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFByZXZpb3VzQ29t
bWl0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFs
bCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIw
MCwxOCArMjAwLDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2Vy
dD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRz
JyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21l
c3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsn
YXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1sw
XVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21l
c3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29t
bWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFt
ZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2Nv
dW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yMjgsMjMgKzIyOCwyMyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29t
bWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNl
bGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1
bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdWydpZCddLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFb
J2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNb
MF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKLQotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3NhZ2UnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRl
cnNbMF1bJ25hbWUnXSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGZpcnN0RGF0YVsn
YXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzFdWydpZCddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzFdWydtZXNzYWdlJ10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTI1OSwxMiArMjU5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsK
ICAgICAgICAgfSkudGhlbigoY29tbWl0dGVycykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBhdXRob3JbJ25h
bWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNj
b3VudCddLCBhdXRob3JbJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0z
MDIsMTUgKzMwMiwxNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1pdCkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzYW1lUmVwb3NpdG9yeU5hbWVJbk93bmVkQ29tbWl0QW5k
TWFqb3JDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywg
eyduYW1lJzogJ1dlYktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICBsZXQgb3NXZWJL
aXQgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgd2Via2l0UmVwb3NpdG9yeSA9IHJlc3Vs
dFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc1dlYktpdC5pZCwgd2Via2l0UmVw
b3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJLaXQubmFtZSwgd2Vi
a2l0UmVwb3NpdG9yeS5uYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChv
c1dlYktpdC5pZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3NXZWJLaXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Myw3ICszNDMsNyBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRXaXRoT3duZWRDb21t
aXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRX
aXRoT3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3Jldmlz
aW9uJzogJ1NpZXJyYTE2RDMyJ30pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2Nv
bW1pdHMnLCB7J21lc3NhZ2UnOiAnV2ViS2l0IENvbW1pdCd9KSwKICAgICAgICAgICAgICAgICBk
Yi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ0phdmFTY3JpcHRDb3JlIGNvbW1p
dCd9KSwKQEAgLTM1MSw1NCArMzUxLDU0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGRiLnNl
bGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICJXZWJLaXQifSksCiAgICAgICAgICAg
ICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ0phdmFTY3JpcHRD
b3JlJ30pXSkKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Lmxlbmd0aCwgNik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
MF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMF0u
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdCA9IHJlc3VsdFswXVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQsIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dENvbW1pdCA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh3ZWJr
aXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHdlYmtp
dENvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY0NvbW1pdCA9IHJlc3VsdFsyXVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeFJlcG9zaXRv
cnkgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4UmVwb3Np
dG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4UmVwb3Np
dG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNF0ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNF0ubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRbNF1bMF07Ci0g
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0UmVwb3NpdG9yeSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeSwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbNV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3Ry
aWN0RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRvcnkuaWQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdC5yZXBvc2l0b3J5LCBqc2NSZXBv
c2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVy
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVy
LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0
b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9z
aXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdC5yZXBv
c2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5
LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dzKCdj
b21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQuaWQsICdvd25lZCc6IHdlYmtp
dENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAgICAgICAgIGRiLnNl
bGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdC5pZCwgJ293
bmVkJzoganNjQ29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJlcG9zaXRv
cnkuaWR9KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsw
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21t
aXQgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21t
aXRGb3JXZWJLaXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21t
aXRGb3JKU0NDb21taXQgPSAgcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5u
b3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAgICAgfSkK
IApAQCAtNDQ4LDcgKzQ0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JS
ZXBvcnQobXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29tbWl0c1dpdGhPd25lZENvbW1pdHMpLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgbXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29tbWl0c1dp
dGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNp
b24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29t
bWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZDNjcnfSksCiAgICAgICAgICAgICAgICAgZGIu
c2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0J30pLApAQCAt
NDU4LDQ5ICs0NTgsNDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygn
cmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAgICAgICAgICAgICAgICBkYi5z
ZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2YVNjcmlwdENvcmUnfSldKQog
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHQubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQu
bGVuZ3RoLCA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MCA9IHJlc3VsdFswXVswXTsKLSAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MSA9
IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQxLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQxLCBudWxs
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0MCA9IHJl
c3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQwLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NDb21taXQwLCBudWxsKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QganNjQ29tbWl0MSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RF
cXVhbChqc2NDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFs1XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzVd
Lmxlbmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IG9zeFJlcG9zaXRvcnkgPSByZXN1bHRbNV1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNl0ubGVuZ3RoLCAxKQorICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzZdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9z
aXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzddLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBqc2NSZXBvc2l0b3J5ID0gcmVzdWx0WzddWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9z
eFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MC5y
ZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpzY1JlcG9z
aXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDEucmVwb3NpdG9y
eSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4UmVwb3Np
dG9yeS5vd25lciwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3Np
dG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxLnJlcG9zaXRvcnksIG9z
eFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENv
bW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDEucmVwb3NpdG9yeSwganNj
UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3Np
dG9yeS5vd25lciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKICAg
ICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0X293bmVy
c2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MC5pZCwgJ293bmVkJzogd2Via2l0Q29tbWl0Lmlk
fSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygn
Y29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MS5pZCwgJ293bmVkJzogd2Vi
a2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCkBAIC01MDgsMjUgKzUwOCwyNSBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlw
cycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3duZWQnOiBqc2NDb21taXQxLmlkfSwgeydz
b3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0
cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJlcG9zaXRvcnkuaWR9KV0pOwogICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3Ro
LCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCA1KTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21taXQwID0gcmVzdWx0WzBdWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0MCwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJL
aXRDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxID0g
cmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9y
V2ViS2l0Q29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwo
b3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRG
b3JKU0NDb21taXQwID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3du
ZXJDb21taXRGb3JKU0NDb21taXQxID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQxLCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNTQ4LDE4ICs1NDgsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNv
bW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBh
ZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0V2l0aEVtcHR5T3duZWRDb21taXRz
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRXaXRo
RW1wdHlPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdy
ZXBvc2l0b3JpZXMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXRfb3duZXJzaGlwcycsICdvd25lcicp
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgbGV0IGNvbW1p
dHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgcmVwb3NpdG9yaWVzID0gcmVzdWx0WzFd
OwogICAgICAgICAgICAgbGV0IGNvbW1pdF9vd25lcnNoaXBzID0gcmVzdWx0WzJdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1swXS5pZCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzWzBdLm5hbWUsICdPU1gnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRfb3duZXJzaGlwcy5sZW5ndGgsIDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1swXS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzWzBdLm5hbWUsICdP
U1gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRfb3duZXJzaGlwcy5s
ZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lvbkNvbW1p
dEFuZE93bmVkQ29tbWl0V2l0aFRpbWVzdGFtcCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0
cy8nLCBzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0YW1wKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1lc3RhbXAn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
d25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1lc3RhbXAnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9KTsKQEAgLTY5OSwxMSArNjk5LDExIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25Db21taXRzKTsKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LycpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3Vs
dFsnY29tbWl0cyddOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7CiAKICAgICAgICAgcmV0
dXJuIGNvbW1pdHM7CiAgICAgfQpAQCAtNzEyLDcgKzcxMiw3IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICB7CiAg
ICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAgICAgICAgIGxldCByZXN1bHQg
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0
dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOwogICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvJyk7CiAgICAg
ICAgIHJldHVybiByZXN1bHRbJ2NvbW1pdHMnXTsKICAgICB9CkBAIC03MjAsOSArNzIwLDkgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rp
b24gKCkgewogICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoRXhwZWN0ZWRGYWlsdXJlKGNvbW1p
dHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpCiAgICAgewogICAgICAgICBjb25zdCBjb21t
aXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyhjb21taXRzVXBkYXRlLCBl
eHBlY3RlZEZhaWx1cmVOYW1lKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51bGwpOwogICAgIH0K
IAogICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoICJNaXNzaW5nUmV2aXNpb24iIGlmIGNvbW1pdCB1
cGRhdGUgZG9lcyBub3QgaGF2ZSBjb21taXQgcmV2aXNpb24gc3BlY2lmaWVkJywgYXN5bmMgKCkg
PT4gewpAQCAtNzQ2LDMyICs3NDYsMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBpbml0aWFs
UmVwb3J0Q29tbWl0cygpOwogCiAgICAgICAgIGxldCBjb21taXRzID0gYXdhaXQgZGF0YWJhc2Uu
c2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJl
cG9ydGVkLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0ucmVwb3J0ZWQs
IHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCB0
cnVlKTsKIAogICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGNvbW1pdHMgU0VU
IGNvbW1pdF9yZXBvcnRlZD1mYWxzZScpOwogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBjb21t
aXRzVXBkYXRlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CiAK
ICAgICAgICAgY29tbWl0cyA9IGF3YWl0IGRhdGFiYXNlLnNlbGVjdEFsbCgnY29tbWl0cycpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwogICAgIH0pOwogCiAg
ICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSBjb21taXRzIG1lc3NhZ2UsIHRpbWUsIG9y
ZGVyLCBhdXRob3IgYW5kIHByZXZpb3VzIGNvbW1pdCIsIGFzeW5jICgpID0+IHsKICAgICAgICAg
Y29uc3QgY29tbWl0cyA9IGF3YWl0IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0dXMoY29tbWl0
c1VwZGF0ZSwgJ09LJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksICdCcmVha3Mg
YnVpbGRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCAn
Q3Jhc2hlcyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ubWVzc2Fn
ZSwgJ2Fub3RoZXIgbWVzc2FnZScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5t
ZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdLm9yZGVyLCAyMTA5NDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1sxXS5vcmRlciwgMjEwOTQ5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGlt
ZSwgMTQ4NDg4NDM1NDU3Nyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRpbWUs
IDE0ODQ4ODYyMzA2NDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5wcmV2aW91
c0NvbW1pdCwgY29tbWl0c1swXS5pZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRl
c3RhYmlsaXR5LCAnQnJlYWtzIGJ1aWxkcycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgJ0NyYXNoZXMgV2ViS2l0Jyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVz
c2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5hdXRob3JOYW1l
LCAnQ2hyaXMgRHVtZXonKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0u
YXV0aG9yTmFtZSwgJ1phbGFuIEJ1anRhcycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29tbWl0c1swXS5vcmRlciksIDIxMDk0OCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb21taXRzWzFdLm9yZGVyKSwgMjEwOTQ5KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRpbWUsIDE0ODQ4ODYyMzA2NDUpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5wcmV2aW91c0NvbW1pdCwgY29tbWl0
c1swXS5pZCk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBv
cnQtdGVzdHMuanMKaW5kZXggZDlhMmNlZDY3MTgzODBmYWI5ZTBjZDViMDU3MDQ3MjE0YmQxMzRm
YS4uNWM0NDVmZWZjMGQ3MjA0YzBiYjVhMTZlMDJjZjYxMzcyZmYzZmI2OSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10
ZXN0cy5qcwpAQCAtMTAxLDcgKzEwMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gYnVpbGRlciBuYW1l
IGlzIG1pc3NpbmciLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQx
MDoxMjowMy4zODgzMDQifV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJOYW1lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1
aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDksMTggKzEwOSwxOCBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBh
ZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21l
UGFzc3dvcmQifV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNz
aW5nQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBy
ZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gYnVpbGRlcnMiLCAoKSA9PiB7CiAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlS
ZXBvcnQoKV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOb3RGb3VuZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVk
J10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJv
Y2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMTM0LDU4ICsxMzQsNTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7fX1dOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxk
ZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
cG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOwogICAg
ICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHJlcG9ydCB3aXRoICJN
aXNtYXRjaGluZ0NvbW1pdFRpbWUiIGlmIHRpbWUgZGlmZmVyZW5jZSBpcyBsYXJnZXIgdGhhbiAx
IHNlY29uZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9y
dChlbXB0eVJlcG9ydCgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdpdE1pc21hdGNo
aW5nQ29tbWl0VGltZSgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQn
XSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQn
XSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3Nl
ZFJ1bnMnXSwgMSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hpbmdDb21taXRUaW1l
Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVl
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hp
bmdDb21taXRUaW1lJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
Wydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBub3QgcmVq
ZWN0IHJlcG9ydCBpZiB0aGUgY29tbWl0IHRpbWUgZGlmZmVyZW5jZSBpcyB3aXRoaW4gMSBzZWNv
bmQiJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KGVt
cHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0aE9uZVNlY29uZENv
bW1pdFRpbWVEaWZmZXJlbmNlKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2Vk
UnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJv
Y2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAgICAgfSk7
CiAKICAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBidWlsZGVyIiwg
KCkgPT4gewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1
cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydw
cm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSku
dGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlSZXBvcnQoKTsK
ICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1b
J2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50WydidWls
ZGVyUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50Wyd0ZXN0
cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0
ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NywxOCArMTk3LDE4IEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZFNsYXZlRm9yUmVwb3J0KHJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0p
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMn
KTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNP
Ti5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAgICAgICAgICAgICBkZWxldGUgcmVw
b3J0WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0Wyd0ZXN0cydd
OwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0yMTYsMTkgKzIxNiwxOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChlbXB0eVNs
YXZlUmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNsYXZlUmVwb3J0KCld
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRz
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29udGVudCA9
IGVtcHR5U2xhdmVSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBK
U09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSBz
dWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgc3Vi
bWl0dGVkQ29udGVudFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdG9yZWRDb250ZW50
Wyd0ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250ZW50LCBz
dWJtaXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3Rv
cmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0yMzgsOSArMjM4LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigo
cmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydj
b250ZW50J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxk
ZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0
KClbJ2J1aWxkZXJOYW1lJ10pOwogICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1aWxkZXJQYXNzd29y
ZCcgaW4gc3RvcmVkQ29udGVudCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI1MSw4ICsy
NTEsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRfc2xhdmVzJyk7CiAgICAgICAgIH0pLnRoZW4oKHNsYXZl
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlcy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlc1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydz
bGF2ZU5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVzWzBdWyduYW1lJ10s
IGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTI2Miw4ICsyNjIsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRlcnMnKTsKICAgICAgICAgfSkudGhlbigo
YnVpbGRlcnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzWzBdWyduYW1lJ10sIGVtcHR5
UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yNzMsNyArMjczLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAg
fSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzWzBd
Wyd0YWcnXSwgMTIzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHNbMF1b
J3RhZyddLCAnMTIzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODMsNyArMjgzLDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXBvcnQu
YnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGRlbGV0ZSByZXBvcnQuYnVp
bGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxk
IHJlamVjdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxk
IHRhZyB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLCBhc3luYyAoKSA9PiB7CkBAIC0yOTEsNyArMjkx
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25z
dCByZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAn
NDU2JzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0Y2gnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1i
ZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxkIGFjY2VwdCBpZiBhIHJl
cG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyB3aXRoIGlkZW50
aWNhbCB2YWx1ZSIsIGFzeW5jICgpID0+IHsKQEAgLTI5OSw3ICsyOTksNyBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IGVtcHR5
UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRhZzsK
ICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KQogCiAgICAgaXQoInNob3VsZCBhZGQgdGhl
IHBsYXRmb3JtIiwgKCkgPT4gewpAQCAtMzA4LDggKzMwOCw4IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncGxhdGZvcm1zJyk7CiAg
ICAgICAgIH0pLnRoZW4oKHBsYXRmb3JtcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jt
c1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0gcmVzdWx0WzBd
OwogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsxXTsKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9ucyA9IHJlc3VsdFsyXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dl
YktpdCcsICdtYWNPUyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVw
b3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktpdCcsICdt
YWNPUyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1
aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzFdWydp
ZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1b
J2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRp
b25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydidWlsZF9jb21taXQn
XSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRzUmVsYXRp
b25zWzFdWydjb21taXRfYnVpbGQnXSk7CiAKICAgICAgICAgICAgIGxldCByZXBvc2l0b3J5SWRU
b05hbWUgPSB7fTsKICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgcmVwb3NpdG9y
aWVzKQpAQCAtMzQ0LDkgKzM0NCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRzKQogICAgICAgICAg
ICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05hbWVbY29t
bWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjgu
MiAxMkM2MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZp
c2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0aW1lJ10u
dG9TdHJpbmcoKSwKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFt
ZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3db
J1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRv
U3RyaW5nKCksCiAgICAgICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAu
OScpLnRvU3RyaW5nKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2MCwxNiArMzYwLDE2
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwog
ICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5z
ZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTM4MiwxNiArMzgyLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChi
dWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAyKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTQxNSwxNyArNDE1LDE3IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQo
Zmlyc3RSZXBvcnQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9ydF0pOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W3NlY29uZFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5nQ29tbWl0
UmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFJldmlzaW9uJyk7CiAgICAgICAgICAgICBhc3NlcnQo
SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE0MTk3NycpID49IDApOwogICAgICAg
ICAgICAgYXNzZXJ0KEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9mKCcxNTAwMDAnKSA+
PSAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVu
cyddLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ4Nyw4
ICs0ODcsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgZnVu
Y3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0KQogICAg
IHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3Jz
V2l0aFJlc3BvbnNlKHJlcG9ydCkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKICAg
ICAgICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtNTExLDcg
KzUxMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhU
d29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAgfSkudGhl
bigodGVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdHMubWFwKChy
b3cpID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHRlc3RzLm1hcCgocm93KSA9PiB7IHJldHVybiByb3dbJ25hbWUn
XTsgfSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScsICdEdW1teUJlbmNo
bWFyaycsICdEdW1teVBhZ2VMb2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1RyYXZlcnNlTm9kZXMn
LCAnYXBwbGUuY29tJywgJ3dlYmtpdC5vcmcnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
NTI2LDE0ICs1MjYsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3RfbmFtZSddXSA9
IG5ldyBBcnJheTsKICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3Rf
bmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVnYXRvcl9uYW1lJ11d
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFt
ZVRvTWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0Fy
aXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydUaW1lJywg
J0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRv
TWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snTW9kaWZ5Tm9k
ZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snYXBwbGUuY29tJ10s
IFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFt
ZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NTUyddLCBbWydUaW1l
JywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0aG1ldGljJ10sIFsnVGltZScs
ICdHZW9tZXRyaWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0
TmFtZVRvTWV0cmljc1snRHVtbXlCZW5jaG1hcmsnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11d
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3Nb
J0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11dKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ01vZGlmeU5vZGVz
J10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snVHJhdmVyc2VOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ2Fw
cGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1snVGltZScsIG51bGxd
XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDIsNyArNTQyLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5k
YXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJpY3MsIHRlc3Rf
Y29uZmlndXJhdGlvbnMKICAgICAgICAgICAgIFdIRVJFIHRlc3RfaWQgPSBtZXRyaWNfdGVzdCBB
TkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYwogICAgICAgICAgICAgQU5EIHRlc3RfbmFtZSA9
ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSkudGhlbigo
cmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5yb3dzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5yb3dz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yb3dzWzBdOwogICAg
ICAgICAgICAgfSk7CiAgICAgfQpAQCAtNTY1LDIwICs1NjUsMjAgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBjb25zdCBydW5J
ZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJh
dGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJh
dGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDAsIGdyb3VwOiBu
dWxsLCB2YWx1ZTogNTAwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7
cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTEwLCByZWxhdGl2ZV90
aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3Vw
OiBudWxsLCB2YWx1ZTogNTIwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAg
ICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTMwLCByZWxhdGl2
ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gNTAwICsgNTEwICsgNTIw
ICsgNTMwOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0g
LyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAqIDUyMCArIDUzMCAq
IDUzMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10s
IHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICogNTEwICsg
NTIwICogNTIwICsgNTMwICogNTMwKTsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5J
dGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAg
ICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6
IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogMTAyLCByZWxh
dGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIs
IGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKQEAgLTYwMCw5ICs2
MDAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgc3VtICs9IHZhbHVlOwogICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSB2YWx1ZSAq
IHZhbHVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVh
bl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRp
b25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2Fj
aGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYxMywx
NSArNjEzLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBjb25zdCBydW5JZCA9
IHJlc3VsdC5ydW5bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFso
NTAwICsgMTAwKSAvIDIsICg1MTAgKyAxMTApIC8gMiwgKDUyMCArIDEyMCkgLyAyLCAoNTMwICsg
MTMwKSAvIDJdOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9u
cywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9u
cywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGws
IHZhbHVlOiBleHBlY3RlZFZhbHVlc1swXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAg
ICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVj
dGVkVmFsdWVzWzFdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVu
OiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMl0s
IHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRl
cjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1szXSwgcmVsYXRpdmVfdGlt
ZTogbnVsbH1dKTsKICAgICAgICAgICAgIGNvbnN0IHN1bSA9IGV4cGVjdGVkVmFsdWVzLnJlZHVj
ZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0sIDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRl
cmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hl
J10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4g
c3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIGV4
cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsg
dmFsdWUgKiB2YWx1ZTsgfSwgMCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjQyLDEw
ICs2NDIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1ZTsKICAg
ICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7cnVuOiBydW5JZCwgb3JkZXI6
IGksIGdyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwgdmFsdWU6IGV4cGVjdGVkVmFsdWUsIHJlbGF0
aXZlX3RpbWU6IG51bGx9KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3Vt
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1
YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJh
dGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1
YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwMywxMCArNzAzLDEwIEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHNxdWFyZVN1
bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1ZTsKICAgICAgICAgICAgIGV4cGVjdGVk
SXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6IE1hdGguZmxvb3Io
aSAvIDIpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogICAg
ICAgICB9Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVj
dGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5n
dGgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVh
cmVTdW0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3RzIHdpdGhvdXQg
YW55IG1ldHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03MzcsMjcg
KzczNywyNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IGNvbnN0IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JN
ZXRyaWMoJ0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVuID0gYmVu
Y2htYXJrUmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3Vs
dC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2ht
YXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6
ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6
IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRp
b25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykg
LyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVu
Y2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFs
dWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAv
IDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAw
LCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJd
LCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVu
Y2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFs
dWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAogICAgICAg
ICBjb25zdCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCBy
b3cpID0+IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJlU3VtID0g
YmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCAr
IHJvdy52YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1h
cmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1
bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFu
X2NhY2hlJ10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJr
UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAK
ICAgICAgICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRp
b25zRm9yTWV0cmljKCdBU3ViVGVzdCcsICdUaW1lJyk7CiAgICAgICAgIHJ1biA9IHNvbWVUZXN0
UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVzdFJlc3VsdC5p
dGVyYXRpb25zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1
bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAge3J1biwgb3JkZXI6IDAsIGdyb3VwOiBudWxs
LCB2YWx1ZTogMzEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAge3J1biwgb3Jk
ZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAg
ICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVhbl9j
YWNoZSddLCAzMS41KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsn
c3VtX2NhY2hlJ10sIDYzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgMzEuNSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSdd
LCA2Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgMzEgKiAzMSArIDMyICogMzIpOwogICAgIH0pOwogCiAgICAgaXQo
InNob3VsZCBza2lwIHN1YnRlc3RzIG1pc3NpbmcgdGhlIG1hdGNoaW5nIG1ldHJpYyBkdXJpbmcg
YWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03OTIsMjcgKzc5MiwyNyBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IGJlbmNobWFya1Jl
c3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1bW15QmVuY2ht
YXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVuID0gYmVuY2htYXJrUmVzdWx0LnJ1bi5p
ZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0
aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAv
IDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1
ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVuLCBvcmRl
cjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2ZV90aW1l
OiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJh
dGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0
KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVy
OiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6
IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQu
aXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIp
ICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwg
Z3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxs
fSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJh
dGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0
KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAogICAgICAgICBjb25zdCBzdW0gPSBiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93
LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJlU3VtID0gYmVuY2htYXJrUmVzdWx0Lml0
ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCArIHJvdy52YWx1ZSAqIHJvdy52
YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFu
X2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0
LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtS
ZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2Nh
Y2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQu
cnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAKICAgICAgICAgY29uc3Qgc29t
ZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdBdXhp
bGlhcnlSZXN1bHQnLCAnQWxsb2NhdGlvbnMnKTsKICAgICAgICAgcnVuID0gc29tZVRlc3RSZXN1
bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJh
dGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5p
dGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZh
bHVlOiAzMSArIDQxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgIHtydW4sIG9y
ZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDMyICsgNDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsn
bWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQxICsgMzIgKyA0Mik7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQyLCAyKSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwg
KDMxICsgNDEgKyAzMiArIDQyKSAvIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29t
ZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgMzEgKyA0MSArIDMyICsgNDIpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIE1hdGgucG93KDMxICsgNDEsIDIpICsgTWF0aC5wb3coMzIgKyA0MiwgMikpOwogICAgIH0p
OwogCiAgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2hlbiB0aGVyZSBhcmUgbW9yZSB0
aGFuIG9uZSBub24tbWF0Y2hpbmcgYWdncmVnYXRvcnMgaW4gYSBzdWJ0ZXN0IiwgYXN5bmMgKCkg
PT4gewpAQCAtODQ4LDcgKzg0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIH19OwogCiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQg
cmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0
V2l0aEFtYmlnaW91c0FnZ3JlZ2F0b3JzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ05vTWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0Y2hpbmdBZ2dy
ZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsKICAgICB9KTsKIAogICAgIGZ1bmN0aW9uIHJlcG9ydFdp
dGhTYW1lU3VidGVzdE5hbWUoKQpAQCAtODkyLDE2ICs4OTIsMTYgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdC
dWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxs
KCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGxldCBuZXdSZXBvcnQgPSByZXBvcnRX
aXRoU2FtZVN1YnRlc3ROYW1lKCk7CiAgICAgICAgICAgICBuZXdSZXBvcnQuYnVpbGRUYWcgPSAi
MTI1IjsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZFRpbWUgPSAiMjAxMy0wMi0yOFQxMjox
NzoyNC4xIjsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBbbmV3UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RB
bGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTMwLDE3
ICs5MzAsMTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3QxJywgJ0Nv
bWJpbmVkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29u
c3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ2l0ZXJh
dGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21l
YW5fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUn
XSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10s
IDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50
X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9j
YWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNo
ZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgOSk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtOTYyLDEzICs5NjIsMTMgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMo
J3Rlc3QnLCAnRnJhbWVSYXRlJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJl
X3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkpOwogCiAgICAgICAg
ICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNCwgcmVsYXRpdmVfdGltZTogMH0sCiAgICAgICAg
ICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDUsIHJl
bGF0aXZlX3RpbWU6IDEwMH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAy
LCBncm91cDogbnVsbCwgdmFsdWU6IDMsIHJlbGF0aXZlX3RpbWU6IDIwNX1dKTsKQEAgLTEwMDYs
NyArMTAwNiw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHNbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRU
ZXN0c1swXV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJl
dHVybiBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigo
b3JpZ2luYWxDb25maWcpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50
VGVzdHNbMl1dKS50aGVuKCgpID0+IHsKQEAgLTEwMjMsMTYgKzEwMjMsMTYgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZv
clJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygn
dGVzdDEnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENvbmZpZykgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXV0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygn
dGVzdDEnLCAnVGltZScpOwogICAgICAgICAgICAgfSkudGhlbigoY29uZmlnKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlm
aWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoY29uZmlnWydj
b25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlm
aWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1bnNfbGFz
dF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTA2OSw3ICsxMDY5LDcgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9j
a0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dp
dGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDc3LDIyICsxMDc3LDIyIEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1v
Y2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNX
aXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTIzJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZvcm1zJywg
e25hbWU6ICdNb3VudGFpbiBMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbYW5v
dGhlclJlcG9ydFdpdGhTYW1lQnVpbGRSZXF1ZXN0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
RmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVxdWVzdCcpOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdidWls
ZHMnLCB7dGFnOiAnMTI0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZvcm1zJywge25hbWU6ICdMaW9u
J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMu
anMKaW5kZXggYzAxOWE0MmRiMTcyNDEyMTkzMjU4ODI1MGViOTM1OTAxMTFkOTRmOS4uMTYyOWQ0
YmIwYWYxZmY0YjJkNjkzYzFjYTc1ZGY3MDdlODA4YmJjYSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMKQEAg
LTExLDM5ICsxMSwzOSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgp
IHsKICAgICBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9u
JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGdpdmUgYW4gZW1wdHkgbGlzdCBpZiB0aGVy
ZSBpcyBub3QgZXhpc3RpbmcgdGVzdCBncm91cCBhdCBhbGwnLCBhc3luYyAoKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBhIHRlc3QgZ3JvdXAg
d2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxlYXN0IG9uZSBidWlsZCByZXF1ZXN0JywgYXN5
bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNl
cnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywg
J2NhbmNlbGVkJ10pOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZp
Y2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1p
dHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxv
YWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbGlzdCBh
bGwgdGVzdCBncm91cHMgd2l0aCBwZW5kaW5nIG5vdGlmaWNhdGlvbicsIGFzeW5jICgpID0+IHsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQn
XSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vwc1sw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVuLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMn
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBb
JzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24s
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91
cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQw
MScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBub3QgbGlzdCBoaWRkZW4gdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKQEAgLTUxLDEy
ICs1MSwxMiBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRl
ZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAgICAgICAg
IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRl
c3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAg
ICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgdGVzdCBncm91cHMgd2l0aG91
dCBuZWVkcyBub3RpZmljYXRpb24gZmxhZycsIGFzeW5jICgpID0+IHsKQEAgLTY0LDI0ICs2NCwy
NCBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdj
b21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAgICAgICAgIGF3YWl0
IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rncm91
cF9uZWVkc19ub3RpZmljYXRpb24gPSBGQUxTRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2MDAnKTsK
ICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10p
OwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGEgdGVzdCBncm91
cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVkIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4g
ewogICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAg
ICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydjb21wbGV0
ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdydW5uaW5nJ10pOwogICAgICAgICAgICAg
Y29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMzgsMTggKzEzOCwxOCBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdy
b3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tE
YXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2Zh
aWxlZCcsICdjb21wbGV0ZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgYXdhaXQgVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rn
cm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2
MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJlcXVlc3RzJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBjb250ZW50LnRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmlkLCA2MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC50YXNrLCA1MDApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAudGFzayksIDUwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxs
KTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLmhpZGRlbik7CiAgICAgICAgICAg
ICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBh
c3NlcnQub2sodGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcw
MyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMs
IFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAx
JywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRl
c3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdyb3VwcyBtYXkgbmVl
ZCBhZGRpdGlvbmFsIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTU4LDMxICsx
NTgsMzEgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNp
c190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVF
IFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgYXdhaXQgVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRlc3Rn
cm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2
MDEnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJlcXVlc3RzJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwg
Mik7CiAKICAgICAgICAgICAgIGNvbnN0IG9uZVRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuaWQsIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvbmVUZXN0R3JvdXAuaWQpLCA2
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRlc3RHcm91
cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbmVUZXN0R3Jv
dXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFv
bmVUZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayhvbmVUZXN0R3JvdXAu
bmVlZHNOb3RpZmljYXRpb24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9uZVRlc3RHcm91cC5t
YXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3Jv
dXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob25lVGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0
MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChvbmVUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcwMScsICc3
MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvbmVUZXN0
R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGFub3RoZXJUZXN0R3JvdXAgPSBjb250ZW50LnRlc3RHcm91cHNbMV07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5pZCwgNjAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5vdGhlciB0ZXN0IGdy
b3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5hdXRob3Is
ICd3ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChhbm90
aGVyVGVzdEdyb3VwLmlkKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChhbm90aGVyVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAubmFtZSwgJ2Fub3RoZXIgdGVzdCBncm91cCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuYXV0aG9y
LCAnd2Via2l0Jyk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWFub3RoZXJUZXN0R3JvdXAuaGlk
ZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2soYW5vdGhlclRlc3RHcm91cC5tYXlOZWVk
TW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3Vw
LnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGFub3RoZXJUZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMyddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQw
MScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsn
NzEwJywnNzExJywgJzcxMicsICc3MTMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScs
ICc0MDInXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IGZm
ZjJhY2YxZmI2MzlhYjNlOThhMmIxYjdiM2Q0MDZkZjFhY2M3ZTEuLmJiZjkzMzY2NTBlNWVhNDE1
N2RmZmE0ZDk2MmViYjk1OTA0N2U5NDAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFi
bGUtdGVzdHMuanMKQEAgLTMwLDE0ICszMCwxNCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJp
Z2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiBz
bGF2ZSBuYW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB7fSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZl
cycsICgpID0+IHsKICAgICAgICAgY29uc3QgdXBkYXRlID0ge3NsYXZlTmFtZTogZW1wdHlVcGRh
dGUuc2xhdmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiBlbXB0eVVwZGF0ZS5zbGF2ZVBhc3N3b3JkfTsK
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVO
b3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgsNyArNDgsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgY29uc3QgcmVwb3J0ID0ge3NsYXZlTmFtZTogZW1wdHlVcGRhdGUuc2xhdmVOYW1lLCBzbGF2
ZVBhc3N3b3JkOiAnYmFkUGFzc3dvcmQnfTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBlbXB0eVVw
ZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtNTgsNyArNTgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtNzMsMTAgKzczLDEwIEBAIGRlc2NyaWJlKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJs
ZV9jb25maWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtODcsMTIgKzg3LDEyIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIHNtYWxsVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycs
ICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVzdCddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBzbWFsbFVwZGF0ZS5jb25m
aWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF1bJ3Rlc3QnXSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3Rlc3QnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsncGxhdGZvcm0nXSwgc21hbGxVcGRh
dGUuY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTA4LDcgKzEwOCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVw
ZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3VyYXRpb25FbnRyeScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRDb25maWd1cmF0aW9uRW50cnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEz
Nyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1
cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXBzJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0OSw3
ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRh
dGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNjEsNyArMTYx
LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9z
aXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTczLDcgKzE3Myw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NSw3ICsxODUsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGRlc2NyaWJlKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRl
UmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0R1cGxpY2F0ZVJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTIyMSwxOCArMjIxLDE4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RB
bGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKSwgZGIuc2VsZWN0QWxsKCd0
cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0b3J5R3Jv
dXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF1b
J3Rlc3QnXSwgTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSwgTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQo
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0aW9uc1swXVsn
dGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydu
YW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQo
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmln
Z2VyYWdibGVJZCgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1Myw4ICsyNTMsOCBA
QCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtpbml0aWFsQ29u
ZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxSZXN1bHQ7CiAg
ICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVz
dWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlh
bENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9y
eUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlh
bFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBAIC0yNzUsOCArMjc1
LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbaW5pdGlh
bENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBpbml0aWFsUmVzdWx0
OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0b3J5R3JvdXBzXSA9
IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmlndXJhdGlvbnMsIGlu
aXRpYWxDb25maWd1cmF0aW9ucyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9z
aXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGlu
aXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKICAgICB9KTsKIApAQCAtMjkwLDE0
ICsyOTAsMTQgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChyZXBvc2l0
b3J5R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vw
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1v
bmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gZGIuc2VsZWN0QWxsKCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChyZXBvc2l0b3J5R3JvdXBzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5
c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0
ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3VwIGlzIGF3ZXNvbWUnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzOSArMzQ0LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0
b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAgICBjb25z
dCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQt
d2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5k
ZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVt
LW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUo
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2Vw
dHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2Nl
cHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVt
LW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNj
ZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNv
bmRVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZldGNoKCkpLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IFRyaWdnZXJhYmxl
UmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuYWxs
KCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxC
eU5hbWUoJ1dlYktpdCcpOwogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZp
bmRUb3BMZXZlbEJ5TmFtZSgnbWFjT1MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
c2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1Bh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBm
YWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5h
bWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBv
c2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2Ny
aXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5uYW1lKCksICdz
eXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0zOTUsMjkgKzM5NSwyOSBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtk
Yi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUnKSwgZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScpXSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRv
cnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwg
TW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tE
YXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0t
b25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CiAgICAg
ICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAogICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAocmVwb3Np
dG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3Jp
ZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBv
c2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFj
b3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3Jv
dXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3Jv
dXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKIAogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0
cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICduYW1lJyksIGRiLnNlbGVjdEFsbCgndHJp
Z2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknKV0pOwogICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtyZXBvc2l0b3J5R3JvdXBzLCByZXBv
c2l0b3JpZXNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0
b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbEdyb3Vwcyk7CiAKICAgICAgICAgICAgIGNv
bnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0b3JpZXNCeUdyb3VwKHJlcG9zaXRv
cmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2JqZWN0LmtleXMocmVwb3NpdG9yaWVz
QnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3Np
dG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVw
b3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdyb3Vwc1sx
XVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVwb3NpdG9yaWVzQnlHcm91cCkubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlH
cm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlk
KCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdyb3Vwc1sxXVsn
aWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC00MzYsMTcgKzQzNiwxNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtk
Yi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUnKSwgZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScpXSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRv
cnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwg
TW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tE
YXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0t
b25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CiAgICAg
ICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAogICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAocmVwb3Np
dG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3Jp
ZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBv
c2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFj
b3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3Jv
dXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3Jv
dXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKICAgICAgICAg
ICAgIGluaXRpYWxSZXBvc2l0b3JpZXMgPSByZXBvc2l0b3JpZXM7CiAKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKQEAgLTQ1NSwxMyArNDU1LDEzIEBAIGRl
c2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRvcnlHcm91
cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBz
WzFdWyd0cmlnZ2VyYWJsZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIGluaXRpYWxHcm91
cHNbMF1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIGlu
aXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJp
Z2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLCBpbml0aWFsUmVwb3NpdG9yaWVzKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLCBpbml0aWFs
UmVwb3NpdG9yaWVzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3Qt
dGVzdHMuanMKaW5kZXggYThiMTkxZDc1ZmMxYzgwMTY2YmEzNmUxMzUzMzViMDEwNjE4ODlmOC4u
NDk4MmYwOThiZTgxNzY1OTU3ZmExNTIzY2I3ZmRhYTNkNjcwNzVmNCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2Fk
LXJvb3QtdGVzdHMuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIHJvb3Qg
ZmlsZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywge30pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
Tm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgn
c29tZS5kYXQnLCAnc29tZSBjb250ZW50JykudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlKSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
U2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTEzOSw3ICsxMzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnNsYXZlTmFtZTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNz
aW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDksNyArMTQ5LDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgZGVsZXRlIHJlcG9ydC5idWlsZGVyTmFtZTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZGVyTmFtZScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZGVy
TmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU5LDcgKzE1OSw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0
ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAn
MWFiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9y
bURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkQnVpbGROdW1iZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZp
bGUpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnNDU2JzsKICAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0Y2gn
KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgYWNjZXB0IGlmIGJvdGggYnVpbGQgbnVtYmVy
IGFuZCBidWlsZCB0YWcgZXhpc3RzIHdpdGggc2FtZSB2YWx1ZScsIGFzeW5jICgpID0+IHsKQEAg
LTE4OCwzOSArMTg4LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgp
KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25l
ZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkx
OTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCByb290
RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgY29uc3Qg
cmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0
J10pOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7CiAgICAg
ICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9y
bURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjb250
aW51ZSB3b3JraW5nIHdpdGggYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRhZyBpcyBub3QgcHJlc2Vu
dCcsIGFzeW5jICgpID0+IHsKQEAgLTIyOSw0MCArMjI5LDQwIEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogCiAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Bl
bmRpbmcoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGNv
bnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25z
dCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZp
bGUoKTsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRS
ZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxkVGFn
OwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnMTIzJzsKICAgICAgICAgY29uc3QgcmVz
cG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91
cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIGJ1aWxk
IHRpbWUgaXMgbWlzc2luZycsICgpID0+IHsKQEAgLTI3MSw3ICsyNzEsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVw
b3J0LmJ1aWxkVGltZTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJv
b3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxkVGltZSA9ICdXZWQs
IDEwIE1heSAyMDE3IDAzOjAyOjMwIEdNVCc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGltZScp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjkxLDcgKzI5MSw3IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBv
cnQuYnVpbGRSZXF1ZXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVpbGRSZXF1
ZXN0ID0gJ2FiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9h
ZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRl
Um9vdEZpbGUoKS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIG1ha2VS
ZXBvcnQocm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1
ZXN0VHlwZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zMTksNyArMzE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5yZXBvc2l0b3J5TGlzdDsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91
cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMzI5LDcgKzMyOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdhK2InOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBp
L3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJl
cG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0zNDcsNjYgKzM0Nyw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBm
dW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAg
ICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Vi
a2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
J293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRT
bGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7
CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJl
cXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJv
b3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2Fk
ZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRh
LmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxv
YWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgp
LnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBk
YXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJl
cXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCks
IFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxl
cygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlw
dENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhl
bigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQo
cm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeVdyb25nS2V5OiAn
V2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEw
VDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZEtleUZvclJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5Rm9yUmVwb3NpdG9y
eScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDI0LDY2ICs0MjQsNjYgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0
R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAg
ICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFr
ZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZp
bGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5n
bGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgp
LCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJl
cXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBk
YXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5h
bGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFr
ZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29u
dGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tv
d25lclJlcG9zaXRvcnk6ICdXZWJLaXQyJywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENv
cmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJl
cG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVw
b3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTAxLDc5ICs1MDEsNzkgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAg
ICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygp
KTsgCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCks
ICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwog
ICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIG1ha2VS
ZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpKSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVk
RmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290
UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1l
KCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5h
dXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBs
b2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCku
dGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVw
ZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRS
ZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAn
ODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbdXBs
b2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJl
ZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9h
ZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlz
dCA9ICciYSInOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC02MDEsOCArNjAxLDggQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9zaXRvcnlM
aXN0ID0gJ1siV2ViS2l0IiwgIkJhZFJlcG9zaXRvcnlOYW1lIl0nOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290
LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ0Jh
ZFJlcG9zaXRvcnlOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ0JhZFJlcG9zaXRvcnlOYW1l
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MTYsOCArNjE2LDggQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJl
cG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIm1hY09TIl0nOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ21hY09T
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ21hY09TJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC02MzUsMzQgKzYzNSwzNCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Vi
a2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2
ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CkBA
IC02NzAsNDUgKzY3MCw0NSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAi
U2hhcmVkIl0nOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJl
c3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9h
ZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRS
b290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVu
YW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9v
dC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3Vw
KCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVp
bGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRSb290KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJl
ZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9hZGVkUm9vdCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVk
Um9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0
Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBsb2FkZWRSb290KTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbdXBs
b2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJl
ZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNzI3LDg3ICs3MjcsODcgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0R3JvdXAgPSBncm91
cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAg
ICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAg
ICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICB9KS50aGVuKChy
b290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290
RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29u
c3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAg
ICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2Fk
ZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQn
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVz
dC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RH
cm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxk
UmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFs
bFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMo
KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZp
bGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29udGVudCAwJyk7CiAg
ICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQg
PSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tvd25lclJlcG9zaXRv
cnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTct
MDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RS
YXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAganNjUm9vdCA9
IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBs
b2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxl
bmFtZSgpLCAnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0
LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAg
ICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRS
ZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1
ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3RdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCku
YWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZp
bGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11
cGxvYWRlZC1maWxlLXRlc3RzLmpzCmluZGV4IGJlZGM1NDc3ZDU1YTRjNzQ3YjIxZDcwOTQ4NTUy
ZTM1N2Y0NjJhOTQuLjAyZTFkODlmY2MxZDIyZWE2ODZhY2VkMTYwMjI5MjMyMWZkZGQ4ZDMgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9h
ZGVkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcwpAQCAtNywxOSArNywxOCBAQCBnbG9iYWwu
Rm9ybURhdGEgPSByZXF1aXJlKCdmb3JtLWRhdGEnKTsKIAogY29uc3QgVGVzdFNlcnZlciA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBUZW1wb3JhcnlGaWxl
ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMnKS5UZW1wb3JhcnlGaWxl
OworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24t
b3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogCiBkZXNjcmliZSgnL2FwaS91cGxv
YWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91dCg1MDAwKTsKLSAgICBU
ZXN0U2VydmVyLmluamVjdCgpOwotCisgICAgcHJlcGFyZVNlcnZlclRlc3QodGhpcyk7CiAgICAg
VGVtcG9yYXJ5RmlsZS5pbmplY3QoKTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJJbnZhbGlk
QXJndW1lbnRzIiB3aGVuIG5laXRoZXIgcGF0aCBub3Igc2hhMjU2IHF1ZXJ5IGlzIHNldCcsICgp
ID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS91cGxvYWRlZC1maWxlJykudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50
cycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS91cGxvYWRlZC1maWxlLycpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlkQXJndW1l
bnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10s
ICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNyw3ICsy
Niw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2FkZWQt
ZmlsZS8xJykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNSw3ICsz
NCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBsb2FkZWQt
ZmlsZS9mb28nKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ3LDcg
KzQ2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2Fw
aS91cGxvYWRlZC1maWxlLyR7dXBsb2FkZWRGaWxlWydpZCddfWAsICdHRVQnLCBudWxsLCBudWxs
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY4LDEzICs2NywxMyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gIk5vdEZvdW5kIiB3aGVuIHRoZSBzcGVjaWZpZWQgU0hBMjU2IGlzIGludmFsaWQnLCAoKSA9
PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
dXBsb2FkZWQtZmlsZS8/c2hhMjU2PWFiYycpLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJOb3RGb3VuZCIg
d2hlbiB0aGVyZSBpcyBubyBmaWxlIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgU0hBMjU2ICcsICgp
ID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS91cGxvYWRlZC1maWxlLz9zaGEyNTY9NTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNk
NzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3Vu
ZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODYsNyArODUsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRG
aWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9JHt1
cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUsIHJlc3BvbnNlWyd1
cGxvYWRlZEZpbGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9h
ZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTk3LDExICs5NiwxMSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
dXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgY29u
c3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7Ci0gICAgICAgICAgICByZXR1cm4gZGIuY29u
bmVjdCgpLnRoZW4oKCkgPT4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9maWxlcyBTRVQgZmls
ZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCkpOworICAgICAgICAgICAg
cmV0dXJuIGRiLnF1ZXJ5KGBVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VUIGZpbGVfZGVsZXRlZF9h
dCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJ2ApOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkv
dXBsb2FkZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRGaWxlWydzaGEyNTYnXX1gKTsKICAgICAg
ICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xMTcsMTYgKzExNiwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7
CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnZXRh
ZycpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydldGFnJ10sIHVwbG9hZGVk
RmlsZVsnc2hhMjU2J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNb
J2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CiAKICAgICAgICAgICAgIGFzc2VydChP
YmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnYWNjZXB0LXJhbmdlcycpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydhY2NlcHQtcmFuZ2VzJ10sICdieXRlcycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1yYW5nZXMnXSwgJ2J5
dGVzJyk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRl
cygnY29udGVudC1kaXNwb3NpdGlvbicpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFk
ZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxlbmFtZSo9dXRmLTgn
J3NvbWUuZGF0YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29u
dGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVudDsgZmlsZW5hbWUqPXV0Zi04Jydzb21lLmRh
dGApOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycykuaW5jbHVkZXMo
J2NvbnRlbnQtbGVuZ3RoJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2Nv
bnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCB1cGxvYWRlZEZpbGVbJ3Np
emUnXSk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRl
cygnbGFzdC1tb2RpZmllZCcpKTsKICAgICAgICAgfSk7CkBAIC0xNDQsNyArMTQzLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxh
c3RNb2RpZmllZCA9IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91
cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLmhlYWRl
cnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ10sIGxhc3RNb2RpZmll
ZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsOSArMTU1LDkgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxl
LyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPTUt
J319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVy
c1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDUtMTEv
MTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRl
eHQsICdjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzAsOSArMTY5LDkg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91
cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1Jhbmdl
JzogJ2J5dGVzPTQtOSd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQtOS8xMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJyBjb250ZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAn
Ynl0ZXMgNC05LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnIGNvbnRlJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xODQs
OSArMTgzLDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVz
dChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJz
OiB7J1JhbmdlJzogJ2J5dGVzPS00J319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOC0xMS8xMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3RlbnQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFu
Z2UnXSwgJ2J5dGVzIDgtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZS5yZXNwb25zZVRleHQsICd0ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xOTgsOSArMTk3LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRw
UmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHto
ZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS0xMDAnfX0pOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyAw
LTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0
LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFk
ZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyAwLTExLzEyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjA5LDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKICAgICAgICAgICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydp
ZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBS
ZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hl
YWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9MTItJ319KQotICAgICAgICAgICAgICAgIC50aGVuKCgp
ID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4g
YXNzZXJ0LmVxdWFsKGVycm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0y
MjAsNyArMjE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGlk
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUv
JHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9Mi0x
J319KQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVycm9yLCA0MTYpKTsK
KyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDE2KSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMzIsMTUgKzIzMSwxNSBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaWQgPSByZXNw
b25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAs
ICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0
LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBu
dWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzID0g
OS0xMCcsICdJZi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXX19KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRl
cnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29u
dGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1MiwxNSArMjUxLDE1IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpZCA9IHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwg
J0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQs
ICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51
bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXMgPSA5
LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1snZXRhZyddfX0pOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3Bv
bnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdl
J10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhl
YWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMjcyLDEzICsyNzEsMTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2Fk
ZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVzcG9uc2VbJ3VwbG9h
ZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVs
bCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29u
dGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0
dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwK
ICAgICAgICAgICAgICAgICB7J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJZi1SYW5nZSc6ICdm
b28nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVu
dCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAzLDcgKzMwMiw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IGVuZEJ5dGUgLSBzdGFydEJ5dGUgKyAxOyBpKyspIHsKICAgICAgICAgICAg
ICAgICBjb25zdCBhY3R1YWwgPSByZXNwb25zZUJ1ZmZlcltpXTsKICAgICAgICAgICAgICAgICBj
b25zdCBleHBlY3RlZCA9IGJ1ZmZlcltzdGFydEJ5dGUgKyBpXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGluZGV4ICR7aX0gc2hv
dWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1g
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0dWFsLCBleHBlY3RlZCwg
YFRoZSBieXRlIGF0IGluZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0ZWQgJHtl
eHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CkBAIC0zMTUsOCArMzE0LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6IGBieXRlcyA9ICR7
c3RhcnRCeXRlfS0ke2VuZEJ5dGV9YH0sIHJlc3BvbnNlSGFuZGxlcn0pOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNl
LmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10s
IGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCBgYnl0ZXMg
JHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxlU2l6ZX1gKTsKICAgICAgICAgICAgIHZlcmlm
eUJ1ZmZlcigpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2
aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggMTRlOTQ1NmQyZTY3
YTVjNzEwMDEyMGIxNTQ2NDgwYzI3MTZkZWJmNC4uYjEwNzQ5YTBkMWU5MDM4ZTFmYjJlOTEzOTM0
YTYzYWEyMjUwZGQ1ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5bmMgZnVuY3Rpb24g
Y3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkxNjIyIiwgIjE5
MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0
ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxh
dGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNl
bGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogCi0gICAg
YXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICBuYW1l
OiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBAIC0xNDAsMjMg
KzE0MCwyMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uKCkgewogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1
cGRhdGUtdGVzdC1ncm91cCcsIHsnZ3JvdXAnOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3Jl
UmVxdWVzdHM6IHRydWV9KTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElk
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCksIDIpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChncm91cC5yZXBldGl0
aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3Jv
dXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7CiAKICAgICAgICAgYXdhaXQgUHJpdmls
ZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywge2dyb3VwOiBpbnNlcnRl
ZEdyb3VwSWQsIGFkZENvdW50OiAyfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9
IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCA0KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0aXRpb25Db3VudCgp
LCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh1cGRhdGVkR3JvdXBzWzBd
LnJlcGV0aXRpb25Db3VudCgpKSwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSksIDIpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVl
KTsKICAgICAgICAgZm9yIChjb25zdCBjb21taXRTZXQgb2YgdXBkYXRlZEdyb3Vwc1swXS5yZXF1
ZXN0ZWRDb21taXRTZXRzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB1
cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RzRm9yQ29tbWl0U2V0KGNvbW1pdFNldCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgfQog
ICAgIH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2FkZC1idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBjb25zdCBpbnNlcnRl
ZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdy
b3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmluaXRpYWxSZXBldGl0
aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVl
ZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChncm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7CiAgICAg
ICAgIGF3YWl0IGdyb3VwLnVwZGF0ZUhpZGRlbkZsYWcodHJ1ZSk7CiAKICAgICAgICAgYXdhaXQg
YXNzZXJ0VGhyb3dzKCdDYW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFzeW5jICgpID0+IGF3
YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycsIHtncm91
cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlz
aXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5kZXggOTk2ZDJk
ZDMyZDc2YmE1NDc1M2U2MzlmZjhhZjliMzU2ZjI3OTdkOC4uMGU2ODYxYjdlYzZiZWJlNTUyYTY0
ZDg3M2ZlNTc2NmI1ZDExNzQyZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0xMTMsNyArMTEzLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIg
cHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnTWlz
c2luZ05hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ01pc3Np
bmdOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMjEsNyArMTIxLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIg
cHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIGVuZFJ1bjogMX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2sn
LCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRF
bmRSdW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRF
bmRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBw
cml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46ICJmb28i
LCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46ICJmb28i
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMt
dGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMTAwLCBlbmRSdW46IDF9KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTY4LDcgKzE2OCw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZp
bGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEsIGVu
ZFJ1bjogMTAwfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVu
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZEVu
ZFJ1bicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTgwLDcg
KzE4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sg
d2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hp
Jywgc3RhcnRSdW46IDEsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnSW52YWxpZFRpbWVSYW5nZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFs
eXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDJ9KS50aGVuKChj
b250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNoJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlzbWF0Y2gnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIxMiwyMCArMjEyLDIwIEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93
c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6
IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1l
OiAnaGknLCBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1b
J2lkJ119KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwogICAgICAgICB9
KS50aGVuKCh0YXNrKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCks
ICdoaScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnaGkn
KTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZp
eGVzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCks
ICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMo
KS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjQ0LDIyICsyNDQsMjIgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93Wydp
ZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0
UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogICAg
ICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5hbHlzaXNU
YXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0pLnRoZW4oKHRhc2sp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdoaScpOwogICAgICAgICAg
ICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2su
aGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygp
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZv
cm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJl
bCgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnN0YXJ0VGltZSgp
LCAxNDQ1OTYwMDkxMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmVuZFRpbWUo
KSwgMTQ0NTk2Njg2MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRh
c2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2su
Y2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5m
aXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VU
eXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZv
cm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5NjAwOTEwMDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suZW5kVGltZSgpLCAxNDQ1OTY2ODYx
MDAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MCw3ICsyODAsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2
aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBzdGFydElkID0gdGVz
dFJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBlbmRJZCA9IHRlc3RSdW5zWzFdWydpZCddOwog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFs
eXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46IGVuZElk
fSk7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10
YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46IGVuZElkfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgnYW5hbHlzaXNfdGFza3MnKTsKICAgICAgICAgfSkudGhlbigo
dGFza3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2tzLmxlbmd0aCwgMSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0zMTIsNyArMzEyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBm
dW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICAgICAgICAgIG5hbWU6ICdo
aScsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMzMw
LDggKzMzMCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRh
c2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICBmb3IgKGxl
dCBzdHJhdGVneSBvZiBzdHJhdGVnaWVzKQogICAgICAgICAgICAgICAgIHN0cmF0ZWd5SWRNYXBb
c3RyYXRlZ3lbJ2lkJ11dID0gc3RyYXRlZ3k7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
dHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSddLCAidGltZSBzZXJp
ZXMgc2VnbWVudGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RyYXRlZ3lJZE1h
cFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3MgdC10ZXN0Iik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1hcFt0YXNrUm93WydzZWdt
ZW50YXRpb24nXV1bJ25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlvbiIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1sndGVzdF9yYW5n
ZSddXVsnbmFtZSddLCAic3R1ZGVudCdzIHQtdGVzdCIpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMzQ2LDcgKzM0Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNv
bnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsK
ICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3Rf
Y29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZv
cm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQg
ZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCB3ZWJraXRS
ZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmllcycsIHtu
YW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtpdFJlcG9zaXRv
cnlSb3cuaWQ7CkBAIC0zNzEsNyArMzcxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAg
ICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3Jt
Jyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0
ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBs
YXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQg
ZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCB3ZWJraXRS
ZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmllcycsIHtu
YW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtpdFJlcG9zaXRv
cnlSb3cuaWQ7CkBAIC0zODcsMTggKzM4NywxOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogCiAgICAgICAgIGNvbnN0IHRhc2sgPSBh
d2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCghdGFzay5o
YXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkp
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VU
eXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVs
KCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygp
LnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2su
Y2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVz
KCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgp
LCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRy
aWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3Vw
cyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3Jl
YXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIHdoZW4gY29tbWl0IHNldCBsaXN0
IGFuZCBhIHBvc2l0aXZlIHJlcGV0aXRpb24gY291bnQgaXMgc3BlY2lmaWVkJywgYXN5bmMgKCkg
PT4gewpAQCAtNDI2LDcgKzQyNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAg
IGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKICAgICAg
ICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmln
dXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNv
bWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2Vs
ZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNl
dCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0IGFu
b3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CkBA
IC00MzYsMzggKzQzNiwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFs
eXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAg
c3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7
CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29u
dGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25m
aXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0n
KTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0
YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtd
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwog
CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0
R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBd
LnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdn
ZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2Vy
YWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3Jv
dXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
dGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRm
b3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgp
LCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCks
IHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5
c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQo
KSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0
MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRl
c3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgp
LCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzQnVpbGQo
KSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAt
NDc3LDggKzQ3Nyw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNvbnN0IGZp
cnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29u
c3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKICAgICAg
ICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0SWQp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9y
eSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0
b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlz
aW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1p
dFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcx
OTE2MjMnKTsKICAgICB9KTsKIH0pOwogCkBAIC01MDAsNyArNTAwLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBh
cGknLCBmdW5jdGkKICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5
TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1l
dHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAg
Y29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmln
OiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0
aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwog
CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdl
YmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTU0OCw3ICs1NDgsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0u
ZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRi
LnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0
cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBj
b25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6
IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAK
ICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAn
MTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElk
XToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNTU4LDM4ICs1NTgsMzggQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdl
ZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwg
ZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAgICAgIGNvbnN0IHRhc2sgPSBhd2Fp
dCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCghdGFzay5oYXNS
ZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUo
KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwg
J3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVz
dCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRh
c2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVz
ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwg
W10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdz
b21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygp
LnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0g
YXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0n
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJt
Jyk7CiAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwog
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJh
YmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJs
ZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlk
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0u
dHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVz
dEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVz
dEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0
Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxh
dGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgp
LCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAgICAgIGFzc2VydC5v
ayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxk
UmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTU5OSw4ICs1OTksOCBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFw
aScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24o
KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1p
dEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJr
aXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBpdCgn
c2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCBhbmQgcmVzcGVj
dCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJlcXVlc3QnLCBhc3lu
YyAoKSA9PiB7CkBAIC02MjgsNyArNjI4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAg
ICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpOwog
ICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9j
b25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9y
bTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBk
Yi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IG9uZVJldmlz
aW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAgICAgY29u
c3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9
fTsKQEAgLTYzOCwzOCArNjM4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAg
ICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lk
J10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3
YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhh
c1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlw
ZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgp
LCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50
ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNh
dXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwg
J3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmlj
KCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMg
PSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmly
bScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZp
cm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2Vy
YWJsZUlkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFi
bGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJ
ZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBd
LnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRl
c3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRl
c3RHcm91cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxh
dGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBs
YXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQo
KSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQu
b2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC02NzksNyArNjc5LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBh
cGknLCBmdW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3Rz
WzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJl
cXVlc3RzWzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0g
UmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJz
dENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9u
KCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9z
aXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpp
bmRleCAwOWNkMzdhYjQzNmNiM2E3YmI3Y2I4Zjg0OWJjYTlkZTIyN2MxNDQxLi5kZGY0OTkzYTRm
OGUxOTZkOWMzMjM0ZWY2ZGRiMTUwNzIwYmMzYTE0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3Vw
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTgzLDcgKzgzLDcgQEAg
ZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkx
NjIyIiwgIjE5MTYyMyJdKQogICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewogICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7CiAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5s
ZW5ndGgsIDIpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAgICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICAg
ICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTM3LDcgKzEzNyw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91
cCcsIHt9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWROYW1lJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkTmFtZScpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIGNvbW1p
dFNldHM6IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE1Myw3ICsxNTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3Qn
LCB0YXNrOiAnZm9vJywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0lu
dmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZh
bGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTYxLDcgKzE2MSw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogMX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNjksNyArMTY5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazog
MSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7fX0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NzcsNyArMTc3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlv
bkNvdW50OiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
J0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xODUsNyArMTg1LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAnZm9v
JywgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFs
aWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTE5Myw3ICsxOTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCByZXBldGl0
aW9uQ291bnQ6IC01LCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6
IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAg
ICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZh
bGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxp
ZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzOiB7J1dlYktp
dCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJpZ2dlcmFibGVOb3RG
b3VuZEZvclRhc2snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rl
c3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMzEsNyArMjMxLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzOiBbe1t3
ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge31dfSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjQyLDcgKzI0Miw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0czogW3tbd2Vi
a2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX1dfSkudGhlbigoY29udGVudCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnRm9vJzogW119fSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5Tm90Rm91
bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI2Miw3ICsy
NjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRT
ZXRzOiB7J1dlYktpdCc6IFsnMSddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAg
ICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
UmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0Jywg
dGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC0yODYsNyArMjg2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0yOTgsNyArMjk4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1l
OiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEwLDcgKzMxMCw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmlsZScpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZpbGUnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyMSw3ICszMjEsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcG9zaXRvcnknKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMzMSw3ICszMzEsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzOiB7
J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1QTI4NCddfX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzQ1LDcgKzM0NSw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRHVwbGljYXRl
VGVzdEdyb3VwTmFtZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTM2Miw3ICszNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zNzgsNyArMzc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRD
b21taXRPd25lcnNoaXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
J0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM5
MywxNyArMzkzLDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbb3du
ZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJSZXZpc2lvbjog
JzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0
aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElkKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1sw
XS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1swXS5pc1Rlc3QoKSk7
CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTQxOCwxNCAr
NDE4LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25z
dCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRv
cmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdP
bmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29z
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlND
LCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00NDAsMTcgKzQ0MCwxNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIHtbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNjLmlkKCldOiB7
cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYnfX1dOwog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291bnQ6IDEs
IHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5v
ayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwogICAgICAgICAgICAg
YXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00NjUsMTMgKzQ2NSwxMyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
Lm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFd
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtvd25l
ZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMo
KSksIFtvd25lZEpTQywgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2Mt
OTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtvd25l
ZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNDgyLDI4ICs0ODIsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNl
cnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IG1hY29z
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
LndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVx
dWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVz
KCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9y
aWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwogCiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3Np
dG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwogICAgICAg
ICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAgICAgICAg
ICAgIH0pOwpAQCAtNTIxLDI0ICs1MjEsMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRl
ZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSBy
ZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVx
dWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlH
cm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAubmFt
ZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICd3ZWJraXQtb25s
eScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAs
IHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQo
cmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChy
ZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTU1Mywz
MyArNTUzLDMzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVu
dFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5m
aWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsK
ICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChy
ZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVswXTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0u
Y29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29t
bWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3Np
dG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtp
dCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5
R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBv
c2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRv
cnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJd
LnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9y
eUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMo
c2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhz
ZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTYwMCwyOCArNjAwLDI4IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
ICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25z
dCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgICAg
ICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAg
Y29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMmNl
ZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0MycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1N2U4Nzk1MzMnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0
b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0
MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcyY2Vk
YTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1
QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2ZkMWEyOWM2MzNiYTU3
ZTg3OTUzMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1lKCksICdzeXN0
ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMSwgcmVwb3NpdG9yeUdy
b3VwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cDEsIHJlcG9zaXRvcnlHcm91cDApOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5
R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5
R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02NDIsMzIgKzY0Miwz
MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RH
cm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0
cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwog
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3
ZWJraXRdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAu
cmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAKICAgICAgICAgICAgICAgICBjb25z
dCByZXBvc2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoIXJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAKICAgICAgICAgICAgICAgICBj
b25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEubmFtZSgpLCAnd2Vi
a2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vw
MSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDEsIHJlcXVl
c3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXJlcG9z
aXRvcnlHcm91cDEuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9z
aXRvcnlHcm91cDEuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTY5MSwyOCAr
NjkxLDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAg
PSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0g
cmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxvYWRlZEZpbGUuZW5z
dXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxlKV0pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3Rv
bVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmll
cygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW1VwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24o
dXBsb2FkZWRGaWxlWydpZCddLCB1cGxvYWRlZEZpbGUpXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwog
ICAgICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwpAQCAtNzQwLDUwICs3NDAsNTAgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlu
c2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3Jt
KCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQo
KSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1
aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAg
IGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0
IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJl
cG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRv
cnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJv
b3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQx
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZv
clJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxz
KHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC04MDUsNjAgKzgwNSw2MCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNh
dGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmlu
ZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3Jt
SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVz
dC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5z
b21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1
aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0
cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFs
c2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQo
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlz
QnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsK
IAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAg
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0
Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnko
bWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVp
bGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcx
OTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3Vz
dG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtODgwLDYxICs4ODAsNjEgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9
IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZp
bmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJ
ZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwg
UGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0
KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
M10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSBy
ZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0
c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5j
b21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10u
Y29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRd
LmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygp
KSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVz
KCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpz
Yy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVp
bGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9t
Um9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSks
IFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0
MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAn
b3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShq
c2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAgICAgICAgICAgICBh
c3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05NjMs
NjggKzk2Myw2OCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsn
dGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFn
cm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5m
aW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
aXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0u
aXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3Qo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNU
ZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVd
LmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBd
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQo
KSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0
KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3
ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9t
Um9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2Ms
IHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0
b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0
KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtq
c2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
c2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9z
aXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2Fk
ZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworCisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFj
b3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdv
d25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAgICAgICAgIGFz
c2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEwNTcs
NzcgKzEwNTcsNzcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRb
J3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50
ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0
Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
M10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRd
LmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBd
LmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1
XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1sw
XS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQo
KSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0
KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNl
dCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRT
ZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywg
b3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmll
cygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLQotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0K
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTI3
MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOwotCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy02MTYx
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJ2pzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZv
clJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkoanNjKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0Ms
IGpzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MjczNicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTYxNjEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShqc2MpLCBmYWxzZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMTU0LDQ1ICsxMTU0LDQ1IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElk
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChN
b2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5w
bGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRC
eUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0
Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1
ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxk
KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5p
c0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMV0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
aXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25z
dCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRv
cmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3Vz
dG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNl
dDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5j
b21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmll
cygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJl
cG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7
CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
UGF0Y2hOb3RBY2NlcHRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnUGF0Y2hOb3RBY2NlcHRlZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTIzMCwy
NCArMTIzMCwyNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRb
J3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vw
c10gPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rh
c2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0p
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2sn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhl
ciB0YXNrJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayhncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3Rz
KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBz
ZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1
ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9z
aXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0
b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9v
dHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGJl
IGFibGUgdG8gY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIG5lZWRzLW5vdGlmaWNhdGlvbiBmbGFn
IHVuc2V0JywgYXN5bmMgKCkgPT4gewpAQCAtMTI1OSwyNCArMTI1OSwyNCBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAg
ICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9taXNlLmFsbChb
QW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwo
YW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElk
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAg
ICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRv
cmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5j
dXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBjdXN0b20gdGVzdCBncm91
cCBmb3IgYW4gZXhpc3RpbmcgY3VzdG9tIGFuYWx5c2lzIHRhc2snLCAoKSA9PiB7CkBAIC0xMjk2
LDQzICsxMjk2LDQ0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0MicsIHRhc2s6
IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKSwg
dGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9KTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBzZWNvbmRSZXN1bHQgPSByZXN1bHQ7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RSZXN1bHRbJ3Rhc2tJZCddLCBzZWNvbmRSZXN1bHRb
J3Rhc2tJZCddKTsKKyAgICAgICAgICAgIC8vIHBnIGZ1bnRpb25zIHdpbGwgcmV0dXJuIGFsbCBk
YXRhIGFzIHN0cmluZywgc28gd2UgbmVlZCBtYWtlIHN1cmUgdGhhdCB3ZSBjb21wYXJlIGFzIGlu
dAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGZpcnN0UmVzdWx0Wyd0
YXNrSWQnXSksIHBhcnNlSW50KHNlY29uZFJlc3VsdFsndGFza0lkJ10pKTsKICAgICAgICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJ
ZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwog
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFthbmFseXNp
c1Rhc2ssIHRlc3RHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIFRlc3RH
cm91cC5zb3J0QnlOYW1lKHRlc3RHcm91cHMpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwc1swXS5uYW1lKCksICd0ZXN0MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
ICAgICAgICAgICAgIGxldCByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMF0uYnVpbGRSZXF1ZXN0cygp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
IGxldCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgc2V0
MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIzJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzWzFdLm5hbWUo
KSwgJ3Rlc3QyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1sxXS5yZXBl
dGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMV0ubmFtZSgpLCAndGVzdDInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzFdLnJlcGV0aXRpb25Db3VudCgpLCAyKTsK
ICAgICAgICAgICAgIHJlcXVlc3RzID0gdGVzdEdyb3Vwc1sxXS5idWlsZFJlcXVlc3RzKCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgc2V0
MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgc2V0MSA9IHJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sy
XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5j
b21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3Rh
dHVzLmpzCmluZGV4IDQzYjQwN2VjYTlkZDAyOWRhYWFiODQ2MzdhNmRjMTI1NjNkZjE1OTEuLmI1
N2EwMjExZTY4N2Y5YTNjNzI3NGM3NzQ5YjZkNWUxZmZhYWRhMWEgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVu
LXN0YXR1cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMKQEAgLTM5LDEzICszOSwxMyBAQCBkZXNj
cmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVz
dF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hl
J10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtl
ZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIGlkID0gcnVuUm93c1swXVsnaWQnXTsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01MywxMCArNTMsMTAgQEAgZGVzY3JpYmUoIi9wcml2
aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMn
KTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dz
WzBdWydtZWFuX2NhY2hlJ10sIDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dz
WzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGll
ciddLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY1LDExICs2NSwxMSBAQCBk
ZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25b
MF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgn
dGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgUmVtb3RlQVBJLmNsZWFyQ29va2llcygpOwpAQCAt
NzcsNyArNzcsNyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVz
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJv
cikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1LDE4ICs4NSwxOCBAQCBkZXNjcmliZSgiL3By
aXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBSZW1vdGVBUEkucG9zdEpT
T05XaXRoU3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMnLCB7dG9rZW46
ICdiYWQnfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTA1LDIzICsxMDUsMjMgQEAgZGVzY3JpYmUoIi9wcml2aWxl
Z2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAg
ICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
Um93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21h
cmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93
c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBydW5Sb3dz
WzBdWydpZCddLCAnbWFya2VkT3V0bGllcic6IHRydWV9KTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAg
ICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJr
ZWRfb3V0bGllciddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5S
b3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1sw
XVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1zdGF0dXMnLCB7J3J1bic6IHJ1blJvd3NbMF1b
J2lkJ10sICdtYXJrZWRPdXRsaWVyJzogZmFsc2V9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAg
fSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Mu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRf
b3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1b
J21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
CmluZGV4IDAyMTE2ZWQ4ZDhiYmU5MjBkYmYxOGQ2MTdlOGY5NTkzMmM3ODM1OTkuLjIyZmQwZmVj
NmUzNGIxOGJjMjFhOWRiZGE1YjlhMTVjMTQ2YTg1OTAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3Jv
dXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9w
cml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtNzksNyArNzksNyBA
QCBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNpb25z
ID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIu
c2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0Lm1ldHJp
Y3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAgIGNvbnN0IHRlc3RS
dW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBjb25zdCBjb250ZW50
ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2sn
LCB7CiAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsn
aWQnXSwKQEAgLTE2NSwyMCArMTY1LDIwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBk
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3Vw
SWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9
IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCB0
cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVkc05vdGlmaWNhdGlv
bigpLCB0cnVlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRpb25TZW50QXQo
KSk7CiAKICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VudEF0ID0gbmV3IERhdGU7CiAgICAg
ICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywg
e2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0aW9uOiBmYWxzZSwgbm90aWZp
Y2F0aW9uU2VudEF0OiBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKX0pOwogCiAgICAg
ICAgIGNvbnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vw
cy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVk
c05vdGlmaWNhdGlvbigpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzWzBdLm5vdGlmaWNhdGlvblNlbnRBdCgpLnRvSVNPU3RyaW5nKCksIG5vdGlmaWNhdGlvblNl
bnRBdC50b0lTT1N0cmluZygpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91
cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5ub3RpZmljYXRpb25TZW50QXQoKS50b0lTT1N0cmluZygp
LCBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKSk7CiAgICAgfSk7CiAKICAgICBpdCgn
c2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlICJuZWVkc19ub3RpZmljYXRpb24iIGZpZWxkIHRvIHRy
dWUnLCBhc3luYyAoKSA9PiB7CkBAIC0xOTAsMTggKzE5MCwxOCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3Qg
aW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3Rp
ZmljYXRpb25TZW50QXQoKSk7CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbmVlZHNO
b3RpZmljYXRpb246IHRydWV9KTsKIAogICAgICAgICBjb25zdCB1cGRhdGVkR3JvdXBzID0gYXdh
aXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCks
IHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsK
ICAgICB9KTsKIApAQCAtMjE0LDEwICsyMTQsMTAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVk
R3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVl
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3Jl
UmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5v
dGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgIH0pOwpAQCAtMjMxLDIyICsyMzEsMjIgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAg
ICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAog
ICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhy
ZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogCiAgICAg
ICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywg
e2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAog
ICAgICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
cmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgYXdh
aXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6
IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogZmFsc2V9KTsKIAogICAgICAg
ICB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rh
c2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVS
ZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBz
WzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgIH0pOwogCiAgICAgaXQoJ3No
b3VsZCBjbGVhciAibWF5X25lZWRfbW9yZV9yZXF1ZXN0cyIgd2hlbiBoaWRpbmcgYSB0ZXN0IGdy
b3VwJywgYXN5bmMgKCkgPT4gewpAQCAtMjU4LDIyICsyNTgsMjIgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0
IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25z
dCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogCiAgICAgICAgIGF3YWl0IFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNl
cnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAogICAgICAgICBsZXQg
dXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNr
SWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwg
MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVx
dWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBd
Lm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3Jv
dXBJZCwgaGlkZGVuOiB0cnVlfSk7CiAKICAgICAgICAgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigpLCB0cnVlKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygp
LCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmlz
SGlkZGVuKCksIHRydWUpOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2
aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKaW5kZXgg
ZTBmOGEyOGRmZTYxMzEyODlhOTI2MTY5ZDExODkxNjkwYmRmYWZiMC4uNDdlOTM4YTIzMzQ5ODky
NzRhMWI5MGI3ZWFkNzE0OWE3ZDA5ODRkOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LXVwbG9hZC1maWxlLXRlc3RzLmpzCkBAIC0yNyw3ICsyNyw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHt9LCB7dXNlRm9ybURhdGE6IHRy
dWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTM2LDcgKzM2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6
IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVMaW1pdEV4Y2VlZGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmlsZVNpemVMaW1p
dEV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC01
MSwxNSArNTEsMTUgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRl
ZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVz
JywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5pZCwgdXBsb2FkZWRGaWxlLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZi
ZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlLmlkKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGlt
aXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5zaXplKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2Fk
ZWRGaWxlLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBd
LmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFj
NWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC03OSwxNiArNzksMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNwb25z
ZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxv
YWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmlsZTIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxl
bmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYx
MTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEu
c2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxl
MSwgdXBsb2FkZWRGaWxlMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBh
cnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJ
bnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYy
NDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmls
ZTEuc2hhMjU2KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOCwxNiArMTA4LDE2IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAg
ICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAg
ICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1
cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5pZCwgdXBs
b2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBs
aW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNk
NzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmlsZTIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLmlk
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXpl
KSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuc2l6ZSkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21l
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUs
IHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdi
MjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMzksMjYgKzEzOSwyNiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxl
MiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxl
Y3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh1cGxvYWRlZEZpbGUxLmlkLCB1cGxvYWRl
ZEZpbGUyLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5pZCwgdXBsb2FkZWRGaWxlMi5pZCk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlMS5pZCwgdXBsb2Fk
ZWRGaWxlMi5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50
KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzFdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLmlkKSk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMi5maWxl
bmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwg
J3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxl
bmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIuZmlsZW5hbWUpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0
ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRl
ZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBs
b2FkZWRGaWxlMi5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUs
IHJvd3NbMV0uc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYs
ICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIy
MWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVw
bG9hZGVkRmlsZTEuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNo
YTI1NiwgdXBsb2FkZWRGaWxlMi5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50
KHVwbG9hZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIuc2l6ZSkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2l6ZSwgcm93c1sxXS5zaXplKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4
ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2Fk
ZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
c2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsK
ICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIGxp
bWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
Lm1pbWUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFyLmd6NScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3
ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAy
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5taW1lLCAnYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1
ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE5NSwxMyArMTk1LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQn
KTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3MubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVu
YW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzBdLmRl
bGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5h
bWUsICdvdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmRlbGV0
ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUs
ICdhbm90aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRl
ZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdz
b21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMF0uZGVs
ZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5m
aWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSkKICAgICB9KTsK
IApAQCAtMjE3LDE0ICsyMTcsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTog
dHJ1ZX0pOwogICAgICAgICB9CiAgICAgICAgIGxldCByb3dzID0gYXdhaXQgZGIuc2VsZWN0QWxs
KCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIHNw
bGl0Q291bnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIHNwbGl0
Q291bnQpOwogCiAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IFRlbXBvcmFyeUZpbGUubWFr
ZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKCdsaW1pdC5kYXQnLCBsaW1pdEluTUIsICdhJyk7CiAg
ICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25l
d0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pOwogICAgICAgICByb3dzID0gYXdh
aXQgZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3MubGVuZ3RoLCBzcGxpdENvdW50ICsgMSk7CiAgICAgICAgIGNvbnN0IGRlbGV0ZWRGaWxl
cyA9IHJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1snZGVsZXRlZF9hdCddKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91
bGQgbm90IHBydW5lIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQnLCBhc3luYyAoKSA9PiB7
CkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRy
dWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4
Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMTIs
MTMgKzMxMiwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBk
Yi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJv
d3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5wYXRjaCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5w
YXRjaCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9h
dCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5maWxlbmFt
ZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sy
XS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0NiwxMyAr
MzQ2LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jvb3QudGFyLmd6Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jvb3QudGFyLmd6Jyk7
CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAn
YW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmRl
bGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzgyLDcgKzM4Miw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZp
bGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24t
b3BlcmF0aW9ucy5qcwppbmRleCA1OGI1MTEzMTE5YmY2MTBjNDdlMjg0N2ZhMDczMDdlMWU1YWYy
ZjZmLi4xOWI5YzExZmYwY2YzYzRhZjNjOTI0M2E5MDMxOTQyOTYzZjM3NDUzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24t
b3BlcmF0aW9ucy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwpAQCAtNTYsNyArNTYsNyBAQCBhc3luYyBm
dW5jdGlvbiBhc3NlcnRUaHJvd3MoZXhwZWN0ZWRFcnJvciwgdGVzdEZ1bmN0aW9uKQogICAgICAg
ICAgICAgYXdhaXQgdGVzdEZ1bmN0aW9uKCkKICAgICB9IGNhdGNoKGVycm9yKSB7CiAgICAgICAg
IHRocm93bkV4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgZXhw
ZWN0ZWRFcnJvcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgZXhwZWN0ZWRF
cnJvcik7CiAgICAgfQogICAgIGFzc2VydC5vayh0aHJvd25FeGNlcHRpb24pOwogfQpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVt
cG9yYXJ5LWZpbGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jl
c291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwppbmRleCA3Yjg0YjI0YmZlNmE4ODM3ZWVjNzQyN2M4
NzYwZTRiMjAxZGRiMGM3Li4yNjJiMmZkNGUxNzIwYjYzNTY2OGI2NmUwZDhlYjg3NWQwODYwODlm
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy90ZW1wb3JhcnktZmlsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwpAQCAtMTIsNyArMTIsNyBAQCBj
bGFzcyBUZW1wb3JhcnlGaWxlIHsKICAgICAgICAgbGV0IG1lZ2FieXRlU3RyaW5nID0gY2hhcmFj
dGVyVG9GaWxsOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspCiAgICAgICAg
ICAgICBtZWdhYnl0ZVN0cmluZyA9IG1lZ2FieXRlU3RyaW5nICsgbWVnYWJ5dGVTdHJpbmc7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEwMjQgKiAxMDI0KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lZ2FieXRlU3RyaW5nLmxlbmd0aCwgMTAyNCAq
IDEwMjQpOwogCiAgICAgICAgIGxldCBjb250ZW50ID0gJyc7CiAgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgc2l6ZUluTUI7IGkrKykKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCmluZGV4IDYwNGRhNzM0ZGEwY2UzYjBjZWMwYjA5NWFmZjkwMTVjZGQ5
NzcxZDkuLjQ1MGYwYzNhODMzNmY1NGRmZjJkZmY4YzAxOTY4ZDkwNGVlZWY2MDYgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3Qt
dHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMTEsOCArMTEs
OCBAQCBjb25zdCBNb2NrTG9nZ2VyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1sb2dnZXIu
anMnKS5Nb2NrTG9nZ2VyOwogCiBmdW5jdGlvbiBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1
ZXN0LCBtZXRob2QsIHVybCwgY29udGVudCkKIHsKLSAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5t
ZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOworICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRl
bnQpOwogfQogCkBAIC00MCw0NSArNDAsNDUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtN
b2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCld
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lk
JzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6Ci0g
ICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogNzAyLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTEnfX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lk
JzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoK
KyAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0
JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNv
bWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFi
bGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKS50cmlnZ2Vy
YWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVs
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAKQEAgLTk3LDM4ICs5NywzOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgp
LCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7J2J1aWxk
cycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
RGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCks
ICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRy
aWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCku
dHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1
bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdj
b21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCkBAIC0xNDcsNzAgKzE0Nyw3MCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDk5OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hl
ZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTIn
fX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgn
T0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1
aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShN
b2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5h
bWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0
cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVx
dWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQ5LDYyICszNDksNjIgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3
fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAx
N30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
IDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5
bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RT
eW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw3MCArNDIzLDcwIEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtN
b2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dp
dGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVl
c3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUwNSw1MCArNTA1LDUw
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElk
OiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAw
fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRl
cnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NzAsODYgKzU3
MCw4NiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJlcXVl
c3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
XX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9y
Y2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
ICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUo
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MTAsIGJ1aWxkYm90QnVpbGRS
ZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRh
LnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRy
aWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRy
aWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0
cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAnc2NoZWR1
bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY3MSw5MSArNjcxLDkx
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcw
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcw
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAg
ICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVp
bGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJl
c29sdmUoJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzExJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1Qn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXIt
MScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3
MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzExJywgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZl
KE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMSwgYnVpbGRib3RCdWls
ZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVy
IDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s4XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0
SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s5XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyIDIn
KSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEw
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
Mikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMyku
c3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyIDInLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAnc2No
ZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJl
cXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVz
dHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAnc2No
ZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9i
dWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTc3Niw2MCAr
Nzc2LDYwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1sx
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9y
Y2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
cXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6
ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNv
bWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjIn
LCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTApKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzJdLnJlc29s
dmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJl
cXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmln
Z2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtODU0LDI3ICs4NTQsMjcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiks
CiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHti
dWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAnUE9TVCcsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lk
JzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzog
J2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2Jywg
J29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNj
aGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQp
OwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwKICAgICAg
ICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAx
LCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCiAgICAgICAg
ICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CkBAIC04
ODMsMjAgKzg4MywyMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s1
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4
KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKICAg
ICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJl
cXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzld
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAog
ICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRh
KHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CkBAIC05MTgsNTggKzkxOCw1OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9
fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdP
SycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50
cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwg
J2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2No
ZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9i
dWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTk4OCw0MiAr
OTg4LDQyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9y
VHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCku
dHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVk
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTEwNDUsMjMgKzEwNDUsMjMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
c29tZS1idWlsZGVyLTEnKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcxMCcsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgfSk7CkBAIC0xMDc5LDcxICsxMDc5LDcxIEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0
IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVp
bGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXVzZSB0aGUg
cm9vdHMgZnJvbSBhIGNvbXBsZXRlZCBidWlsZCByZXF1ZXN0IHdpdGggdGhlIHNhbWUgY29tbWl0
IHNldCcsIGFzeW5jICgpID0+IHsKQEAgLTExNTgsNzggKzExNTgsNzggQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVu
Z3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAg
ICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAg
ICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVhbHNJZ25vcmluZ1Jvb3Qo
YW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFjb21taXRTZXQuZXF1
YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsn
YnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9
KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdh
aXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5j
Q29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsK
ICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
OTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdj
b21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIGRlZmVyIHNjaGVkdWxpbmcgYSBidWlsZCByZXF1ZXN0IGlmIHRoZXJlIGlz
IGEgInJ1bm5pbmciIGJ1aWxkIHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBzZXQsIGJ1dCBzaG91
bGQgc2NoZWR1bGUgdGhlIGJ1aWxkIHJlcXVlc3QgaWYgInJ1bm5pbmciIGJ1aWxkIHJlcXVlc3Qg
d2l0aCBzYW1lIGNvbW1pdCBzZXQgZmFpbHMgbGF0ZXIgb24nLCBhc3luYyAoKSA9PiB7CkBAIC0x
MjQ0LDExNCArMTI0NCwxMTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAg
ICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAg
ICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVu
bmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwg
J3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1pdFNldCA9
IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBhc3NlcnQub2so
Y29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1pdFNldCkpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
cmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogODAxfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRz
JzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
IDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBh
d2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZv
clRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGlu
Z0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1
ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBhbm90aGVyQnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdmYWlsZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRTeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQnOiA5MDAsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdQT1NUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1
aWxkZXItMicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQnOiAnOTAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21l
dGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIy
JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICd3ay1wYXRjaCc6ICdodHRwOi8vbG9jYWxob3N0Ojgx
ODAvYXBpL3VwbG9hZGVkLWZpbGUvMTAwLnR4dCcsCiAgICAgICAgICAgICAgICAgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnOTAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0y
J319KTsKICAgICAgICAgfSk7CkBAIC0xMzY4LDc4ICsxMzY4LDc4IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAg
ICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFu
b3RoZXJDb21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFs
cyhhbm90aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1
aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSks
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDkwMCwgYnVpbGRlcklkOiAzfSldfSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0Rh
dGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJh
YmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8zL2J1aWxk
cy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8zL2J1aWxkcy8xMjQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBu
b3QgdXBkYXRlIGJ1aWxkIHJlcXVlc3RzIGZyb20gYW5vdGhlciB0cmlnZ2VyYWJsZScsIGFzeW5j
ICgpID0+IHsKQEAgLTE1MzQsMjIgKzE1MzQsMjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZl
dGNoKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBtYWNv
cyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAgICAgICAgICAgICAgICAgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dl
cmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAg
Y29uc3QgdHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5hbGwoKVswXTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQtd2Via2l0Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxk
LXdlYmtpdCcpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9
IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0
ZXN0LCBwbGF0Zm9ybSksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSksIG51
bGwpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0
b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CiAKICAg
ICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3Jv
dXBzID0gewpAQCAtMTU4NCwyMiArMTU4NCwyMiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAKICAgICAg
ICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgp
KTsKICAgICAgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUg
PSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLXdl
YmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2VyYWJsZS5u
YW1lKCksICdidWlsZC13ZWJraXQnKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9
IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVwb3Np
dG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdz
eXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1sx
XS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJv
b3RzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5kZXNj
cmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IHRydWUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFt
ZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHNDdXN0b21S
b290cygpLCB0cnVlKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRh
Lm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAgICAgICAgICAg
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSBbIF07CkBAIC0xNjExLDEzICsxNjExLDEzIEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuYWxs
KCkubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJs
ZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgpWzBdLnJlcG9zaXRv
cnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgs
IDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lz
dGVtLWFuZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBz
WzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgp
LCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMV0ucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CiAgICAgICAgICAgICB9KQogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTE2MzIsMTIgKzE2MzIsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBnZXRCdWlsZGVyTmFt
ZVRvSURNYXBQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5nZXRCdWlsZGVyTmFtZVRvSURN
YXAoKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgZ2V0QnVpbGRlck5hbWVU
b0lETWFwUHJvbWlzZS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIiXSwgMSkK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lLWJ1
aWxkZXItMSJdLCAyKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRv
SURNYXBbInNvbWUgYnVpbGRlciAyIl0sIDMpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0sIDUpCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsiYW5vdGhlciB0ZXN0
ZXIiXSwgNikKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVU
b0lETWFwWyJzb21lIGJ1aWxkZXIiXSwgMSkKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lLWJ1aWxkZXItMSJdLCAyKQorICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRl
ciAyIl0sIDMpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1l
VG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0sIDUpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsiYW5vdGhlciB0ZXN0
ZXIiXSwgNikKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQt
ZmV0Y2hlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwppbmRleCA3YjJlNTE3YzMxZjA1NTlhMTIx
M2MxMTJjNDlkNGFhZGJkMjY3MWQzLi5lMzEzM2NhNGQwZTZhYmU1YmE3NWIyODFiYjdhYTBiNWMz
YWM4NjFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCkBAIC0x
MTAsMTMgKzExMCwxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsK
ICAgICBkZXNjcmliZSgnT1NCdWlsZGVyRmV0Y2hlci5fY29tcHV0ZU9yZGVyJywgKCkgPT4gewog
ICAgICAgICBpdCgnc2hvdWxkIGNhbGN1bGF0ZSB0aGUgcmlnaHQgb3JkZXIgZm9yIGEgZ2l2ZW4g
dmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaGVyID0gbmV3
IE9TQnVpbGRGZXRjaGVyKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9j
b21wdXRlT3JkZXIoJ1NpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2MDMwMzIxMDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxJyks
IDE2MDMwMzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVP
cmRlcignMTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChm
ZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIDE2RDMyJyksIDE2
MDMwMDMyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRl
cignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2RDMyJyksIDE2MDMw
MDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVP
cmRlcignMTZEMzIxJyksIDE2MDMwMzIxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxJyksIDE2MDMwMzIxMDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxeicp
LCAxNjAzMDMyMTI2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9j
b21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIDE2RDMyJyksIDE2MDMw
MDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVP
cmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhc3NlcnRpb24gZXJyb3Igd2hlbiBnaXZlbiBhIGlu
dmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CkBAIC0xNDEsMTMgKzE0MSwxMyBAQCBkZXNjcmliZSgn
T1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGZldGNoQ29t
bWl0c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzKFsnbGlzdCcs
ICdidWlsZDEnXSwgJ15cXC4qJCcpOwogCiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2Nh
dGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1
YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJv
Y2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAg
ICAgICAgICBjb25zdCBleHBlY3RlZFJlc3VsdHMgPSB7YWxsUmV2aXNpb25zOiBbIjE2RDMyMSIs
ICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0aFRlc3RhYmlsaXR5OiB7fX07CiAgICAg
ICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNvbHZlKCcxNkQz
MjFcbjE2RTMyMXpcblxuMTZGMzIxJyk7CiAgICAgICAgICAgICBjb25zdCBidWlsZEluZm8gPSBh
d2FpdCBmZXRjaENvbW1pdHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChl
eHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGV4cGVjdGVkUmVzdWx0cywgYnVpbGRJbmZvKTsKICAgICAgICAgfSk7CiAKICAgICAg
ICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgY29tbWFuZCBvdXRwdXQgYXMgSlNPTiBmb3JtYXQnLCBh
c3luYyAoKSA9PiB7CkBAIC0xNTcsMTMgKzE1NywxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGZldGNoQ29tbWl0c1Byb21pc2Ug
PSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzKFsnbGlzdCcsICdidWlsZDEnXSk7
CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG91dHB1dE9i
amVjdCA9IHthbGxSZXZpc2lvbnM6IFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sIGNv
bW1pdHNXaXRoVGVzdGFiaWxpdHk6IHsiMTZEMzIxIjogIlBhbmljIn19OwogICAgICAgICAgICAg
YXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShvdXRwdXRPYmplY3QpKTsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkSW5mbyA9IGF3YWl0IGZl
dGNoQ29tbWl0c1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG91dHB1dE9i
amVjdCwgYnVpbGRJbmZvKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0
cHV0T2JqZWN0LCBidWlsZEluZm8pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTczLDkg
KzE3Myw5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAgICBjb25zdCBm
ZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBNb2NrU3VicHJvY2Vz
cywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBmZXRjaGVyLl9jb21taXRz
V2l0aGluUmFuZ2UoWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwgIk9TWCIsIDE2MDQw
MDAwMDAsIDE2MDYwMDAwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1swXSwge3JlcG9z
aXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcxNkUzMjF6J30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzFdLCB7cmVwb3NpdG9yeTogJ09T
WCcsIG9yZGVyOiAxNjA1MDMyMTAwLCByZXZpc2lvbjogJzE2RjMyMSd9KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6
IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYw
NTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CiAKICAgICAgICAgfSk7CiAKQEAgLTE4Myw4
ICsxODMsOCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgY29uc3Qg
ZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nl
c3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0Y2hlci5fY29tbWl0
c1dpdGhpblJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sICJPU1giLCAxNjA0
MDAwMDAwLCAxNjA1MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBv
c2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAn
T1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE5NiwyNCArMTk2LDI0IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0
Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21taXRQcm9t
aXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdCwgYW5vdGhl
ck9TWENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pOwogCiAgICAg
ICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3Mu
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKICAg
ICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIE1vY2tT
dWJwcm9jZXNzLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNz
LndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
U3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
Wydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzInXSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0
cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDIp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzBdWydyZXBvc2l0b3J5J10s
IG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbiddKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29tbWl0cyddLCBvd25l
ZENvbW1pdFdpdGhXZWJLaXQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRz
WzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9zaXRvcnknXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMV1bJ3JldmlzaW9uJ10sIGFub3RoZXJP
U1hDb21taXRbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMF1bJ3JlcG9zaXRv
cnknXSwgb3N4Q29tbWl0WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXZpc2lvbiddLCBvc3hDb21taXRbJ3JldmlzaW9uJ10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1swXVsnb3du
ZWRDb21taXRzJ10sIG93bmVkQ29tbWl0V2l0aFdlYktpdCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ3JlcG9zaXRvcnknXSwgYW5vdGhlck9TWENvbW1p
dFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0c1sxXVsncmV2aXNpb24nXSwgYW5vdGhlck9TWENvbW1pdFsncmV2aXNpb24nXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzFdWydvd25lZENvbW1p
dHMnXSwgYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAKQEAgLTIyNCwxNSArMjI0LDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hl
cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21taXRQcm9taXNl
ID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdF0sIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9y
SW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1v
Y2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zWzBdLnJlamVjdCgnRmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0
Jyk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9taXNlLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvcl9vdXRwdXQsICdGYWlsZWQgZ2V0dGluZyBvd25lZC1jb21t
aXQnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1
dCwgJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjQ1LDE1ICsyNDUsMTUgQEAgZGVzY3Jp
YmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBhZGRv
d25lZENvbW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZChbb3N4
Q29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSkKIAogICAgICAgICAg
ICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3Vi
cHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgneyJXZWJLaXQi
OnsiUmFuZG9tS2V5IjogIlJhbmRvbVZhbHVlIn19Jyk7CiAKICAgICAgICAgICAgICAgICByZXR1
cm4gYWRkb3duZWRDb21taXRQcm9taXNlLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAg
ICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGVy
cm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvcl9vdXRw
dXQubmFtZSwgJ0Fzc2VydGlvbkVycm9yIFtFUlJfQVNTRVJUSU9OXScpOworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUsICdBc3NlcnRpb25F
cnJvcicpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
CkBAIC0yOTAsNDAgKzI5MCw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4
MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddKSksIDE2MDMwMDY4MDApOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRl
ZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigo
cmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblBy
b21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2ZldGNoQXZhaWxhYmxl
QnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAg
ICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkQ2OFxuU2ll
cnJhMTZENjlcbicpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNl
dEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5z
dHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJhMTZFMzNcblNpZXJy
YTE2RTMzaFxuU2llcnJhMTZFMzQnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2
RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93
bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewpAQCAtMzMxLDI5ICszMzEsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQ
cm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAg
ICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RDY4XG5TaWVycmExNkQ2OVxu
Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShv
d25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNb
MF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmExNkUzM1xuU2llcnJhMTZFMzNoXG5T
aWVycmExNkUzNCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNl
dEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBd
LnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEph
dmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zvcics
ICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBm
ZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKQEAgLTM3MCwzNCArMzcwLDM0IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3Vs
dHNbM107CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRd
OwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsn
b3duZXInXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlb
MF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwog
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlb
MF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydv
cmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydv
cmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXIn
XSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYw
MzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAw
KTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYw
NDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw0MCArNDIzLDQwIEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAw
Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmEx
NkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
NjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYw
NDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBd
WydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvcklu
dm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLl9mZXRj
aEF2YWlsYWJsZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2Nh
dGlvblByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxk
cyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5n
aWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJw
cm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9y
U2llcnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFu
ZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0
cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAgICAgICAgICAgaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRo
V2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hB
dmFpbGFibGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC00
NjQsMjkgKzQ2NCwyOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgICBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2UgPSBmZXRj
aGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24o
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdp
dGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRB
bmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2Nh
dGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2Vi
S2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVk
Q29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKIAogICAg
ICAgICAgICAgICAgIHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUwMywzNCArNTAzLDM0IEBAIGRlc2NyaWJl
KCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG9z
eENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29t
bWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAx
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9y
eVswXVsnb3duZXInXSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3Np
dG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXIn
XSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10p
LCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hD
b21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9s
YXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYw
MzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9m
cm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVz
dWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
NDAwMzQwMCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1NSw0MSArNTU1
LDQxIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogCiAgICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5
MDAnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogICAgICAgICAgICAgcmVz
dWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
T1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgIGNvbnN0IGZldGNo
UmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWls
ZHMoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9u
KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nl
c3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNb
MF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAg
ICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWls
ZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNz
LnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNb
MF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7
CiAgICAgICAgICAgICBhd2FpdCAgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhl
cm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAg
ICAgICAgIGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKIApAQCAtNjAxLDQzICs2
MDEsNDMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRz
JywgeydyZXZpc2lvbic6ICdTaWVycmExNkUzM2gnfSk7CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxNkUzNCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzog
J1NpZXJyYTE2RTM0J30pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3Np
dG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRv
cnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0
b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeVsw
XVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJl
cG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsndGVzdGFiaWxpdHknXSwg
IlBhbmljIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjgu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2
OFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OFswXVsndGVzdGFiaWxpdHkn
XSwgIlBhbmljIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2
OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQVSIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5
WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQVSIpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzEubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ29yZGVyJ10sIDE2MDQw
MDMxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWyd0ZXN0
YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQxNkUzMS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzMVswXVsnb3JkZXInXSks
IDE2MDQwMDMxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RTMxWzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAg
ICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9s
YXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RTM0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
cmVwb3J0IGNvbW1pdHMgd2l0aG91dCBvd25lZC1jb21taXRzIGlmICJvd25lZENvbW1pdENvbW1h
bmQiIGlzIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnJywgYXN5bmMgKCkgPT4gewpAQCAtNjU5LDI1
ICs2NTksMjUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZp
c2lvbic6ICdTaWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0
cnVlfSldKTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYw
MzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7
CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0x
NjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKIAogICAgICAg
ICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRl
UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAg
ICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwog
CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4
IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQg
ZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAtNjk0LDMwICs2OTQsMzAgQEAgZGVzY3Jp
YmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZF
MzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3Np
dG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnku
bGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0
b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3Np
dG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZE
NjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVsw
XVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlcidd
KSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
M2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hb
MF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29y
ZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZF
MzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3Jk
ZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9m
cm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2
OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMw
MDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAw
MDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAg
ICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBjb21taXRzIHdpdGhpbiBzcGVj
aWZpZWQgcmV2aXNpb24gcmFuZ2UnLCBhc3luYyAoKSA9PiB7CkBAIC03MzgsMjUgKzczOCwyNSBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1Np
ZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6IHRydWV9KV0pOwog
CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRv
PTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAg
ICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmEx
NkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgY29uc3Qg
d2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRp
b24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZl
dGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKIAogICAgICAgICAgICAgYXdhaXQg
d2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1sw
XS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAg
ICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxs
IG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10p
OwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1
bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaFJlcG9y
dEFuZFVwZGF0ZVByb21pc2U7CkBAIC03NzMsMzAgKzc3MywzMCBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMz
aCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzNCA9IHJlc3Vs
dHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0
aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0
aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsn
b3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2
OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3Np
dG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBd
WydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2
MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVw
b3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRb
MF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYw
NDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAw
MDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAK
ICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0
MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkUzNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgdXBkYXRlIGNvbW1pdHMgd2l0aGluIHNwZWNpZmllZCByZXZp
c2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsKQEAgLTgxNywyOSArODE3LDI5IEBAIGRlc2NyaWJl
KCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzNn
JywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7CiAKICAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICByZXN1
bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52
b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAg
ICAgICAgICAgY29uc3QgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0
Y2hBdmFpbGFibGVCdWlsZHMoKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRp
b25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tT
dWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWls
ZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21p
c2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LmNvbW1pdHNUb1VwZGF0ZS5sZW5n
dGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21taXRzVG9V
cGRhdGUubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1c2Ug
Imxhc3QtcmVwb3J0ZWQiIG9yZGVyICsgMSBhcyAibWluT3JkZXIiJywgYXN5bmMgKCkgPT4gewpA
QCAtODUzLDE1ICs4NTMsMTUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnkn
OiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RDEwMCcsICdvcmRlcic6IDE2MDMwMTAwMDAsICdy
ZXBvcnRlZCc6IHRydWV9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAz
MDEwMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAx
NjAzMDEwMDAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNl
ID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0
IGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWls
ZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwog
ICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRz
Rm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaEFuZFJlcG9y
dFByb21pc2U7CkBAIC04NzYsMTkgKzg3NiwxOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXIn
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDY5ID0gcmVzdWx0
c1syXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMGEgPSByZXN1bHRzWzNdOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwYS5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1bJ29y
ZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQxMDBhWzBdWydvcmRlciddKSwgMTYw
MzAxMDAwMSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAx
MDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMTAwMDEp
OwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHVzZSBtaW5SZXZpc2lvbiBpbiB0
aGUgY29uZmlnIGlmIHRoZXJlIGlzIG5vIGNvbW1pdCcsIGFzeW5jICgpID0+IHsKQEAgLTkwMSwx
MyArOTAxLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMTAsICduYW1l
JzogJ09TWCd9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209
MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigp
OwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlID0gZmV0Y2hl
ci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZv
ckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIHJl
c3VsdCA9IGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTkyNCwyMyArOTI0
LDIzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAwID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0
IG9zeENvbW1pdDE2RDEwMSA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQxMDAubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQxMDBbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSwgMTYwMzAxMDAwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwWzBdWydyZXBvc2l0b3J5
J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21t
aXQxNkQxMDBbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDEwMS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDEwMVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddLCAxNjAzMDEwMTAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDEubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDFbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9z
eENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSksIDE2MDMwMTAxMDApOwogCiAgICAgICAgICAgICBy
ZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkQxMDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDEwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgc3RvcCByZXBvcnRpbmcgaWYgYW55IGN1c3RvbSBjb21tYW5kIGZhaWxzJywgKCkg
PT4gewpAQCAtOTYzLDYwICs5NjMsNjAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAz
MDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zy
b209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2
MDQwMDMzMDcpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9t
aXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgICAg
ICBmZXRjaEFuZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVp
bGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0Zv
clNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRB
bmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQ2OSddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxk
cyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAg
ICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNG
b3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0
QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jl
dmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZWplY3QoJ0NvbW1hbmQgZmFpbGVkJyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZldGNoQW5kUmVwb3J0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAg
ICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Jf
b3V0cHV0LCAnQ29tbWFuZCBmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGVycm9yX291dHB1dCwgJ0NvbW1hbmQgZmFpbGVkJyk7CiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2
ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209
MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQw
MDMzMDcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pCiAgICAgfSkKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJv
dC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwppbmRleCA3MWEx
ZDUzOWViNjJmZWYyYWViN2NlMGMxOTY0MGIxNjRjMmZjZjEwLi42OWE5MWY1ZTYxMTMwNmVhZGI4
ZjIxMjdiODhkMDVkZWFiOTViMTBiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNDUsOCArMTQ1LDggQEAgY29uc3QgY29u
ZmlnV2l0aFR3b1Rlc3RlcnMgPSB7CiAKIGZ1bmN0aW9uIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3QsIG1ldGhvZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQogewotICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKLSAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC51
cmwsIHVybCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QubWV0aG9kLCBtZXRob2Qp
OworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKICAgICByZXF1ZXN0
LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7CiB9CiAKQEAgLTI2NSwyMyArMjY1LDIzIEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNlY29uZFRlc3RHcm91
cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdhbm90aGVy
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJ
ZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0
SWQ6IGZpcnN0VGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKICAgICAgICAg
ICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0
YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVlc3RJZDogc2Vjb25k
VGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSwKQEAgLTI5Miw0NSArMjkyLDQ1IEBAIGRlc2Ny
aWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CiAKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGFub3RoZXJUYXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAogICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM2ICszNDQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgY29uc3QgdGFza0lkID0gdGVzdEdy
b3VwLnRhc2soKS5pZCgpOwogICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
bGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgbGV0IHdlYmtpdFBhdGNoID0g
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Vi
a2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGxldCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGxldCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09u
Y2UoKSk7CkBAIC0zODEsMzIgKzM4MSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsK
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92
Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAn
MTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEu
ZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJ319KTsK
ICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKICAg
ICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogZmlyc3RC
dWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdCdWlsZGluZyBXZWJLaXQnfSkpOwpAQCAt
NDE1LDM5ICs0MTUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlw
dGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmls
ZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwog
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTQ1NiwyNiAr
NDU2LDI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklk
OiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0
SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0Nv
bXBpbGluZyBXVEYnfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFn
OiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSkp
OwpAQCAtNDg0LDgwICs0ODQsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWls
ZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgYXdhaXQgdXBsb2FkUm9vdChidWlsZFJl
cXVlc3QuaWQoKSwgZmlyc3RCdWlsZE51bWJlcik7CisgICAgICAgIGF3YWl0IHVwbG9hZFJvb3Qo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCBmaXJzdEJ1aWxkTnVtYmVyKTsKIAogICAgICAg
ICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAg
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxk
TnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7
CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtp
dFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgbGV0
IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKQEAgLTU2NiwzMiArNTY2LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVy
JyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJlcn0pKTsKICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09L
Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcy
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAg
ICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAn
YnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC02MDMsODMgKzYwMyw4
MyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBh
d2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51
bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29u
ZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgIGF3YWl0IHVwbG9hZFJvb3Qob3RoZXJC
dWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgYXdhaXQgdXBsb2FkUm9vdChwYXJzZUlu
dChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKIAogICAgICAgICB0ZXN0R3JvdXBzID0g
YXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91
cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGRO
dW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAg
ICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwogICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNl
Y29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBjb25z
dCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyNC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwogICAgIH0p
OwogCkBAIC02OTQsMzQgKzY5NCwzNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0
YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAg
ICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTcyOSwzMiArNzI5LDMyIEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcx
OTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5k
YXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnfX0pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAg
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVy
JyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtNzYzLDc2ICs3NjMsNzYgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
ICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQ
YXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAg
IGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpOworICAg
ICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAx
MjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtODQxLDMyICs4NDEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWls
ZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdj
aGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTg3OCw4MCAr
ODc4LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdD
b21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAg
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJl
dHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7CisgICAgICAgICAg
ICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAg
ICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05NjcsMzQgKzk2
NywzNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAu
dGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwog
CiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKQEAgLTEwMDIsMzIgKzEwMDIsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9y
Y2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9y
Y2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICd3ay1wYXRj
aCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVj
a2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9ybS1uYW1lJzogJ3Nv
bWUgcGxhdGZvcm0nfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyks
CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0p
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEz
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAg
ICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtMTAzNiw3NiAr
MTAzNiw3NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9y
VGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1
bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1
ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChi
dWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2gg
PSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0xMTE0LDMyICsxMTE0
LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsn
d2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6
ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0
cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTE1MSw4MCAr
MTE1MSw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9y
VGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJv
b3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90
aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICBy
ZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICAg
ICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEy
NCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAg
ICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbb3RoZXJXZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTI0MSwyMiAr
MTI0MSwyMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3Jv
dXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Qu
aWQoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAy
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogCiAg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdCgxLCA0NSk7CkBAIC0xMjY1LDM5ICsxMjY1LDM5
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBj
b25zdCByb290cyA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb290cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBmaXJzdFJvb3Qg
PSByb290c1swXTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm9vdHNbMF0uZmlsZW5h
bWUoKSwgJ3Jvb3Q0NS5kYXQnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90
aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlclJvb3RzID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJSb290cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJS
b290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTEz
MDcsMTMgKzEzMDcsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1Qn
LCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMnLCAnT0snKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICczJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgIHsndGVzdCc6ICdzb21lLXRlc3QnLCAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMycsJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywgJ3Jvb3RzJzogSlNP
Ti5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1dKX19KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCBbCiAgICAgICAgICAgICAgICAgTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUo
J3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiAzfSksCiAgICAgICAgICAgICBdKTsKQEAg
LTEzMjEsNyArMTMyMSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKQEAgLTEzNDMsMzYgKzEzNDMsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3Vw
V2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAg
ICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgp
KSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTEzODMsMTMgKzEz
ODMsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTE0MDEsMjQgKzE0
MDEsMjQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAg
IGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhl
ckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTAwMikpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMDAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE0MzIsNDkgKzE0MzIsNDkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNo
KCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lk
ID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMSk7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ290aGVyIGJ1aWxkZXInKSwg
YnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiAzMTJ9KSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwK
QEAgLTE0ODMsMjggKzE0ODMsMjggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxZXVzdHMgPSB0ZXN0R3JvdXBzWzBdLmJ1aWxk
UmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3RzWzBdLmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMF0uaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ0Zh
aWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnb3RoZXIgYnVpbGRlcicsIDMxMikpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c0xhYmVs
KCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1
c3RzWzBdLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ290aGVyIGJ1aWxkZXInLCAz
MTIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzBdLmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3RzWzFdLmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMV0uaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3RhdHVzTGFiZWwo
KSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0u
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVz
dHNbMV0uYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFzc2VydFRlc3RCdWlsZEhhc0ZhaWxlZChy
ZXF1ZXN0KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnRmFpbGVk
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQoYnVpbGRSZXFldXN0c1syXSk7CkBAIC0xNTI0LDM2
ICsxNTI0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTE1NjEs
MzIgKzE1NjEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScs
ICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAg
ICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQi
Olt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENv
cmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVp
bGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyks
IGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBN
b2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDF9KSk7CkBAIC0xNTk1LDg1ICsxNTk1LDg1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJl
dHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpLnRoZW4oKCkgPT4gdXBsb2Fk
Um9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcs
IG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDow
OS42NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJl
cXVlc3QuaWQoKSksIDEyMykudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVx
dWVzdC5pZCgpKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3Np
dG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKSk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAg
ICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTE2
ODIsMzIgKzE2ODIsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIp
LAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAx
fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQ
T1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzIn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAg
ICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0
IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRD
b3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xNzE5LDk1ICsxNzE5
LDk1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAg
ICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93
bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBh
c3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJC
dWlsZFJlcXVlc3QuaWQoKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJl
cXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3Np
dG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKSk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVl
c3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRv
cnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qg
anNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAg
ICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRS
b290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
ICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
NC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBvdGhlckpTQ1Jv
b3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAg
ICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1l
KCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwgb3RoZXJKU0NSb290XSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTgyNCwzNiArMTgyNCwzNiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RH
cm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29u
c3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xODYxLDMyICsxODYxLDMyIEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hl
ZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjIn
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpz
Yy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5
MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAg
ICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRh
LmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtMTg5NSwxMjYgKzE4
OTUsMTI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwog
ICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
Lm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxk
UmVxdWVzdC5pZCgpLCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3du
ZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlk
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
ICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90
aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7Ci0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQo
KSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0ph
dmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKKyAgICAgICAgICAg
IHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzLCBbe293
bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3Jl
J31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0
IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkoKG93bmVkSlNDKSk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9v
dCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNj
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBq
c2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0yMDIzLDMyICsyMDIzLDMyIEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywg
J21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTky
NzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1h
Yi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25l
ZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24i
OiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAg
ICAgICAgICAnYnVpbGRzJzogWwpAQCAtMjA2MCwxNDEgKzIwNjAsMTQxIEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3du
ZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlk
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAg
ICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJD
b21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwg
MTI0KTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdD
b21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290
ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1
bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW290aGVyV2Via2l0Um9vdF0pOwotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93
bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42
NjYnKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCkpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBv
c2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29u
c3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAg
ICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJr
aXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBvdGhlckpT
Q1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJKU0NSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwgb3RoZXJKU0NSb290
XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggMzBiZDI1ZjBhY2QwMTdlNDVm
OGE4MDgxZmNlZTFiOGQwOTdmNjg4MS4uNTJjYjFlYzI0M2I5ZjE2NWRmN2RjN2Q2OTBlNDA3YTA4
MDllZTg0YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMv
YnVpbGRib3Qtc3luY2VyLmpzCkBAIC0xMiw3ICsxMiw3IEBAIGNsYXNzIEJ1aWxkYm90QnVpbGRF
bnRyeSB7CiAKICAgICBpbml0aWFsaXplKHN5bmNlciwgcmF3RGF0YSkKICAgICB7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlcklEKCksIHJhd0RhdGFbJ2J1aWxkZXJpZCddKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHN5bmNlci5idWlsZGVySUQoKSks
IHBhcnNlSW50KHJhd0RhdGFbJ2J1aWxkZXJpZCddKSk7CiAKICAgICAgICAgdGhpcy5fc3luY2Vy
ID0gc3luY2VyOwogICAgICAgICB0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVzdElkID0gcmF3RGF0
YVsnYnVpbGRyZXF1ZXN0aWQnXTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgQnVpbGRib3RCdWls
ZEVudHJ5IHsKIAogICAgIGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVkZWQocmVxdWVz
dCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmlkKCksIHRoaXMuX2J1aWxk
UmVxdWVzdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QuaWQoKSwgdGhp
cy5fYnVpbGRSZXF1ZXN0SWQpOwogICAgICAgICBpZiAoIXJlcXVlc3QpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKICAgICAgICAgaWYgKHRoaXMuaXNQZW5kaW5nKCkpIHsKQEAgLTExNyw3ICsx
MTcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0g
dGhpcy5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3Jv
dXApOwogCiAgICAgICAgIGFzc2VydChwcm9wZXJ0aWVzWydmb3JjZXNjaGVkdWxlciddLCBgZm9y
Y2VzY2hlZHVsZXIgd2FzIG5vdCBzcGVjaWZpZWQgaW4gYnVpbGRib3QgcHJvcGVydGllcyBmb3Ig
YnVpbGQgcmVxdWVzdCAke25ld1JlcXVlc3QuaWQoKX0gb24gcGxhdGZvcm0gIiR7bmV3UmVxdWVz
dC5wbGF0Zm9ybSgpLm5hbWUoKX0iIGZvciBidWlsZGVyICIke3RoaXMuYnVpbGRlck5hbWUoKX0i
YCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCghdGhpcy5fc2xhdmVQcm9wZXJ0eU5hbWUsICFzbGF2
ZU5hbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoIXRoaXMuX3NsYXZlUHJvcGVydHlO
YW1lLCAhc2xhdmVOYW1lKTsKICAgICAgICAgaWYgKHRoaXMuX3NsYXZlUHJvcGVydHlOYW1lKQog
ICAgICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZV0gPSBzbGF2ZU5h
bWU7CiAKQEAgLTMzNyw3ICszMzcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICAg
ICAgYXNzZXJ0KGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwgJ2J1aWxkUmVxdWVzdEFyZ3Vt
ZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNlZCB0byBzdG9yZSB0
aGUgYnVpbGQgcmVxdWVzdCBJRCcpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoY29u
ZmlnLnJlcG9zaXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBz
cGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoY29uZmlnLnJlcG9zaXRvcnlHcm91cHMp
LCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBm
cm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7CiAKICAgICAgICAgY29uc3QgcmVwb3Np
dG9yeUdyb3VwcyA9IHt9OwogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMpCkBAIC00MTYsNyArNDE2LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewog
CiAgICAgc3RhdGljIF9wYXJzZVJlcG9zaXRvcnlHcm91cChuYW1lLCBncm91cCkKICAgICB7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVzKSwgJ29iamVjdCcs
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVzKSwg
J29iamVjdCcsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBu
b3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzYCk7CiAgICAgICAgIGFzc2Vy
dCghKCdkZXNjcmlwdGlvbicgaW4gZ3JvdXApIHx8IHR5cGVvZihncm91cFsnZGVzY3JpcHRpb24n
XSkgPT0gJ3N0cmluZycsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIg
aGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0aW9uYCk7CkBAIC00MzEsNyArNDMxLDcgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IFJlcG9zaXRv
cnkuZmluZFRvcExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAgICAgICAgIGFzc2Vy
dChyZXBvc2l0b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2YWxpZCByZXBvc2l0
b3J5IG5hbWVgKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5hbWVd
ID0gcmVwb3NpdG9yeTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yob3B0aW9ucyks
ICdvYmplY3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVjaWZpZXMgYSBub24tZGljdGlvbmFy
eSB2YWx1ZWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihvcHRpb25z
KSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBhIG5vbi1kaWN0aW9u
YXJ5IHZhbHVlYCk7CiAgICAgICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwgdHJ1ZSwgZmFsc2Vd
LmluY2x1ZGVzKG9wdGlvbnMuYWNjZXB0c1BhdGNoKSwKICAgICAgICAgICAgICAgICBgIiR7cmVw
b3NpdG9yeU5hbWV9IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1ZTogJHtKU09O
LnN0cmluZ2lmeShvcHRpb25zLmFjY2VwdHNQYXRjaCl9YCk7CiAgICAgICAgICAgICBpZiAob3B0
aW9ucy5hY2NlcHRzUGF0Y2gpCkBAIC00NDEsNyArNDQxLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5j
ZXIgewogICAgICAgICB9CiAgICAgICAgIGFzc2VydChwYXJzZWRSZXBvc2l0b3J5TGlzdC5sZW5n
dGgsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5IGFueSByZXBv
c2l0b3J5YCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC50ZXN0UHJvcGVy
dGllcyksICdvYmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRo
ZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAudGVzdFByb3BlcnRpZXMpLCAnb2JqZWN0Jywg
YFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0
aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZWApOwogCiAgICAgICAgIGNvbnN0IHJlc29sdmVSZXBv
c2l0b3J5ID0gKHJlcG9zaXRvcnlOYW1lKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0
b3J5ID0gcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0b3J5TmFtZV07CkBAIC00NzAsNyArNDcwLDcg
QEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB9KTsKICAgICAgICAgYXNzZXJ0KCFn
cm91cC5hY2NlcHRzUm9vdHMgPT0gIXNwZWNpZmllc1Jvb3RzLAogICAgICAgICAgICAgYFJlcG9z
aXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGFjY2VwdHMgcm9vdHMgYnV0IGRvZXMgbm90IHNwZWNpZnkg
cm9vdHMgaW4gdGVzdFByb3BlcnRpZXNgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJl
cG9zaXRvcnlMaXN0Lmxlbmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXplLAorICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9y
aWVzLnNpemUsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBu
b3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVzdGluZ2ApOwogCiAg
ICAgICAgIGxldCBidWlsZFByb3BlcnRpZXNUZW1wbGF0ZSA9IG51bGw7CkBAIC01MDQsNyArNTA0
LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgYXNzZXJ0KHBhdGNoQWNj
ZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSB8fCBoYXNPd25lZFJldmlzaW9ucywgYFJlcG9zaXRv
cnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcg
YnV0IGRvZXMgbm90IGFjY2VwdCBhbnkgcGF0Y2hlcyBvciBuZWVkIHRvIGJ1aWxkIG93bmVkIGNv
bXBvbmVudHNgKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9yeSBvZiBwYXRjaFJl
cG9zaXRvcmllcykKICAgICAgICAgICAgICAgICBhc3NlcnQocmV2aXNpb25SZXBvc2l0b3JpZXMu
aGFzKHJlcG9zaXRvcnkpLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIGEg
cGF0Y2ggZm9yICIke3JlcG9zaXRvcnkubmFtZSgpfSIgYnV0IGRvZXMgbm90IHNwZWNpZnkgYSBy
ZXZpc2lvbmApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhdGNoQWNjZXB0aW5nUmVwb3Np
dG9yeUxpc3Quc2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNpemUsIHBhdGNoUmVw
b3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFt
ZX0iIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIGJ1aWxk
aW5nIGEgcGF0Y2hgKTsKICAgICAgICAgfQogCkBAIC01NjQsMTIgKzU2NCwxMiBAQCBjbGFzcyBC
dWlsZGJvdFN5bmNlciB7CiAKICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAg
ICAgY2FzZSAncHJvcGVydGllcyc6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBzaG91
bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBk
aWN0aW9uYXJ5Jyk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbJ3Byb3BlcnRpZXMnXSkK
ICAgICAgICAgICAgICAgICAgICAgY29uZmlnWydwcm9wZXJ0aWVzJ10gPSB7fTsKICAgICAgICAg
ICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gY29uZmlnWydwcm9wZXJ0aWVzJ107CiAgICAgICAg
ICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0eXBlb2YodmFsdWVbbmFtZV0pLCAnc3RyaW5nJywgYEJ1aWxkIHByb3Bl
cnRpZXMgIiR7bmFtZX0iIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAiJHt0
eXBlb2YodmFsdWUpfSJgKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHR5cGVvZih2YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVydGllcyAiJHtuYW1l
fSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5cGVvZih2YWx1ZSl9
ImApOwogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0gdmFsdWVbbmFtZV07
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTgwLDcgKzU4
MCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBjb25maWdbbmFt
ZV0gPSB2YWx1ZS5zbGljZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSAnYnVpbGRlcic6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQgYmUgb2Ygc3RyaW5n
IHR5cGVgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHZhbHVl
KSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlwZWApOwogICAgICAg
ICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSAnYnVpbGRlcklEJzoKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA0MGRl
MGE1Njk3Yzg3Y2ViMDk4MzU4NzJkN2UyZTA4NTMzOWJiM2MzLi4yOWMxZTUwOGNmZWQ2NTY0YzVj
MjM5ZjA2MDU5ODRlOGU0MTk2ZjMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC0xNDcsNyArMTQ3
LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhc3NlcnQodHJpZ2dlcmFibGUgaW5zdGFu
Y2VvZiBUcmlnZ2VyYWJsZSwgJ011c3Qgc3BlY2lmeSBhIHZhbGlkIHRyaWdnZXJhYmxlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0aGlzLl9uYW1lLCAn
TXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhpcy5fbmFtZSwgJ011
c3Qgc3BlY2lmeSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCk7CiAgICAg
ICAgICAgICBpZiAoIXJlcG9zaXRvcnlHcm91cCkgewogICAgICAgICAgICAgICAgIHRoaXMuX2xv
Z2dlci5lcnJvcihgQnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZG9lcyBub3Qgc3BlY2lm
eSBhIHJlcG9zaXRvcnkgZ3JvdXAuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGlzIG5vIGxvbmdlciBz
dXBwb3J0ZWQuYCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvbWFya3VwLWNvbXBvbmVudC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9tYXJrdXAtY29tcG9uZW50LmpzCmluZGV4IGFjZjA0OWQzODhmYzY3N2FmYTA4NDg4ODA2MTVk
YTYxY2MxY2VlMzkuLjI2NDI1NTJkZWNmMzAxZmFhNTQwNDQ0N2Q4ZDkzZGQ0MGM0YTcwNTggMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tYXJrdXAtY29tcG9u
ZW50LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tYXJrdXAtY29t
cG9uZW50LmpzCkBAIC0xLDQgKzEsNiBAQAorJ3VzZSBzdHJpY3QnOwogCitjb25zdCBhc3NlcnQg
PSByZXF1aXJlKCdhc3NlcnQnKTsKIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3IGNsYXNzIE1h
cmt1cERvY3VtZW50IHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAgewpAQCAtMjcsNyArMjksNyBA
QCBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1bWVudCB7CiAKICAg
ICBfaWRGb3JDbG9uZShvcmlnaW5hbCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9y
aWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CisgICAgICAgIGFzc2VydC5vayhvcmlnaW5h
bCBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICByZXR1cm4gdGhpcy5fbm9kZUlkKys7
CiAgICAgfQogCkBAIC0zOCw3ICs0MCw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3IGNs
YXNzIE1hcmt1cERvY3VtZW50IHsKIAogICAgIG1hcmt1cChub2RlKQogICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOworICAgICAgICBhc3Nl
cnQub2sobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICByZXR1cm4gbm9kZS5f
bWFya3VwKCk7CiAgICAgfQogCkBAIC01Niw3ICs1OCw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50
ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIGNsYXNzIE1hcmt1cE5vZGUgewogICAgIGNv
bnN0cnVjdG9yKGlkKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mKGlkKSA9
PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5vayh0eXBlb2YoaWQpID09ICdudW1iZXInKTsK
ICAgICAgICAgdGhpcy5faWQgPSBpZDsKICAgICAgICAgdGhpcy5fcGFyZW50Tm9kZSA9IG51bGw7
CiAgICAgfQpAQCAtNzMsOSArNzUsOSBAQCBjbGFzcyBNYXJrdXBOb2RlIHsKIAogICAgIF9jbG9u
ZU5vZGVEYXRhKGNsb25lZE5vZGUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBl
b2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5faWQgIT0gY2xvbmVkTm9kZS5faWQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChjbG9u
ZWROb2RlLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQub2sodHlwZW9mKGNs
b25lZE5vZGUuX2lkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5vayh0aGlzLl9pZCAh
PSBjbG9uZWROb2RlLl9pZCk7CisgICAgICAgIGFzc2VydC5vayhjbG9uZWROb2RlLl9wYXJlbnRO
b2RlID09IG51bGwpOwogICAgIH0KIAogICAgIHJlbW92ZSgpCkBAIC0xMTMsNyArMTE1LDcgQEAg
Y2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewogICAgICAgICBpZiAo
Y2hpbGQuX3BhcmVudE5vZGUpCiAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKTsKIAotICAgICAg
ICBjb25zb2xlLmFzc2VydChjaGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0Lm9rKGNoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOwogICAgICAgICB0aGlzLl9jaGlsZE5v
ZGVzLnB1c2goY2hpbGQpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IHRoaXM7CiAgICAg
fQpAQCAtMTIzLDcgKzEyNSw3IEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUgZXh0ZW5kcyBNYXJr
dXBOb2RlIHsKICAgICAgICAgaWYgKGNoaWxkLl9wYXJlbnROb2RlICE9IHRoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hpbGROb2Rlcy5pbmRl
eE9mKGNoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0gMCk7CisgICAgICAg
IGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGROb2Rlcy5zcGxpY2Uo
aW5kZXgsIDEpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7CiAgICAgfQpAQCAt
MTQyLDEwICsxNDQsMTAgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5v
ZGUgewogCiAgICAgICAgIGlmIChuZXdDaGlsZC5fcGFyZW50Tm9kZSkKICAgICAgICAgICAgIG5l
d0NoaWxkLnJlbW92ZSgpOwotICAgICAgICBjb25zb2xlLmFzc2VydChuZXdDaGlsZC5fcGFyZW50
Tm9kZSA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG5ld0NoaWxkLl9wYXJlbnROb2RlID09
IG51bGwpOwogCiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hpbGROb2Rlcy5pbmRleE9m
KG9sZENoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0gMCk7CisgICAgICAg
IGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGROb2Rlcy5zcGxpY2Uo
aW5kZXgsIDEsIG5ld0NoaWxkKTsKICAgICAgICAgb2xkQ2hpbGQuX3BhcmVudE5vZGUgPSBudWxs
OwogICAgICAgICBuZXdDaGlsZC5fcGFyZW50Tm9kZSA9IHRoaXM7CkBAIC0xNTUsOCArMTU3LDgg
QEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewogY2xhc3MgTWFy
a3VwQ29udGVudFJvb3QgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2RlIHsKICAgICBjb25zdHJ1Y3Rv
cihpZCwgaG9zdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhvc3QgaW5zdGFuY2Vv
ZiBNYXJrdXBFbGVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaG9zdC5fY29udGVudFJv
b3QgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayhob3N0IGluc3RhbmNlb2YgTWFya3VwRWxl
bWVudCk7CisgICAgICAgIGFzc2VydC5vayhob3N0Ll9jb250ZW50Um9vdCA9PSBudWxsKTsKICAg
ICAgICAgc3VwZXIoaWQpOwogICAgICAgICB0aGlzLl9ob3N0RWxlbWVudCA9IG51bGw7CiAgICAg
ICAgIGhvc3QuX2NvbnRlbnRSb290ID0gdGhpczsKQEAgLTE3NSw3ICsxNzcsNyBAQCBjbGFzcyBN
YXJrdXBFbGVtZW50IGV4dGVuZHMgTWFya3VwUGFyZW50Tm9kZSB7CiAgICAgY29uc3RydWN0b3Io
aWQsIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcihpZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CisgICAgICAgIGFzc2VydC5vayh0eXBlb2Yo
bmFtZSkgPT0gJ3N0cmluZycpOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAg
dGhpcy5fYXR0cmlidXRlcyA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDsK
QEAgLTM2NCw3ICszNjYsNyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29t
bW9uQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRoaXMuX25hbWUg
PSBjb21wb25lbnRzQnlDbGFzcy5nZXQobmV3LnRhcmdldCk7CiAgICAgICAgIGNvbnN0IGNvbXBv
bmVudCA9IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAgICBjb25zb2xlLmFz
c2VydChjb21wb25lbnQsIGBDb21wb25lbnQgIiR7dGhpcy5fbmFtZX0iIGhhcyBub3QgYmVlbiBk
ZWZpbmVkYCk7CisgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQsIGBDb21wb25lbnQgIiR7dGhp
cy5fbmFtZX0iIGhhcyBub3QgYmVlbiBkZWZpbmVkYCk7CiAgICAgICAgIHRoaXMuX2NvbXBvbmVu
dElkID0gY29tcG9uZW50LmlkOwogICAgICAgICB0aGlzLl9lbGVtZW50ID0gbnVsbDsKICAgICAg
ICAgdGhpcy5fY29udGVudFJvb3QgPSBudWxsOwpAQCAtNDEyLDcgKzQxNCw3IEBAIGNsYXNzIE1h
cmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKIAogICAgIHN0
YXRpYyBydW5SZW5kZXJMb29wKCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjdXJy
ZW50bHlSZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2soIWN1cnJlbnRseVJl
bmRlcmluZ0NvbXBvbmVudCk7CiAgICAgICAgIGRvIHsKICAgICAgICAgICAgIGNvbnN0IGN1cnJl
bnRTZXQgPSBbLi4uY29tcG9uZW50c1RvUmVuZGVyXTsKICAgICAgICAgICAgIGNvbXBvbmVudHNU
b1JlbmRlci5jbGVhcigpOwpAQCAtNDI5LDE0ICs0MzEsMTQgQEAgY2xhc3MgTWFya3VwQ29tcG9u
ZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAgcmVuZGVyUmVwbGFj
ZShwYXJlbnROb2RlLCBjb250ZW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY3Vy
cmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID09IHRoaXMpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7CisgICAgICAgIGFzc2Vy
dC5vayhjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7CisgICAgICAgIGFzc2Vy
dC5vayhwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7CiAgICAgICAgIHBh
cmVudE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICAgICAgaWYgKGNvbnRlbnQpIHsKICAg
ICAgICAgICAgIE1hcmt1cENvbXBvbmVudEJhc2UuX2FkZENvbnRlbnRUb0VsZW1lbnQocGFyZW50
Tm9kZSwgY29udGVudCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbXBvbmVu
dHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoY29tcG9u
ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQpOwogICAgICAgICAgICAgdGhp
cy5fYXBwbHlTdHlsZU92ZXJyaWRlcyhwYXJlbnROb2RlLCBjb21wb25lbnQuc3R5bGVPdmVycmlk
ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00OTMsNyArNDk1LDcgQEAgY2xhc3MgTWFya3VwQ29t
cG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAgc3RhdGljIHJl
c2V0KCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjdXJyZW50bHlSZW5kZXJpbmdD
b21wb25lbnQpOworICAgICAgICBhc3NlcnQub2soIWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVu
dCk7CiAgICAgICAgIE1hcmt1cERvY3VtZW50LnJlc2V0KCk7CiAgICAgICAgIGNvbXBvbmVudHNN
YXAuY2xlYXIoKTsKICAgICAgICAgY29tcG9uZW50c0J5Q2xhc3MuY2xlYXIoKTsKQEAgLTU2Nyw5
ICs1NjksOSBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9u
ZW50QmFzZSB7CiAKICAgICBzdGF0aWMgZGVmaW5lRWxlbWVudChuYW1lLCBjb21wb25lbnRDbGFz
cykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb21wb25lbnRzTWFwLmdldChuYW1l
KSwgYFRoZSBjb21wb25lbnQgIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZGApOwor
ICAgICAgICBhc3NlcnQub2soIWNvbXBvbmVudHNNYXAuZ2V0KG5hbWUpLCBgVGhlIGNvbXBvbmVu
dCAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkYCk7CiAgICAgICAgIGNvbnN0IGV4
aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MgPSBjb21wb25lbnRzQnlDbGFzcy5nZXQoY29tcG9uZW50
Q2xhc3MpOwotICAgICAgICBjb25zb2xlLmFzc2VydCghZXhpc3RpbmdDb21wb25lbnRGb3JDbGFz
cywgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcworICAgICAgICBhc3NlcnQub2soIWV4aXN0aW5n
Q29tcG9uZW50Rm9yQ2xhc3MsIGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MKICAgICAgICAgICAg
ID8gYFRoZSBjb21wb25lbnQgY2xhc3MgIiR7ZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzc30iIGhh
cyBhbHJlYWR5IGJlZW4gdXNlZCB0byBkZWZpbmUgYW5vdGhlciBjb21wb25lbnQgIiR7ZXhpc3Rp
bmdDb21wb25lbnRGb3JDbGFzcy5uYW1lfSJgIDogJycpOwogICAgICAgICBjb21wb25lbnRzTWFw
LnNldChuYW1lLCB7CiAgICAgICAgICAgICBjbGFzczogY29tcG9uZW50Q2xhc3MsCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0Y2hlci5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpz
CmluZGV4IDk5MzQwNzlkNmIzYWE0OWQ4N2VlNDNkYTU5NTFhN2RjMTAyYzA5ZmMuLjJkNmY1MGE5
NTczMGRjZDY2YzQ3NDU4MzFiYjhlYjdlYjdmMjNhNmIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzCkBAIC0xMjEsNyAr
MTIxLDcgQEAgY2xhc3MgT1NCdWlsZEZldGNoZXIgewogICAgICAgICAgICAgICAgIHRoaXMuX2xv
Z2dlci5sb2coYEdvdCAke09iamVjdC5rZXlzKChvd25lZENvbW1pdHMpKS5sZW5ndGh9IG93bmVk
IGNvbW1pdHMgZm9yICIke2NvbW1pdFsncmV2aXNpb24nXX0iYCk7CiAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgcmVwb3NpdG9yeU5hbWUgaW4gb3duZWRDb21taXRzKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gb3duZWRDb21taXRzW3JlcG9zaXRvcnlOYW1lXTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhvd25lZENv
bW1pdCksIFsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoT2JqZWN0LmtleXMob3duZWRDb21taXQpLCBbJ3JldmlzaW9uJ10pOwogICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQodHlwZW9mKG93bmVkQ29tbWl0WydyZXZpc2lvbiddKSA9PSAn
c3RyaW5nJyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbW1pdFsnb3du
ZWRDb21taXRzJ10gPSBvd25lZENvbW1pdHM7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL3JlbW90ZS5qcwppbmRleCBhZjZhYTM2OGVmNTBiYjg3ODMxNzY3ZjZhYjc1NjMxYzI4
MWRlMGM3Li40NzczNzY2NjA2NjBiODA2ZDQxMTE5OTIwN2Y5NDI4ZGNhNDQ3MjYwIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKQEAgLTMxLDE0ICszMSwx
NCBAQCBjbGFzcyBOb2RlUmVtb3RlQVBJIGV4dGVuZHMgQ29tbW9uUmVtb3RlQVBJIHsKICAgICBj
b25maWd1cmUoc2VydmVyKQogICAgIHsKICAgICAgICAgYXNzZXJ0KHNlcnZlci5zY2hlbWUgPT09
ICdodHRwJyB8fCBzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cHMnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHR5cGVvZihzZXJ2ZXIuaG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91bGQgYmUgYSBzdHJp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIuaG9zdCksICdz
dHJpbmcnLCAnaG9zdCBzaG91bGQgYmUgYSBzdHJpbmcnKTsKICAgICAgICAgYXNzZXJ0KCFzZXJ2
ZXIucG9ydCB8fCB0eXBlb2Yoc2VydmVyLnBvcnQpID09ICdudW1iZXInLCAncG9ydCBzaG91bGQg
YmUgYSBudW1iZXInKTsKIAogICAgICAgICBsZXQgYXV0aCA9IG51bGw7CiAgICAgICAgIGlmIChz
ZXJ2ZXIuYXV0aCkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0
aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5IHdpdGggdXNlcm5hbWUg
YW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yo
c2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4gYSBz
dHJpbmcgdXNlcm5hbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yoc2VydmVy
LmF1dGgucGFzc3dvcmQpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcg
cGFzc3dvcmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVy
LmF1dGgpLCAnb2JqZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEgZGljdGlvbmFyeSB3aXRoIHVzZXJu
YW1lIGFuZCBwYXNzd29yZCBhcyBrZXlzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodHlwZW9mKHNlcnZlci5hdXRoLnVzZXJuYW1lKSwgJ3N0cmluZycsICdhdXRoIHNob3VsZCBj
b250YWluIGEgc3RyaW5nIHVzZXJuYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodHlwZW9mKHNlcnZlci5hdXRoLnBhc3N3b3JkKSwgJ3N0cmluZycsICdhdXRoIHNob3VsZCBj
b250YWluIGEgc3RyaW5nIHBhc3N3b3JkJyk7CiAgICAgICAgICAgICBhdXRoID0gewogICAgICAg
ICAgICAgICAgIHVzZXJuYW1lOiBzZXJ2ZXIuYXV0aC51c2VybmFtZSwKICAgICAgICAgICAgICAg
ICBwYXNzd29yZDogc2VydmVyLmF1dGgucGFzc3dvcmQsCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCA2YTExZGJjNjdmZjYzNTYyMmEzOGU3
NzE4OTRlOTI4NWEzNzU3NzA3Li45NGZjNzNkNzkxNTIyNTRiY2ZiMmU4Zjc1Y2E0ZmM5Y2JiMzA3
MDYxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9k
ZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMu
anMKQEAgLTQxLDUgKzQxLDYgQEAgaW1wb3J0RnJvbVYzKCdpbnN0cnVtZW50YXRpb24uanMnLCAn
SW5zdHJ1bWVudGF0aW9uJyk7CiBpbXBvcnRGcm9tVjMoJ2xhemlseS1ldmFsdWF0ZWQtZnVuY3Rp
b24uanMnLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsKIGltcG9ydEZyb21WMygnY29tbWl0
LXNldC1yYW5nZS1iaXNlY3Rvci5qcycsICdDb21taXRTZXRSYW5nZUJpc2VjdG9yJyk7CiBpbXBv
cnRGcm9tVjMoJ2FzeW5jLXRhc2suanMnLCAnQXN5bmNUYXNrJyk7CitpbXBvcnRGcm9tVjMoJ2Nv
bnNvbGUtYXNzZXJ0LmpzJywgJ2NvbnNvbGVBc3NlcnQnKTsKIAogZ2xvYmFsLlN0YXRpc3RpY3Mg
PSByZXF1aXJlKCcuLi8uLi9wdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMnKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422430</attachid>
            <date>2021-03-05 15:11:09 -0800</date>
            <delta_ts>2021-03-05 15:27:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305151107.patch</filename>
            <type>text/plain</type>
            <size>912609</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi5mZGM3ZmI0Mjlh
MDY4OWI2NDYyMWY3YmVkNDU2ZmUzNTFkMjQ1OTI0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxODggQEAKKzIwMjEtMDMtMDUgIFpoaWZlaSBGYW5nICA8emhpZmVp
X2ZhbmdAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2VydmVyIHRlc3QgcnVuIHdpdGggbmV3
IG5vZGUgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyNDYzCisKKyAgICAgICAgQ2hhbmdlIGFzc2VydC5lcXVhbCB0byBhc3NlcnQuc3Ry
aWN0RXF1YWwgc2luY2Ugbm9kZSBkZXByZWNhdGVkIHRoaXMgQVBJCisgICAgICAgIEFkZCBhIG5l
dyBmdW5jdGlvbiBjb25zb2xlQXNzZXJ0IHRvIG1ha2Ugc3VyZSBpdCB3aWxsIHRocm93IGFuIGVy
cm9yCisgICAgICAgIE1ha2Ugc3VyZSBtb2RlbCdzIG1ldGhvZHMgd2lsbCBhbHdheXMgcmV0dXJu
IG51bGwgaW5zdGVhZCBvZiB1bmRlZmllbmQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy92My9jb25zb2xlLWFzc2VydC5qczogQWRkZWQu
CisgICAgICAgIChjb25zb2xlQXNzZXJ0KToKKyAgICAgICAgKiBwdWJsaWMvdjMvaW5kZXguaHRt
bDoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanM6CisgICAg
ICAgIChBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmNvbnRhaW5zVGVzdCk6CisgICAgICAgIChB
bmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMu
cHJvdG90eXBlLnZpZXdGb3JNZXRyaWMpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYW5h
bHlzaXMtdGFzay5qczoKKyAgICAgICAgKEFuYWx5c2lzVGFzayk6CisgICAgICAgIChBbmFseXNp
c1Rhc2sucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChBbmFseXNpc1Rhc2su
cHJvdG90eXBlLmFzc29jaWF0ZUJ1Zyk6CisgICAgICAgIChBbmFseXNpc1Rhc2sucHJvdG90eXBl
LmRpc3NvY2lhdGVCdWcpOgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5hc3NvY2lh
dGVDb21taXQpOgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5kaXNzb2NpYXRlQ29t
bWl0KToKKyAgICAgICAgKEFuYWx5c2lzVGFzay5hc3luYyBjcmVhdGUpOgorICAgICAgICAqIHB1
YmxpYy92My9tb2RlbHMvYnVnLmpzOgorICAgICAgICAoQnVnKToKKyAgICAgICAgKEJ1Zy5lbnN1
cmVTaW5nbGV0b24pOgorICAgICAgICAoQnVnLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczoKKyAgICAgICAgKEJ1
aWxkUmVxdWVzdCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzOgorICAgICAgICAo
QnVpbGQpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qczoKKyAgICAg
ICAgKENvbW1pdExvZyk6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgIChDb21taXRMb2cuZmV0Y2hMYXRlc3RDb21taXRGb3JQbGF0Zm9ybSk6
CisgICAgICAgIChDb21taXRMb2cub3JkZXJUd29Db21taXRzKToKKyAgICAgICAgKENvbW1pdExv
Zy5vd25lZENvbW1pdERpZmZlcmVuY2VGb3JPd25lckNvbW1pdHMpOgorICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAgICAgICAgKENvbW1pdFNldC5wcm90b3R5cGUu
X3VwZGF0ZUZyb21PYmplY3QpOgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5wYXRjaEZv
clJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5yb290Rm9yUmVwb3Np
dG9yeSk6CisgICAgICAgIChDb21taXRTZXQuY29udGFpbnNNdWx0aXBsZUNvbW1pdHNGb3JSZXBv
c2l0b3J5LnNldCBjb25zdC5hbm90aGVyQ29tbWl0LnNldCBjb21taXRGb3JSZXBvc2l0b3J5KToK
KyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011bHRpcGxlQ29tbWl0c0ZvclJlcG9zaXRvcnku
c2V0IGNvbnN0KToKKyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011bHRpcGxlQ29tbWl0c0Zv
clJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0U2V0LmRpZmYpOgorICAgICAgICAoQ29tbWl0
U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKToKKyAgICAgICAgKENvbW1pdFNldCk6Cisg
ICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLnNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eSk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmVxdWFscyk6CisgICAgICAg
IChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmFkZEN1c3RvbVJvb3QpOgorICAgICAgICAoQ3Vz
dG9tQ29tbWl0U2V0KToKKyAgICAgICAgKEludGVybWVkaWF0ZUNvbW1pdFNldCk6CisgICAgICAg
IChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90eXBlLl9mZXRjaENvbW1pdExvZ0FuZE93bmVk
Q29tbWl0cyk6CisgICAgICAgIChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90eXBlLnNldENv
bW1pdEZvclJlcG9zaXRvcnkpOgorICAgICAgICAoSW50ZXJtZWRpYXRlQ29tbWl0U2V0LnByb3Rv
dHlwZS5yZW1vdmVDb21taXRGb3JSZXBvc2l0b3J5KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL2RhdGEtbW9kZWwuanM6CisgICAgICAgIChEYXRhTW9kZWxPYmplY3QuZmluZEJ5SWQpOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0LmpzOgorICAgICAgICAo
TWVhc3VyZW1lbnRTZXQucHJvdG90eXBlLl9kaWRGZXRjaEpTT04pOgorICAgICAgICAoTWVhc3Vy
ZW1lbnRTZXQucHJvdG90eXBlLmhhc0ZldGNoZWRSYW5nZSk6CisgICAgICAgICogcHVibGljL3Yz
L21vZGVscy9tZXRyaWMuanM6CisgICAgICAgIChNZXRyaWMucHJvdG90eXBlLmFkZFBsYXRmb3Jt
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzOgorICAgICAgICAoUGxh
dGZvcm0ucHJvdG90eXBlLmxhc3RNb2RpZmllZCk6CisgICAgICAgICogcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzOgorICAgICAgICAoUmVwb3NpdG9yeS5wcm90b3R5cGUub3duZWRSZXBv
c2l0b3JpZXMpOgorICAgICAgICAoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKToKKyAgICAgICAgKFJlcG9zaXRvcnkpOgorICAgICAgICAqIHB1YmxpYy92My9tb2Rl
bHMvdGVzdC1ncm91cC5qczoKKyAgICAgICAgKFRlc3RHcm91cCk6CisgICAgICAgIChUZXN0R3Jv
dXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChUZXN0R3JvdXAuX2NvbXB1
dGVSZXF1ZXN0ZWRDb21taXRTZXRzLnNldCByZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAg
KFRlc3RHcm91cC5fY29tcHV0ZVJlcXVlc3RlZENvbW1pdFNldHMuY29uc3Quc2V0IHJlcXVlc3Qp
OgorICAgICAgICAoVGVzdEdyb3VwLl9jb21wdXRlUmVxdWVzdGVkQ29tbWl0U2V0cyk6CisgICAg
ICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2spOgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0
ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RHcm91cC5jcmVhdGVBbmRS
ZWZldGNoVGVzdEdyb3Vwcyk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy90aW1lLXNlcmll
cy5qczoKKyAgICAgICAgKFRpbWVTZXJpZXMucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChU
aW1lU2VyaWVzLnByb3RvdHlwZS5wcmV2aW91c1BvaW50KToKKyAgICAgICAgKFRpbWVTZXJpZXMu
cHJvdG90eXBlLm5leHRQb2ludCk6CisgICAgICAgIChUaW1lU2VyaWVzLnByb3RvdHlwZS52aWV3
QmV0d2VlblBvaW50cyk6CisgICAgICAgIChUaW1lU2VyaWVzKToKKyAgICAgICAgKFRpbWVTZXJp
ZXNWaWV3KToKKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5maXJzdFBvaW50SW5U
aW1lUmFuZ2UpOgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLmxhc3RQb2ludElu
VGltZVJhbmdlKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzOgor
ICAgICAgICAoVHJpZ2dlcmFibGUpOgorICAgICAgICAoVHJpZ2dlcmFibGUudHJpZ2dlcmFibGVQ
bGF0Zm9ybXNGb3JUZXN0cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jt
cy10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1p
bi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgICog
c2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczoKKyAgICAgICAgKHJldHVy
bi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4p
OgorICAgICAgICAodGhlbik6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAoYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQpOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJ
LmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuKToKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzOgorICAgICAgICAocmV0
dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhl
bik6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4p
OgorICAgICAgICAoc2V0IHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGVtcHR5UmVwb3J0
LnRoZW4pOgorICAgICAgICAoYXN5bmMgaW5pdGlhbFJlcG9ydENvbW1pdHMpOgorICAgICAgICAo
YXN5bmMgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyk6CisgICAgICAgIChhc3luYyB0ZXN0
V2l0aEV4cGVjdGVkRmFpbHVyZSk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGVtcHR5UmVwb3J0LnRoZW4pOgor
ICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUt
dGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHVwZGF0ZS50aGVuKToKKyAgICAg
ICAgKHRoZW4ucmVzcG9uc2UuZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4p
OgorICAgICAgICAodGhlbi5kYi5zZWxlY3RBbGwuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6
CisgICAgICAgICh0aGVuLk1hbmlmZXN0LmZldGNoLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAg
KGFzeW5jIGNvbnN0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUt
dGVzdHMuanM6CisgICAgICAgIChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5z
dHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6Cisg
ICAgICAgIChhc3luYyBjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAgICAoY29uc3QuY29tbWl0
U2V0Lm9mLnVwZGF0ZWRHcm91cHMuMC5yZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanM6
CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
Y3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChjcmVhdGVBbmFseXNpc1Rhc2sp
OgorICAgICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lzVGFzay5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKHJldHVybi5hZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2suc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50
aGVuKToKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOgorICAg
ICAgICAoYXN5bmMgY3JlYXRlQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanM6CisgICAgICAgIChUZXN0U2VydmVy
LnRlc3RDb25maWcudXBsb2FkRmlsZUxpbWl0SW5NQi4xLnRoZW4pOgorICAgICAgICAodGhlbik6
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qczoK
KyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jl
c291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoKKyAgICAgICAgKFRlbXBvcmFyeUZpbGUubWFrZVRl
bXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVp
bGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgIChhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZSk6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRo
ZW4pOgorICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5q
czoKKyAgICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90
eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5i
dWlsZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAgICAgICAgKEJ1aWxkYm90QnVp
bGRFbnRyeSk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1
ZXN0KToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKToKKyAgICAgICAgKEJ1
aWxkYm90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6CisgICAgICAgIChCdWlsZGJvdFN5
bmNlci5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlcik6
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChC
dWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAg
ICogdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qczoKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERv
Y3VtZW50Lm5ldy5NYXJrdXBEb2N1bWVudC5wcm90b3R5cGUuX2lkRm9yQ2xvbmUpOgorICAgICAg
ICAoY29uc3QuTWFya3VwRG9jdW1lbnQubmV3Lk1hcmt1cERvY3VtZW50LnByb3RvdHlwZS5tYXJr
dXApOgorICAgICAgICAqIHRvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanM6CisgICAgICAgIChw
cm90b3R5cGUuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKToKKyAgICAgICAgKiB0b29scy9qcy9y
ZW1vdGUuanM6CisgICAgICAgIChOb2RlUmVtb3RlQVBJLnByb3RvdHlwZS5jb25maWd1cmUpOgor
ICAgICAgICAqIHRvb2xzL2pzL3YzLW1vZGVscy5qczoKKwogMjAyMS0wMi0xOCAgRGV3ZWkgWmh1
ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBidWcgdGhhdCBhIHN5bmNp
bmcgc2NyaXB0IG1heSB0cnkgdG8gcmV1c2UgYSBkZWxldGUgcm9vdC4KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29uc29sZS1hc3NlcnQuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbnNvbGUtYXNzZXJ0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmUwMDU5ZTQwY2Y2MDI1ZWY0NTk2YWI3OTlmN2ZiN2ZlN2RiYzdiZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbnNvbGUtYXNzZXJ0
LmpzCkBAIC0wLDAgKzEsMTEgQEAKKyd1c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gY29uc29sZUFz
c2VydCAoY29uZGl0aW9uLCBtZXNzYWdlPSJBc3NlcnRpb24gZmFpbGVkIikgeworICAgIC8vTWFr
ZSBzdXJlIHRoYXQgYnJvd3NlciBzaWRlIHdlIGRvIHByaW50IG91dCB0aGUgZXJyb3IKKyAgICBj
b25zb2xlLmFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpOworICAgIGlmIChjb25kaXRpb24gIT09
IHRydWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKK30KKworaWYgKHR5cGVv
ZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMuY29uc29sZUFzc2Vy
dCA9IGNvbnNvbGVBc3NlcnQ7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCmluZGV4IGY1MzEwMDNlZDVl
NjczNTA5ZTQzN2U0ODExYmIwOWY4YWMzMzcyZDMuLmI3N2IzNWFhOWM0NjNiY2JlOGQwMTY5NTc5
Y2JkNmRiNDU1ODAwNDQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvaW5kZXguaHRtbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2luZGV4Lmh0bWwKQEAgLTQ3LDYgKzQ3LDcgQEAgUnVuIHRvb2xzL2J1bmRsZS12My1zY3JpcHRz
IHRvIHNwZWVkIHVwIHRoZSBsb2FkIHRpbWUgZm9yIHByb2R1Y3Rpb24uYCk7CiAgICAgICAgIDxz
Y3JpcHQgc3JjPSJhc3luYy10YXNrLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9
ImxhemlseS1ldmFsdWF0ZWQtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0
IHNyYz0iY29tbWl0LXNldC1yYW5nZS1iaXNlY3Rvci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSJjb25zb2xlLWFzc2VydC5qcyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHNjcmlw
dCBzcmM9Im1vZGVscy90aW1lLXNlcmllcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQg
c3JjPSJtb2RlbHMvbWVhc3VyZW1lbnQtYWRhcHRvci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1
bHRzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlz
aXMtcmVzdWx0cy5qcwppbmRleCAyNTk1NTNjY2JiNDFlMWUxZDVlODhmM2Y1YWUwMGEzYjBlYTk0
YWJhLi5lZTk5MzkwOWE4YmIzMjM4Zjg1OTY5MWYwNmQ5OWQ2ZTE1YzcwZThjIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1yZXN1
bHRzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Fu
YWx5c2lzLXJlc3VsdHMuanMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRz
IHsKIAogICAgIGNvbnRhaW5zVGVzdCh0ZXN0KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQodGVzdCBpbnN0YW5jZW9mIFRlc3QpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRlc3QgaW5z
dGFuY2VvZiBUZXN0KTsKICAgICAgICAgZm9yIChjb25zdCBtZXRyaWMgb2YgdGVzdC5tZXRyaWNz
KCkpIHsKICAgICAgICAgICAgIGlmIChtZXRyaWMuaWQoKSBpbiB0aGlzLl9tZXRyaWNUb0J1aWxk
TWFwKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNTQsMTQgKzU0LDE0IEBAIGNs
YXNzIEFuYWx5c2lzUmVzdWx0cyB7CiAKICAgICBhZGQobWVhc3VyZW1lbnQpCiAgICAgewotICAg
ICAgICBjb25zb2xlLmFzc2VydChtZWFzdXJlbWVudC5jb25maWdUeXBlID09ICdjdXJyZW50Jyk7
CisgICAgICAgIGNvbnNvbGVBc3NlcnQobWVhc3VyZW1lbnQuY29uZmlnVHlwZSA9PSAnY3VycmVu
dCcpOwogICAgICAgICBjb25zdCBtZXRyaWNJZCA9IG1lYXN1cmVtZW50Lm1ldHJpY0lkOwogICAg
ICAgICBpZiAoIShtZXRyaWNJZCBpbiB0aGlzLl9tZXRyaWNUb0J1aWxkTWFwKSkgewogICAgICAg
ICAgICAgdGhpcy5fbWV0cmljVG9CdWlsZE1hcFttZXRyaWNJZF0gPSB7fTsKICAgICAgICAgICAg
IHRoaXMuX21ldHJpY0lkcyA9IE9iamVjdC5rZXlzKHRoaXMuX21ldHJpY1RvQnVpbGRNYXApOwog
ICAgICAgICB9CiAgICAgICAgIGNvbnN0IG1hcCA9IHRoaXMuX21ldHJpY1RvQnVpbGRNYXBbbWV0
cmljSWRdOwotICAgICAgICBjb25zb2xlLmFzc2VydCghbWFwW21lYXN1cmVtZW50LmJ1aWxkSWRd
KTsKKyAgICAgICAgY29uc29sZUFzc2VydCghbWFwW21lYXN1cmVtZW50LmJ1aWxkSWRdKTsKICAg
ICAgICAgbWFwW21lYXN1cmVtZW50LmJ1aWxkSWRdID0gbWVhc3VyZW1lbnQ7CiAgICAgfQogCkBA
IC03Nyw3ICs3Nyw3IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiAKICAgICB2aWV3Rm9yTWV0
cmljKG1ldHJpYykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1ldHJpYyBpbnN0YW5j
ZW9mIE1ldHJpYyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQobWV0cmljIGluc3RhbmNlb2YgTWV0
cmljKTsKICAgICAgICAgcmV0dXJuIG5ldyBBbmFseXNpc1Jlc3VsdHNWaWV3KHRoaXMsIG1ldHJp
Yyk7CiAgICAgfQogCkBAIC0xMDMsOCArMTAzLDggQEAgY2xhc3MgQW5hbHlzaXNSZXN1bHRzIHsK
IGNsYXNzIEFuYWx5c2lzUmVzdWx0c1ZpZXcgewogICAgIGNvbnN0cnVjdG9yKGFuYWx5c2lzUmVz
dWx0cywgbWV0cmljKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYW5hbHlzaXNSZXN1
bHRzIGluc3RhbmNlb2YgQW5hbHlzaXNSZXN1bHRzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
bWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydChhbmFseXNp
c1Jlc3VsdHMgaW5zdGFuY2VvZiBBbmFseXNpc1Jlc3VsdHMpOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KG1ldHJpYyBpbnN0YW5jZW9mIE1ldHJpYyk7CiAgICAgICAgIHRoaXMuX3Jlc3VsdHMgPSBh
bmFseXNpc1Jlc3VsdHM7CiAgICAgICAgIHRoaXMuX21ldHJpYyA9IG1ldHJpYzsKICAgICB9CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFs
eXNpcy10YXNrLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
YW5hbHlzaXMtdGFzay5qcwppbmRleCAxNzc2YTgxN2JjMzE5OTY5Mjk3MmE0MGFhNGVkNjhjMWE5
NWNkZWVlLi5jNmU3OWVmOGVlMzcyNWI1ZTIwZWUxMGI4N2I3NmI0NmMxNmIxZTUwIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10
YXNrLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Fu
YWx5c2lzLXRhc2suanMKQEAgLTcsMTAgKzcsMTAgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVu
ZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHRoaXMuX2F1dGhvciA9IG9iamVjdC5hdXRob3I7
CiAgICAgICAgIHRoaXMuX2NyZWF0ZWRBdCA9IG9iamVjdC5jcmVhdGVkQXQ7CiAKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoIW9iamVjdC5wbGF0Zm9ybSB8fCBvYmplY3QucGxhdGZvcm0gaW5zdGFu
Y2VvZiBQbGF0Zm9ybSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoIW9iamVjdC5wbGF0Zm9ybSB8
fCBvYmplY3QucGxhdGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7CiAgICAgICAgIHRoaXMuX3Bs
YXRmb3JtID0gb2JqZWN0LnBsYXRmb3JtOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmpl
Y3QubWV0cmljIHx8IG9iamVjdC5tZXRyaWMgaW5zdGFuY2VvZiBNZXRyaWMpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KCFvYmplY3QubWV0cmljIHx8IG9iamVjdC5tZXRyaWMgaW5zdGFuY2VvZiBN
ZXRyaWMpOwogICAgICAgICB0aGlzLl9tZXRyaWMgPSBvYmplY3QubWV0cmljOwogCiAgICAgICAg
IHRoaXMuX3N0YXJ0TWVhc3VyZW1lbnRJZCA9IG9iamVjdC5zdGFydFJ1bjsKQEAgLTQwLDE0ICs0
MCwxNCBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICB7
CiAgICAgICAgIHN1cGVyLnVwZGF0ZVNpbmdsZXRvbihvYmplY3QpOwogCi0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRoaXMuX2F1dGhvciA9PSBvYmplY3QuYXV0aG9yKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoK3RoaXMuX2NyZWF0ZWRBdCA9PSArb2JqZWN0LmNyZWF0ZWRBdCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX21ldHJpYyA9PSBvYmplY3QubWV0cmljKTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQodGhpcy5fc3RhcnRNZWFzdXJlbWVudElkID09IG9iamVjdC5zdGFy
dFJ1bik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3N0YXJ0VGltZSA9PSBvYmplY3Qu
c3RhcnRSdW5UaW1lKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZW5kTWVhc3VyZW1l
bnRJZCA9PSBvYmplY3QuZW5kUnVuKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZW5k
VGltZSA9PSBvYmplY3QuZW5kUnVuVGltZSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5f
YXV0aG9yID09IG9iamVjdC5hdXRob3IpOworICAgICAgICBjb25zb2xlQXNzZXJ0KCt0aGlzLl9j
cmVhdGVkQXQgPT0gK29iamVjdC5jcmVhdGVkQXQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRo
aXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQo
dGhpcy5fbWV0cmljID09IG9iamVjdC5tZXRyaWMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRo
aXMuX3N0YXJ0TWVhc3VyZW1lbnRJZCA9PSBvYmplY3Quc3RhcnRSdW4pOworICAgICAgICBjb25z
b2xlQXNzZXJ0KHRoaXMuX3N0YXJ0VGltZSA9PSBvYmplY3Quc3RhcnRSdW5UaW1lKTsKKyAgICAg
ICAgY29uc29sZUFzc2VydCh0aGlzLl9lbmRNZWFzdXJlbWVudElkID09IG9iamVjdC5lbmRSdW4p
OworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2VuZFRpbWUgPT0gb2JqZWN0LmVuZFJ1blRp
bWUpOwogCiAgICAgICAgIHRoaXMuX2NhdGVnb3J5ID0gb2JqZWN0LmNhdGVnb3J5OwogICAgICAg
ICB0aGlzLl9jaGFuZ2VUeXBlID0gb2JqZWN0LnJlc3VsdDsgLy8gQ2FuJ3QgY2hhbmdlIGR1ZSB0
byB2MiBjb21wYXRpYmlsaXR5LgpAQCAtOTMsOCArOTMsOCBAQCBjbGFzcyBBbmFseXNpc1Rhc2sg
ZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIGFzc29jaWF0ZUJ1Zyh0cmFja2VyLCBidWdO
dW1iZXIpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0cmFja2VyIGluc3RhbmNlb2Yg
QnVnVHJhY2tlcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZihidWdOdW1iZXIpID09
ICdudW1iZXInKTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0cmFja2VyIGluc3RhbmNlb2YgQnVn
VHJhY2tlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodHlwZW9mKGJ1Z051bWJlcikgPT0gJ251
bWJlcicpOwogICAgICAgICB2YXIgaWQgPSB0aGlzLmlkKCk7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhc3NvY2lhdGUtYnVnJywgewogICAgICAgICAgICAgdGFz
azogaWQsCkBAIC0xMDgsOCArMTA4LDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFi
ZWxlZE9iamVjdCB7CiAKICAgICBkaXNzb2NpYXRlQnVnKGJ1ZykKICAgICB7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGJ1ZyBpbnN0YW5jZW9mIEJ1Zyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHRoaXMuYnVncygpLmluY2x1ZGVzKGJ1ZykpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGJ1ZyBp
bnN0YW5jZW9mIEJ1Zyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5idWdzKCkuaW5jbHVk
ZXMoYnVnKSk7CiAgICAgICAgIHZhciBpZCA9IHRoaXMuaWQoKTsKICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Fzc29jaWF0ZS1idWcnLCB7CiAgICAgICAgICAgICB0
YXNrOiBpZCwKQEAgLTEyNCw4ICsxMjQsOCBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBM
YWJlbGVkT2JqZWN0IHsKIAogICAgIGFzc29jaWF0ZUNvbW1pdChraW5kLCByZXBvc2l0b3J5LCBy
ZXZpc2lvbikKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGtpbmQgPT0gJ2NhdXNlJyB8
fCBraW5kID09ICdmaXgnKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeSBpbnN0
YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGtpbmQgPT0gJ2NhdXNl
JyB8fCBraW5kID09ICdmaXgnKTsKKyAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5IGlu
c3RhbmNlb2YgUmVwb3NpdG9yeSk7CiAgICAgICAgIGlmIChyZXZpc2lvbi5zdGFydHNXaXRoKCdy
JykpCiAgICAgICAgICAgICByZXZpc2lvbiA9IHJldmlzaW9uLnN1YnN0cmluZygxKTsKICAgICAg
ICAgY29uc3QgaWQgPSB0aGlzLmlkKCk7CkBAIC0xNDIsNyArMTQyLDcgQEAgY2xhc3MgQW5hbHlz
aXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBkaXNzb2NpYXRlQ29tbWl0KGNv
bW1pdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENv
bW1pdExvZyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoY29tbWl0IGluc3RhbmNlb2YgQ29tbWl0
TG9nKTsKICAgICAgICAgdmFyIGlkID0gdGhpcy5pZCgpOwogICAgICAgICByZXR1cm4gUHJpdmls
ZWdlZEFQSS5zZW5kUmVxdWVzdCgnYXNzb2NpYXRlLWNvbW1pdCcsIHsKICAgICAgICAgICAgIHRh
c2s6IGlkLApAQCAtMzI4LDcgKzMyOCw3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExh
YmVsZWRPYmplY3QgewogICAgIHsKICAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtuYW1lLCBz
dGFydFJ1bjogc3RhcnRQb2ludC5pZCwgZW5kUnVuOiBlbmRQb2ludC5pZH07CiAgICAgICAgIGlm
ICh0ZXN0R3JvdXBOYW1lKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChyZXBldGl0aW9u
Q291bnQpOworICAgICAgICAgICAgY29uc29sZUFzc2VydChyZXBldGl0aW9uQ291bnQpOwogICAg
ICAgICAgICAgcGFyYW1ldGVyc1sncmV2aXNpb25TZXRzJ10gPSBDb21taXRTZXQucmV2aXNpb25T
ZXRzRnJvbUNvbW1pdFNldHMoW3N0YXJ0UG9pbnQuY29tbWl0U2V0KCksIGVuZFBvaW50LmNvbW1p
dFNldCgpXSk7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWydyZXBldGl0aW9uQ291bnQnXSA9IHJl
cGV0aXRpb25Db3VudDsKICAgICAgICAgICAgIHBhcmFtZXRlcnNbJ3Rlc3RHcm91cE5hbWUnXSA9
IHRlc3RHcm91cE5hbWU7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9idWcuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9idWcuanMKaW5kZXggYzE1ODg2NzE5MmE2ZDBmNzdkZTkzYWY4YTc4Yzk5ODJlMDUx
ZjE2NS4uZjc5MDAwOWNlNTM3MzcyZjg3NGE1YzQxMzU4MDkwMzg3NTU4MzJhMSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVnLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1Zy5qcwpAQCAtNCwx
NCArNCwxNCBAQCBjbGFzcyBCdWcgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIHsKICAg
ICAgICAgc3VwZXIoaWQsIG9iamVjdCk7CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQob2JqZWN0
LmJ1Z1RyYWNrZXIgaW5zdGFuY2VvZiBCdWdUcmFja2VyKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dChvYmplY3QuYnVnVHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNrZXIpOwogICAgICAgICB0aGlz
Ll9idWdUcmFja2VyID0gb2JqZWN0LmJ1Z1RyYWNrZXI7CiAgICAgICAgIHRoaXMuX2J1Z051bWJl
ciA9IG9iamVjdC5udW1iZXI7CiAgICAgfQogCiAgICAgc3RhdGljIGVuc3VyZVNpbmdsZXRvbihv
YmplY3QpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChvYmplY3QuYnVnVHJhY2tlciBp
bnN0YW5jZW9mIEJ1Z1RyYWNrZXIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KG9iamVjdC5idWdU
cmFja2VyIGluc3RhbmNlb2YgQnVnVHJhY2tlcik7CiAgICAgICAgIHZhciBpZCA9IG9iamVjdC5i
dWdUcmFja2VyLmlkKCkgKyAnLScgKyBvYmplY3QubnVtYmVyOwogICAgICAgICByZXR1cm4gc3Vw
ZXIuZW5zdXJlU2luZ2xldG9uKGlkLCBvYmplY3QpOwogICAgIH0KQEAgLTE5LDggKzE5LDggQEAg
Y2xhc3MgQnVnIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB1cGRhdGVTaW5nbGV0b24o
b2JqZWN0KQogICAgIHsKICAgICAgICAgc3VwZXIudXBkYXRlU2luZ2xldG9uKG9iamVjdCk7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2J1Z1RyYWNrZXIgPT0gb2JqZWN0LmJ1Z1RyYWNr
ZXIpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9idWdOdW1iZXIgPT0gb2JqZWN0Lm51
bWJlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fYnVnVHJhY2tlciA9PSBvYmplY3Qu
YnVnVHJhY2tlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fYnVnTnVtYmVyID09IG9i
amVjdC5udW1iZXIpOwogICAgIH0KIAogICAgIGJ1Z1RyYWNrZXIoKSB7IHJldHVybiB0aGlzLl9i
dWdUcmFja2VyOyB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcwppbmRleCBmMDk1ZTBkN2FiZTg2YTAyNjUy
MTUxNjEyNzg0ZDIxZDEwM2E1NjE2Li45NTJhMzdkNTZiYWE0M2U0MjVlNzk3NGU4MDg3MzA5MWE5
MmVmNDU4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9idWlsZC1yZXF1ZXN0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKQEAgLTYsMjAgKzYsMjAgQEAgY2xhc3MgQnVp
bGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAgICAgICAgIHN1cGVy
KGlkLCBvYmplY3QpOwogICAgICAgICB0aGlzLl90cmlnZ2VyYWJsZSA9IG9iamVjdC50cmlnZ2Vy
YWJsZTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIW9iamVjdC5yZXBvc2l0b3J5R3JvdXAgfHwg
b2JqZWN0LnJlcG9zaXRvcnlHcm91cCBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdy
b3VwKTsKKyAgICAgICAgY29uc29sZUFzc2VydCghb2JqZWN0LnJlcG9zaXRvcnlHcm91cCB8fCBv
YmplY3QucmVwb3NpdG9yeUdyb3VwIGluc3RhbmNlb2YgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3Jv
dXApOwogICAgICAgICB0aGlzLl9hbmFseXNpc1Rhc2tJZCA9IG9iamVjdC50YXNrOwogICAgICAg
ICB0aGlzLl90ZXN0R3JvdXBJZCA9IG9iamVjdC50ZXN0R3JvdXBJZDsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoIW9iamVjdC50ZXN0R3JvdXAgfHwgb2JqZWN0LnRlc3RHcm91cCBpbnN0YW5jZW9m
IFRlc3RHcm91cCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoIW9iamVjdC50ZXN0R3JvdXAgfHwg
b2JqZWN0LnRlc3RHcm91cCBpbnN0YW5jZW9mIFRlc3RHcm91cCk7CiAgICAgICAgIHRoaXMuX3Rl
c3RHcm91cCA9IG9iamVjdC50ZXN0R3JvdXA7CiAgICAgICAgIGlmICh0aGlzLl90ZXN0R3JvdXAp
CiAgICAgICAgICAgICB0aGlzLl90ZXN0R3JvdXAuYWRkQnVpbGRSZXF1ZXN0KHRoaXMpOwogICAg
ICAgICB0aGlzLl9yZXBvc2l0b3J5R3JvdXAgPSBvYmplY3QucmVwb3NpdG9yeUdyb3VwOwotICAg
ICAgICBjb25zb2xlLmFzc2VydChvYmplY3QucGxhdGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7
CisgICAgICAgIGNvbnNvbGVBc3NlcnQob2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZv
cm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9IG9iamVjdC5wbGF0Zm9ybTsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoIW9iamVjdC50ZXN0IHx8IG9iamVjdC50ZXN0IGluc3RhbmNlb2YgVGVz
dCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoIW9iamVjdC50ZXN0IHx8IG9iamVjdC50ZXN0IGlu
c3RhbmNlb2YgVGVzdCk7CiAgICAgICAgIHRoaXMuX3Rlc3QgPSBvYmplY3QudGVzdDsKICAgICAg
ICAgdGhpcy5fb3JkZXIgPSBvYmplY3Qub3JkZXI7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9i
amVjdC5jb21taXRTZXQgaW5zdGFuY2VvZiBDb21taXRTZXQpOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KG9iamVjdC5jb21taXRTZXQgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICB0aGlz
Ll9jb21taXRTZXQgPSBvYmplY3QuY29tbWl0U2V0OwogICAgICAgICB0aGlzLl9zdGF0dXMgPSBv
YmplY3Quc3RhdHVzOwogICAgICAgICB0aGlzLl9zdGF0dXNVcmwgPSBvYmplY3QudXJsOwpAQCAt
MzEsMTEgKzMxLDExIEBAIGNsYXNzIEJ1aWxkUmVxdWVzdCBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAKICAgICB1cGRhdGVTaW5nbGV0b24ob2JqZWN0KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5fb3JkZXIgPT0gb2JqZWN0Lm9yZGVyKTsKLSAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fY29tbWl0U2V0ID09IG9iamVjdC5jb21taXRTZXQpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KHRoaXMuX29yZGVyID09IG9iamVjdC5vcmRlcik7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQodGhpcy5fY29tbWl0U2V0ID09IG9iamVjdC5jb21taXRTZXQpOwogCiAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IG9iamVjdC50ZXN0R3JvdXA7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCF0aGlzLl90ZXN0R3JvdXAgfHwgdGhpcy5fdGVzdEdyb3VwID09IHRlc3RHcm91cCk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoIXRoaXMuX3Rlc3RHcm91cCB8fCB0aGlzLl90ZXN0R3JvdXAgPT0g
dGVzdEdyb3VwKTsKICAgICAgICAgaWYgKCF0aGlzLl90ZXN0R3JvdXAgJiYgdGVzdEdyb3VwKQog
ICAgICAgICAgICAgdGVzdEdyb3VwLmFkZEJ1aWxkUmVxdWVzdCh0aGlzKTsKIApkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGRlci5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkZXIuanMKaW5k
ZXggYjMyMDQwZjRiODBhMjRhYmJjYWFkOWY4MDNkMzM4OTRhMmYyZjUwMC4uMjJlYzcyNzk2YjMy
MTNkZTIxNDgzZjU3ZjJkOWVjYjVjY2MwMzlhOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGRlci5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzCkBAIC0xOCw3ICsxOCw3IEBA
IGNsYXNzIEJ1aWxkZXIgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIGNsYXNzIEJ1aWxkIGV4dGVu
ZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBjb25zdHJ1Y3RvcihpZCwgYnVpbGRlciwgYnVpbGRU
YWcsIGJ1aWxkVGltZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJ1aWxkZXIgaW5z
dGFuY2VvZiBCdWlsZGVyKTsKKyAgICAgICAgY29uc29sZUFzc2VydChidWlsZGVyIGluc3RhbmNl
b2YgQnVpbGRlcik7CiAgICAgICAgIHN1cGVyKGlkKTsKICAgICAgICAgdGhpcy5fYnVpbGRlciA9
IGJ1aWxkZXI7CiAgICAgICAgIHRoaXMuX2J1aWxkVGFnID0gYnVpbGRUYWc7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5q
cwppbmRleCBlNmQ0ZDQ0YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi4wNmU2YWRm
NzVlYjhkMTZiZWExNGRlNjBmNzI1MDVhNDg5ZTY5YmYzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTMs
MTEgKzMsMTEgQEAKIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAg
ICAgY29uc3RydWN0b3IoaWQsIHJhd0RhdGEpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2Vy
dChwYXJzZUludChpZCkgPT0gaWQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHBhcnNlSW50KGlk
KSA9PSBpZCk7CiAgICAgICAgIHN1cGVyKGlkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaWQg
PT0gcmF3RGF0YS5pZCkKKyAgICAgICAgY29uc29sZUFzc2VydChpZCA9PSByYXdEYXRhLmlkKQog
ICAgICAgICB0aGlzLl9yZXBvc2l0b3J5ID0gcmF3RGF0YS5yZXBvc2l0b3J5OwotICAgICAgICBj
b25zb2xlLmFzc2VydCh0aGlzLl9yZXBvc2l0b3J5IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7Cisg
ICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fcmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRv
cnkpOwogICAgICAgICB0aGlzLl9yYXdEYXRhID0gcmF3RGF0YTsKICAgICAgICAgdGhpcy5fb3du
ZWRDb21taXRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fb3duZXJDb21taXQgPSBudWxsOwpAQCAt
MTgsOCArMTgsOCBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3Qgewog
ICAgIHsKICAgICAgICAgc3VwZXIudXBkYXRlU2luZ2xldG9uKHJhd0RhdGEpOwogCi0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCt0aGlzLl9yYXdEYXRhWyd0aW1lJ10gPT0gK3Jhd0RhdGFbJ3RpbWUn
XSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Jhd0RhdGFbJ3JldmlzaW9uJ10gPT0g
cmF3RGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoK3RoaXMuX3Jhd0Rh
dGFbJ3RpbWUnXSA9PSArcmF3RGF0YVsndGltZSddKTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0
aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09IHJhd0RhdGFbJ3JldmlzaW9uJ10pOwogCiAgICAg
ICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAgICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1
dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7CkBAIC04Myw4ICs4Myw4IEBAIGNsYXNzIENv
bW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICBzdGF0aWMgZmV0Y2hMYXRl
c3RDb21taXRGb3JQbGF0Zm9ybShyZXBvc2l0b3J5LCBwbGF0Zm9ybSkKICAgICB7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQocGxhdGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7CisgICAgICAg
IGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICBy
ZXR1cm4gdGhpcy5jYWNoZWRGZXRjaChgL2FwaS9jb21taXRzLyR7cmVwb3NpdG9yeS5pZCgpfS9s
YXRlc3RgLCB7cGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KS50aGVuKChkYXRhKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBjb21taXRzID0gZGF0YVsnY29tbWl0cyddOwogICAgICAgICAgICAgaWYg
KCFjb21taXRzIHx8ICFjb21taXRzLmxlbmd0aCkKQEAgLTEwMyw3ICsxMDMsNyBAQCBjbGFzcyBD
b21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIG9yZGVyVHdv
Q29tbWl0cyhmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoQ29tbWl0TG9nLmhhc09yZGVyaW5nKGZpcnN0Q29tbWl0LCBzZWNvbmRDb21taXQp
KTsKKyAgICAgICAgY29uc29sZUFzc2VydChDb21taXRMb2cuaGFzT3JkZXJpbmcoZmlyc3RDb21t
aXQsIHNlY29uZENvbW1pdCkpOwogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNtYWxsZXIgPSBm
aXJzdENvbW1pdC5oYXNDb21taXRUaW1lKCkgJiYgc2Vjb25kQ29tbWl0Lmhhc0NvbW1pdFRpbWUo
KSA/CiAgICAgICAgICAgICBmaXJzdENvbW1pdC50aW1lKCkgPCBzZWNvbmRDb21taXQudGltZSgp
IDogZmlyc3RDb21taXQub3JkZXIoKSA8IHNlY29uZENvbW1pdC5vcmRlcigpOwogICAgICAgICBy
ZXR1cm4gZmlyc3RDb21taXRTbWFsbGVyID8gW2ZpcnN0Q29tbWl0LCBzZWNvbmRDb21taXRdIDog
W3NlY29uZENvbW1pdCwgZmlyc3RDb21taXRdOwpAQCAtMTQyLDEyICsxNDIsMTIgQEAgY2xhc3Mg
Q29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBvd25lZENv
bW1pdERpZmZlcmVuY2VGb3JPd25lckNvbW1pdHMoLi4uY29tbWl0cykKICAgICB7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGNvbW1pdHMubGVuZ3RoID49IDIpOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KGNvbW1pdHMubGVuZ3RoID49IDIpOwogCiAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0UmVw
b3NpdG9yaWVzID0gbmV3IFNldDsKICAgICAgICAgY29uc3Qgb3duZWRDb21taXRNYXBMaXN0ID0g
Y29tbWl0cy5tYXAoKGNvbW1pdCkgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoY29t
bWl0KTsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdC5fb3duZWRDb21taXRzKTsK
KyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQoY29tbWl0KTsKKyAgICAgICAgICAgIGNvbnNvbGVB
c3NlcnQoY29tbWl0Ll9vd25lZENvbW1pdHMpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRDb21t
aXRNYXAgPSBjb21taXQuX2J1aWxkT3duZWRDb21taXRNYXAoKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgcmVwb3NpdG9yeSBvZiBvd25lZENvbW1pdE1hcC5rZXlzKCkpCiAgICAgICAgICAgICAg
ICAgb3duZWRDb21taXRSZXBvc2l0b3JpZXMuYWRkKHJlcG9zaXRvcnkpOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMK
aW5kZXggMDQyMjllMWUwMGIyOWQ3ODM1Njk4OWY0OTlmMDU4OTVlZDMyZGQzNi4uNzc4ZTNmNDY4
ZDU3NDEyOWY3NzhjMzA0OGYyOGI3ZDM4ZmVhNWQxNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCkBAIC0zOSwx
MCArMzksMTAgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAg
ICAgICAgY29uc3Qgcm9vdEZpbGVzID0gbmV3IFNldDsKICAgICAgICAgZm9yIChjb25zdCBpdGVt
IG9mIG9iamVjdC5yZXZpc2lvbkl0ZW1zKSB7CiAgICAgICAgICAgICBjb25zdCBjb21taXQgPSBp
dGVtLmNvbW1pdDsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9m
IENvbW1pdExvZyk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghaXRlbS5wYXRjaCB8fCBp
dGVtLnBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFpdGVtLnJvb3RGaWxlIHx8IGl0ZW0ucm9vdEZpbGUgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWl0ZW0uY29tbWl0T3duZXIgfHwg
aXRlbS5jb21taXRPd25lciBpbnN0YW5jZW9mIENvbW1pdExvZyk7CisgICAgICAgICAgICBjb25z
b2xlQXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7CisgICAgICAgICAgICBjb25z
b2xlQXNzZXJ0KCFpdGVtLnBhdGNoIHx8IGl0ZW0ucGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOworICAgICAgICAgICAgY29uc29sZUFzc2VydCghaXRlbS5yb290RmlsZSB8fCBpdGVtLnJv
b3RGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGNvbnNvbGVBc3Nl
cnQoIWl0ZW0uY29tbWl0T3duZXIgfHwgaXRlbS5jb21taXRPd25lciBpbnN0YW5jZW9mIENvbW1p
dExvZyk7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gY29tbWl0LnJlcG9zaXRvcnko
KTsKICAgICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcC5zZXQocmVwb3NpdG9y
eSwgY29tbWl0KTsKICAgICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLnNldChy
ZXBvc2l0b3J5LCBpdGVtLnBhdGNoKTsKQEAgLTkyLDggKzkyLDggQEAgY2xhc3MgQ29tbWl0U2V0
IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIGNvbW1pdCA/IGNvbW1p
dC5yZXZpc2lvbigpIDogbnVsbDsKICAgICB9CiAKLSAgICBwYXRjaEZvclJlcG9zaXRvcnkocmVw
b3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRv
cnkpOyB9Ci0gICAgcm9vdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5f
cmVwb3NpdG9yeVRvUm9vdE1hcC5nZXQocmVwb3NpdG9yeSk7IH0KKyAgICBwYXRjaEZvclJlcG9z
aXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuaGFz
KHJlcG9zaXRvcnkpID8gdGhpcy5fcmVwb3NpdG9yeVRvUGF0Y2hNYXAuZ2V0KHJlcG9zaXRvcnkp
IDogbnVsbDsgfQorICAgIHJvb3RGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRo
aXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmhhcyhyZXBvc2l0b3J5KSA/IHRoaXMuX3JlcG9zaXRv
cnlUb1Jvb3RNYXAuZ2V0KHJlcG9zaXRvcnkpIDogbnVsbDsgfQogICAgIHJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlSZXF1aXJl
c0J1aWxkTWFwLmdldChyZXBvc2l0b3J5KSB8fCBmYWxzZTsgfQogCiAgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIHJldHVybiBhIERhdGUgb2JqZWN0LgpAQCAtMTU3LDcgKzE1Nyw3IEBAIGNsYXNz
IENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICBzdGF0aWMgY29udGFp
bnNNdWx0aXBsZUNvbW1pdHNGb3JSZXBvc2l0b3J5KGNvbW1pdFNldHMsIHJlcG9zaXRvcnkpCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChyZXBvc2l0b3J5IGluc3RhbmNlb2YgUmVwb3Np
dG9yeSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9z
aXRvcnkpOwogICAgICAgICBpZiAoY29tbWl0U2V0cy5sZW5ndGggPCAyKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBjb25zdCBmaXJzdENvbW1pdCA9IGNvbW1pdFNldHNbMF0u
Y29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBjbGFz
cyBDb21taXRTZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGNyZWF0
ZU5hbWVXaXRob3V0Q29sbGlzaW9uKG5hbWUsIGV4aXN0aW5nTmFtZVNldCkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGV4aXN0aW5nTmFtZVNldCBpbnN0YW5jZW9mIFNldCk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoZXhpc3RpbmdOYW1lU2V0IGluc3RhbmNlb2YgU2V0KTsKICAgICAg
ICAgaWYgKCFleGlzdGluZ05hbWVTZXQuaGFzKG5hbWUpKQogICAgICAgICAgICAgcmV0dXJuIG5h
bWU7CiAgICAgICAgIGNvbnN0IG5hbWVXaXRoTnVtYmVyTWF0Y2ggPSBuYW1lLm1hdGNoKC8oLis/
KVxzKlwoXHMqKFxkKylccypcKVxzKiQvKTsKQEAgLTIwOCw3ICsyMDgsNyBAQCBjbGFzcyBDb21t
aXRTZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGRpZmYoZmlyc3RD
b21taXRTZXQsIHNlY29uZENvbW1pdFNldCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFmaXJzdENvbW1pdFNldC5lcXVhbHMoc2Vjb25kQ29tbWl0U2V0KSk7CisgICAgICAgIGNvbnNv
bGVBc3NlcnQoIWZpcnN0Q29tbWl0U2V0LmVxdWFscyhzZWNvbmRDb21taXRTZXQpKTsKICAgICAg
ICAgY29uc3QgYWxsUmVwb3NpdG9yaWVzID0gbmV3IFNldChbLi4uZmlyc3RDb21taXRTZXQucmVw
b3NpdG9yaWVzKCksIC4uLnNlY29uZENvbW1pdFNldC5yZXBvc2l0b3JpZXMoKV0pOwogICAgICAg
ICBjb25zdCBzb3J0ZWRSZXBvc2l0b3JpZXMgPSBSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoWy4uLmFsbFJlcG9zaXRvcmllc10pOwogICAgICAgICBjb25zdCBuYW1l
UGFydHMgPSBbXTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBjbGFzcyBDb21taXRTZXQgZXh0ZW5kcyBE
YXRhTW9kZWxPYmplY3QgewogICAgIHN0YXRpYyByZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhj
b21taXRTZXRzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGNvbW1pdFNldHMubWFwKChjb21taXRT
ZXQpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldCBpbnN0YW5jZW9m
IEN1c3RvbUNvbW1pdFNldCB8fCBjb21taXRTZXQgaW5zdGFuY2VvZiBDb21taXRTZXQpOworICAg
ICAgICAgICAgY29uc29sZUFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDdXN0b21Db21taXRT
ZXQgfHwgY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGNvbnN0
IHJldmlzaW9uU2V0ID0ge307CiAgICAgICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIGNv
bW1pdFNldC5yZXBvc2l0b3JpZXMoKSkgewogICAgICAgICAgICAgICAgIGNvbnN0IHBhdGNoRmls
ZSA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSk7CkBAIC0zMjksMTQg
KzMyOSwxNCBAQCBjbGFzcyBDdXN0b21Db21taXRTZXQgewogCiAgICAgc2V0UmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHJlcG9zaXRvcnksIHJldmlzaW9uLCBwYXRjaCA9IG51bGwsIG93bmVyUmV2aXNp
b24gPSBudWxsKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeSBpbnN0
YW5jZW9mIFJlcG9zaXRvcnkpOwotICAgICAgICBjb25zb2xlLmFzc2VydCghcGF0Y2ggfHwgcGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHJlcG9z
aXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKKyAgICAgICAgY29uc29sZUFzc2VydCghcGF0
Y2ggfHwgcGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwogICAgICAgICB0aGlzLl9yZXZp
c2lvbkxpc3RCeVJlcG9zaXRvcnkuc2V0KHJlcG9zaXRvcnksIHtyZXZpc2lvbiwgcGF0Y2gsIG93
bmVyUmV2aXNpb259KTsKICAgICB9CiAKICAgICBlcXVhbHMob3RoZXIpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChvdGhlciBpbnN0YW5jZW9mIEN1c3RvbUNvbW1pdFNldCk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQob3RoZXIgaW5zdGFuY2VvZiBDdXN0b21Db21taXRTZXQpOwogICAg
ICAgICBpZiAodGhpcy5fcmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5LnNpemUgIT0gb3RoZXIuX3Jl
dmlzaW9uTGlzdEJ5UmVwb3NpdG9yeS5zaXplKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CkBAIC0zNzksNyArMzc5LDcgQEAgY2xhc3MgQ3VzdG9tQ29tbWl0U2V0IHsKIAogICAgIGFkZEN1
c3RvbVJvb3QodXBsb2FkZWRGaWxlKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodXBs
b2FkZWRGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCh1cGxvYWRlZEZpbGUgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwogICAgICAgICB0aGlzLl9j
dXN0b21Sb290cy5wdXNoKHVwbG9hZGVkRmlsZSk7CiAgICAgfQogfQpAQCAtMzg4LDcgKzM4OCw3
IEBAIGNsYXNzIEludGVybWVkaWF0ZUNvbW1pdFNldCB7CiAKICAgICBjb25zdHJ1Y3Rvcihjb21t
aXRTZXQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXQgaW5zdGFuY2Vv
ZiBDb21taXRTZXQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdFNldCBpbnN0YW5jZW9m
IENvbW1pdFNldCk7CiAgICAgICAgIHRoaXMuX2NvbW1pdEJ5UmVwb3NpdG9yeSA9IG5ldyBNYXA7
CiAgICAgICAgIHRoaXMuX293bmVyVG9Pd25lZFJlcG9zaXRvcmllcyA9IG5ldyBNYXA7CiAgICAg
ICAgIHRoaXMuX2ZldGNoaW5nUHJvbWlzZUJ5UmVwb3NpdG9yeSA9IG5ldyBNYXA7CkBAIC00MTEs
NyArNDExLDcgQEAgY2xhc3MgSW50ZXJtZWRpYXRlQ29tbWl0U2V0IHsKICAgICBfZmV0Y2hDb21t
aXRMb2dBbmRPd25lZENvbW1pdHMocmVwb3NpdG9yeSwgcmV2aXNpb24pCiAgICAgewogICAgICAg
ICByZXR1cm4gQ29tbWl0TG9nLmZldGNoRm9yU2luZ2xlUmV2aXNpb24ocmVwb3NpdG9yeSwgcmV2
aXNpb24sIHRydWUpLnRoZW4oKGNvbW1pdHMpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGNvbW1pdHMubGVuZ3RoID09PSAxKTsKKyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQoY29t
bWl0cy5sZW5ndGggPT09IDEpOwogICAgICAgICAgICAgY29uc3QgY29tbWl0ID0gY29tbWl0c1sw
XTsKICAgICAgICAgICAgIGlmICghY29tbWl0Lm93bnNDb21taXRzKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbW1pdDsKQEAgLTQzNCw4ICs0MzQsOCBAQCBjbGFzcyBJbnRlcm1lZGlhdGVD
b21taXRTZXQgewogCiAgICAgc2V0Q29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5LCBjb21t
aXQsIG93bmVyQ29tbWl0ID0gbnVsbCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJl
cG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
Y29tbWl0IGluc3RhbmNlb2YgQ29tbWl0TG9nKTsKKyAgICAgICAgY29uc29sZUFzc2VydChyZXBv
c2l0b3J5IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoY29t
bWl0IGluc3RhbmNlb2YgQ29tbWl0TG9nKTsKICAgICAgICAgdGhpcy5fY29tbWl0QnlSZXBvc2l0
b3J5LnNldChyZXBvc2l0b3J5LCBjb21taXQpOwogICAgICAgICBpZiAoIW93bmVyQ29tbWl0KQog
ICAgICAgICAgICAgb3duZXJDb21taXQgPSBjb21taXQub3duZXJDb21taXQoKTsKQEAgLTQ1MCwx
MiArNDUwLDEyIEBAIGNsYXNzIEludGVybWVkaWF0ZUNvbW1pdFNldCB7CiAKICAgICByZW1vdmVD
b21taXRGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChyZXBvc2l0b3J5IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOwogICAgICAgICB0aGlzLl9m
ZXRjaGluZ1Byb21pc2VCeVJlcG9zaXRvcnkuc2V0KHJlcG9zaXRvcnksIG51bGwpOwogICAgICAg
ICBjb25zdCBvd25lckNvbW1pdCA9IHRoaXMub3duZXJDb21taXRGb3JSZXBvc2l0b3J5KHJlcG9z
aXRvcnkpOwogICAgICAgICBpZiAob3duZXJDb21taXQpIHsKICAgICAgICAgICAgIGNvbnN0IHJl
cG9zaXRvcnlTZXQgPSB0aGlzLl9vd25lclRvT3duZWRSZXBvc2l0b3JpZXMuZ2V0KG93bmVyQ29t
bWl0LnJlcG9zaXRvcnkoKSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChyZXBvc2l0b3J5
U2V0LmhhcyhyZXBvc2l0b3J5KSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KHJlcG9zaXRv
cnlTZXQuaGFzKHJlcG9zaXRvcnkpKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlTZXQuZGVsZXRl
KHJlcG9zaXRvcnkpOwogICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX293bmVyVG9Pd25lZFJlcG9z
aXRvcmllcy5oYXMocmVwb3NpdG9yeSkpIHsKICAgICAgICAgICAgIGNvbnN0IG93bmVkUmVwb3Np
dG9yaWVzID0gdGhpcy5fb3duZXJUb093bmVkUmVwb3NpdG9yaWVzLmdldChyZXBvc2l0b3J5KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Rh
dGEtbW9kZWwuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9k
YXRhLW1vZGVsLmpzCmluZGV4IGYxODkyOThhNDdiNDU4ZGNhYjdiN2JhOWYzNTVmZWI5ZjRlYzgw
Y2EuLmU1NmM4MTIwYzIzNDBiYjE0ZTZjMWJmNzY1MTg1ZjQ1NmJjMWIwMDIgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2Rl
bC5qcwpAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBEYXRhTW9kZWxPYmplY3QgewogICAgIHN0YXRp
YyBmaW5kQnlJZChpZCkKICAgICB7CiAgICAgICAgIHZhciBpZE1hcCA9IHRoaXMubmFtZWRTdGF0
aWNNYXAoJ2lkJyk7Ci0gICAgICAgIHJldHVybiBpZE1hcCA/IGlkTWFwW2lkXSA6IG51bGw7Cisg
ICAgICAgIHJldHVybiBpZE1hcCA/IChpZE1hcC5oYXNPd25Qcm9wZXJ0eShpZCkgPyBpZE1hcFtp
ZF0gOiBudWxsKSA6IG51bGw7CiAgICAgfQogCiAgICAgc3RhdGljIGxpc3RGb3JTdGF0aWNNYXAo
bmFtZSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9k
ZWxzL21lYXN1cmVtZW50LXNldC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL21lYXN1cmVtZW50LXNldC5qcwppbmRleCBjMmNkMDE2ZjM2OTJkZGY0YTJlNWYy
Yjk2OTFjN2M5MTNkZTVjOGFhLi5jZmMyMDg2Mjc3ODA2ZGQ4NjNiZDg3MzE0NjY0NmI4YjQzOThl
MjUxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9tZWFzdXJlbWVudC1zZXQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0LmpzCkBAIC0xNDUsNyArMTQ1LDcgQEAgY2xhc3Mg
TWVhc3VyZW1lbnRTZXQgewogICAgICAgICAgICAgdGhpcy5fY2x1c3RlclN0YXJ0ID0gcmVzcG9u
c2VbJ2NsdXN0ZXJTdGFydCddOwogICAgICAgICAgICAgdGhpcy5fY2x1c3RlclNpemUgPSByZXNw
b25zZVsnY2x1c3RlclNpemUnXTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9wcmltYXJ5Q2x1c3RlckVuZFRpbWUpOworICAgICAgICAgICAgY29uc29s
ZUFzc2VydCh0aGlzLl9wcmltYXJ5Q2x1c3RlckVuZFRpbWUpOwogCiAgICAgICAgIHRoaXMuX2Fk
ZEZldGNoZWRDbHVzdGVyKG5ldyBNZWFzdXJlbWVudENsdXN0ZXIocmVzcG9uc2UpKTsKICAgICB9
CkBAIC0xNjQsNyArMTY0LDcgQEAgY2xhc3MgTWVhc3VyZW1lbnRTZXQgewogCiAgICAgaGFzRmV0
Y2hlZFJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHN0YXJ0VGltZSA8IGVuZFRpbWUpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHN0YXJ0VGlt
ZSA8IGVuZFRpbWUpOwogICAgICAgICBsZXQgZm91bmRTdGFydCA9IGZhbHNlOwogICAgICAgICBs
ZXQgcHJldmlvdXNFbmRUaW1lID0gbnVsbDsKICAgICAgICAgZW5kVGltZSA9IE1hdGgubWluKGVu
ZFRpbWUsIHRoaXMuX3ByaW1hcnlDbHVzdGVyRW5kVGltZSk7CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZXRyaWMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZXRyaWMuanMKaW5kZXggYTNlOTM2OTFj
ZDcwNzg0MzdkMzU5ZDVlMDdmNzllNGE3MDhkOGQ2Zi4uYWI5MTc2MmM5ZjA4NWU4NzVmNDkwMDI4
ODU4MjFhZGI5MWFkNWYxOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvbWV0cmljLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL21ldHJpYy5qcwpAQCAtMzEsNyArMzEsNyBAQCBjbGFzcyBNZXRyaWMg
ZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIGFkZFBsYXRmb3JtKHBsYXRmb3JtKQogICAg
IHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocGxhdGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7
CisgICAgICAgIGNvbnNvbGVBc3NlcnQocGxhdGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7CiAg
ICAgICAgIHRoaXMuX3BsYXRmb3Jtcy5wdXNoKHBsYXRmb3JtKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMK
aW5kZXggM2E2ZDU4Y2M0OGJhMzYwZDBjMzlhNDE3NGJlZWU4NWFiZWI4YzYwMy4uOTM2YWEwMDVl
NDhmNDQyMzU4Zjg4MDAwYjFlMjY5NjY5MjgyNjI4ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMKQEAgLTUwLDcgKzUw
LDcgQEAgY2xhc3MgUGxhdGZvcm0gZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIGxhc3RN
b2RpZmllZChtZXRyaWMpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChtZXRyaWMgaW5z
dGFuY2VvZiBNZXRyaWMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KG1ldHJpYyBpbnN0YW5jZW9m
IE1ldHJpYyk7CiAgICAgICAgIHJldHVybiB0aGlzLl9sYXN0TW9kaWZpZWRCeU1ldHJpY1ttZXRy
aWMuaWQoKV07CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcwppbmRleCA5MzE5ODk5ZGRjZjYwMjc1OWQw
MjQ4MDkwMzU5NTdmZTA2M2YxYTRiLi4wMTJmODJjZWRlMzg0OGExNmYxYjg0YmUxMjhlM2IzOWM2
MjIzMjJkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9yZXBvc2l0b3J5LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3JlcG9zaXRvcnkuanMKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgUmVwb3NpdG9y
eSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgIG93bmVkUmVwb3NpdG9yaWVzKCkKICAgICB7
CiAgICAgICAgIGNvbnN0IG93bmVyc2hpcHMgPSB0aGlzLm5hbWVkU3RhdGljTWFwKCdyZXBvc2l0
b3J5T3duZXJzaGlwcycpOwotICAgICAgICByZXR1cm4gb3duZXJzaGlwcyA/IG93bmVyc2hpcHNb
dGhpcy5pZCgpXSA6IG51bGw7CisgICAgICAgIHJldHVybiBvd25lcnNoaXBzID8gKG93bmVyc2hp
cHMuaGFzT3duUHJvcGVydHkodGhpcy5pZCgpKSA/IG93bmVyc2hpcHNbdGhpcy5pZCgpXSA6IG51
bGwpIDogbnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChyZXBvc2l0b3JpZXMpCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIFJlcG9zaXRvcnkg
ZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5uYW1lKCkgPCBiLm5hbWUoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgICAgIHJldHVybiBwYXJzZUludChhLmlkKCkpIC0gcGFyc2VJbnQoYi5pZCgpKTsKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoYi5fYmxhbWVVcmwpIC8vIGEgPiBiCiAgICAgICAgICAgICAgICAg
cmV0dXJuIDE7CiAgICAgICAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwppbmRleCA5N2U4
YmM4ZWUzY2RhOWE2ZjY0MTYyMzUzNGU2N2ZiODAwMzk5ODJiLi5lNzBmYWM2YzlmZjFlMjY4ZjAy
MGNjNDI4ZTdlZTUyMmY5ZWExNWE0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKQEAgLTIwLDcgKzIwLDcgQEAg
Y2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHRoaXMuX2Nv
bXB1dGVSZXF1ZXN0ZWRDb21taXRTZXRzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0
aW9uKFRlc3RHcm91cC5fY29tcHV0ZVJlcXVlc3RlZENvbW1pdFNldHMpOwogICAgICAgICB0aGlz
Ll9yZXF1ZXN0ZWRDb21taXRTZXRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29tbWl0U2V0VG9M
YWJlbCA9IG5ldyBNYXA7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmplY3QucGxhdGZvcm0g
fHwgb2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xl
QXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxh
dGZvcm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9IG9iamVjdC5wbGF0Zm9ybTsKICAgICB9
CiAKQEAgLTI4LDkgKzI4LDkgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAgICAgewogICAgICAgICBzdXBlci51cGRhdGVTaW5nbGV0b24ob2JqZWN0KTsKIAotICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl90YXNrSWQgPT0gb2JqZWN0LnRhc2spOwotICAgICAg
ICBjb25zb2xlLmFzc2VydCgrdGhpcy5fY3JlYXRlZEF0ID09ICtvYmplY3QuY3JlYXRlZEF0KTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcGxhdGZvcm0gPT0gb2JqZWN0LnBsYXRmb3Jt
KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl90YXNrSWQgPT0gb2JqZWN0LnRhc2spOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KCt0aGlzLl9jcmVhdGVkQXQgPT0gK29iamVjdC5jcmVhdGVk
QXQpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0
Zm9ybSk7CiAKICAgICAgICAgdGhpcy5faXNIaWRkZW4gPSBvYmplY3QuaGlkZGVuOwogICAgICAg
ICB0aGlzLl9uZWVkc05vdGlmaWNhdGlvbiA9IG9iamVjdC5uZWVkc05vdGlmaWNhdGlvbjsKQEAg
LTE0Miw3ICsxNDIsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
IAogICAgIGNvbXBhcmVUZXN0UmVzdWx0cyhtZXRyaWMsIGJlZm9yZU1lYXN1cmVtZW50cywgYWZ0
ZXJNZWFzdXJlbWVudHMpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChtZXRyaWMpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KG1ldHJpYyk7CiAgICAgICAgIGNvbnN0IGJlZm9yZVZhbHVl
cyA9IGJlZm9yZU1lYXN1cmVtZW50cy5tYXAoKG1lYXN1cm1lbnQpID0+IG1lYXN1cm1lbnQudmFs
dWUpOwogICAgICAgICBjb25zdCBhZnRlclZhbHVlcyA9IGFmdGVyTWVhc3VyZW1lbnRzLm1hcCgo
bWVhc3VyZW1lbnQpID0+IG1lYXN1cmVtZW50LnZhbHVlKTsKICAgICAgICAgY29uc3QgYmVmb3Jl
TWVhbiA9IFN0YXRpc3RpY3Muc3VtKGJlZm9yZVZhbHVlcykgLyBiZWZvcmVWYWx1ZXMubGVuZ3Ro
OwpAQCAtMTYwLDcgKzE2MCw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmpl
Y3QgewogICAgICAgICAgICAgICAgIHJlc3VsdC5mdWxsTGFiZWxGb3JNZWFuID0gJ1J1bm5pbmcn
OwogICAgICAgICAgICAgICAgIHJlc3VsdC5mdWxsTGFiZWxGb3JJbmRpdmlkdWFsID0gJ1J1bm5p
bmcnOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChyZXN1bHQuY2hhbmdlVHlwZSA9PT0gbnVsbCk7CisgICAgICAgICAgICAgICAgY29uc29sZUFz
c2VydChyZXN1bHQuY2hhbmdlVHlwZSA9PT0gbnVsbCk7CiAgICAgICAgICAgICAgICAgcmVzdWx0
LnN0YXR1cyA9ICdwZW5kaW5nJzsKICAgICAgICAgICAgICAgICByZXN1bHQubGFiZWwgPSAnUGVu
ZGluZyc7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmZ1bGxMYWJlbEZvck1lYW4gPSAnUGVuZGlu
Zyc7CkBAIC0yNDYsNyArMjQ2LDcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9i
amVjdCB7CiAKICAgICBzdGF0aWMgY3JlYXRlV2l0aFRhc2sodGFza05hbWUsIHBsYXRmb3JtLCB0
ZXN0LCBncm91cE5hbWUsIHJlcGV0aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21w
bGV0aW9uKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGgg
PT0gMik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CiAg
ICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29t
bWl0U2V0cyhjb21taXRTZXRzKTsKICAgICAgICAgY29uc3QgcGFyYW1zID0ge3Rhc2tOYW1lLCBu
YW1lOiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCks
IHJlcGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3Rp
ZnlPbkNvbXBsZXRpb259OwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKQEAgLTI1OCw3
ICsyNTgsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAg
IHN0YXRpYyBjcmVhdGVXaXRoQ3VzdG9tQ29uZmlndXJhdGlvbih0YXNrLCBwbGF0Zm9ybSwgdGVz
dCwgZ3JvdXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxl
dGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09
IDIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAg
ICAgICBjb25zdCByZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1p
dFNldHMoY29tbWl0U2V0cyk7CiAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrOiB0YXNrLmlk
KCksIG5hbWU6IGdyb3VwTmFtZSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCksIHRlc3Q6IHRlc3Qu
aWQoKSwgcmVwZXRpdGlvbkNvdW50LCByZXZpc2lvblNldHMsIG5lZWRzTm90aWZpY2F0aW9uOiAh
IW5vdGlmeU9uQ29tcGxldGlvbn07CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHBhcmFtcykudGhlbigoZGF0YSkgPT4gewpAQCAt
MjY4LDcgKzI2OCw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3Qgewog
CiAgICAgc3RhdGljIGNyZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRhc2ssIG5hbWUsIHJlcGV0
aXRpb25Db3VudCwgY29tbWl0U2V0cywgbm90aWZ5T25Db21wbGV0aW9uKQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CisgICAgICAgIGNvbnNv
bGVBc3NlcnQoY29tbWl0U2V0cy5sZW5ndGggPT0gMik7CiAgICAgICAgIGNvbnN0IHJldmlzaW9u
U2V0cyA9IENvbW1pdFNldC5yZXZpc2lvblNldHNGcm9tQ29tbWl0U2V0cyhjb21taXRTZXRzKTsK
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywgewogICAgICAgICAgICAgdGFzazogdGFzay5pZCgpLApkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qcwppbmRl
eCA5Mzg4OWE2YzNhZmY3MmI1NDJlNjM5YjU2YjRjNmQ2MTQ2YzY5ZDZmLi40MjI1N2U2NzllZjlj
YWFiZDAyZTBiZGIyYzc1OGYyMmU2NDNiZGM0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qcwpAQCAtMTEsNyAr
MTEsNyBAQCBjbGFzcyBUaW1lU2VyaWVzIHsKIAogICAgIGFwcGVuZChpdGVtKQogICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQoaXRlbS5zZXJpZXMgPT09IHVuZGVmaW5lZCk7CisgICAgICAg
IGNvbnNvbGVBc3NlcnQoaXRlbS5zZXJpZXMgPT09IHVuZGVmaW5lZCk7CiAgICAgICAgIGl0ZW0u
c2VyaWVzID0gdGhpczsKICAgICAgICAgaXRlbS5zZXJpZXNJbmRleCA9IHRoaXMuX2RhdGEubGVu
Z3RoOwogICAgICAgICB0aGlzLl9kYXRhLnB1c2goaXRlbSk7CkBAIC00Nyw3ICs0Nyw3IEBAIGNs
YXNzIFRpbWVTZXJpZXMgewogCiAgICAgcHJldmlvdXNQb2ludChwb2ludCkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHBvaW50LnNlcmllcyA9PSB0aGlzKTsKKyAgICAgICAgY29uc29s
ZUFzc2VydChwb2ludC5zZXJpZXMgPT0gdGhpcyk7CiAgICAgICAgIGlmICghcG9pbnQuc2VyaWVz
SW5kZXgpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgcmV0dXJuIHRoaXMuX2Rh
dGFbcG9pbnQuc2VyaWVzSW5kZXggLSAxXTsKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgVGltZVNl
cmllcyB7CiAKICAgICBuZXh0UG9pbnQocG9pbnQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChwb2ludC5zZXJpZXMgPT0gdGhpcyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocG9pbnQu
c2VyaWVzID09IHRoaXMpOwogICAgICAgICBpZiAocG9pbnQuc2VyaWVzSW5kZXggKyAxID49IHRo
aXMuX2RhdGEubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVy
biB0aGlzLl9kYXRhW3BvaW50LnNlcmllc0luZGV4ICsgMV07CkBAIC04Nyw4ICs4Nyw4IEBAIGNs
YXNzIFRpbWVTZXJpZXMgewogCiAgICAgdmlld0JldHdlZW5Qb2ludHMoZmlyc3RQb2ludCwgbGFz
dFBvaW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoZmlyc3RQb2ludC5zZXJpZXMg
PT0gdGhpcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxhc3RQb2ludC5zZXJpZXMgPT0gdGhp
cyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoZmlyc3RQb2ludC5zZXJpZXMgPT0gdGhpcyk7Cisg
ICAgICAgIGNvbnNvbGVBc3NlcnQobGFzdFBvaW50LnNlcmllcyA9PSB0aGlzKTsKICAgICAgICAg
cmV0dXJuIG5ldyBUaW1lU2VyaWVzVmlldyh0aGlzLCBmaXJzdFBvaW50LnNlcmllc0luZGV4LCBs
YXN0UG9pbnQuc2VyaWVzSW5kZXggKyAxKTsKICAgICB9CiB9OwpAQCAtOTYsOSArOTYsOSBAQCBj
bGFzcyBUaW1lU2VyaWVzIHsKIGNsYXNzIFRpbWVTZXJpZXNWaWV3IHsKICAgICBjb25zdHJ1Y3Rv
cih0aW1lU2VyaWVzLCBzdGFydGluZ0luZGV4LCBhZnRlckVuZGluZ0luZGV4LCBmaWx0ZXJlZERh
dGEgPSBudWxsKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGltZVNlcmllcyBpbnN0
YW5jZW9mIFRpbWVTZXJpZXMpOwotICAgICAgICBjb25zb2xlLmFzc2VydChzdGFydGluZ0luZGV4
IDw9IGFmdGVyRW5kaW5nSW5kZXgpOwotICAgICAgICBjb25zb2xlLmFzc2VydChhZnRlckVuZGlu
Z0luZGV4IDw9IHRpbWVTZXJpZXMuX2RhdGEubGVuZ3RoKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCh0aW1lU2VyaWVzIGluc3RhbmNlb2YgVGltZVNlcmllcyk7CisgICAgICAgIGNvbnNvbGVBc3Nl
cnQoc3RhcnRpbmdJbmRleCA8PSBhZnRlckVuZGluZ0luZGV4KTsKKyAgICAgICAgY29uc29sZUFz
c2VydChhZnRlckVuZGluZ0luZGV4IDw9IHRpbWVTZXJpZXMuX2RhdGEubGVuZ3RoKTsKICAgICAg
ICAgdGhpcy5fdGltZVNlcmllcyA9IHRpbWVTZXJpZXM7CiAgICAgICAgIHRoaXMuX2RhdGEgPSBm
aWx0ZXJlZERhdGEgfHwgdGltZVNlcmllcy5fZGF0YTsKICAgICAgICAgdGhpcy5fdmFsdWVzID0g
bnVsbDsKQEAgLTIwNiw3ICsyMDYsNyBAQCBjbGFzcyBUaW1lU2VyaWVzVmlldyB7CiAKICAgICBm
aXJzdFBvaW50SW5UaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKQogICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoc3RhcnRUaW1lIDw9IGVuZFRpbWUpOworICAgICAgICBjb25zb2xlQXNz
ZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1lKTsKICAgICAgICAgZm9yIChsZXQgcG9pbnQgb2YgdGhp
cykgewogICAgICAgICAgICAgaWYgKHBvaW50LnRpbWUgPiBlbmRUaW1lKQogICAgICAgICAgICAg
ICAgIHJldHVybiBudWxsOwpAQCAtMjE4LDcgKzIxOCw3IEBAIGNsYXNzIFRpbWVTZXJpZXNWaWV3
IHsKIAogICAgIGxhc3RQb2ludEluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1lKTsKKyAgICAgICAg
Y29uc29sZUFzc2VydChzdGFydFRpbWUgPD0gZW5kVGltZSk7CiAgICAgICAgIGZvciAobGV0IHBv
aW50IG9mIHRoaXMuX3JldmVyc2UoKSkgewogICAgICAgICAgICAgaWYgKHBvaW50LnRpbWUgPCBz
dGFydFRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCmlu
ZGV4IGQ1ZmYzYzQ4YzMyOWY5YjRkNjhlODQyMDMwZDIwYmQyYTg3ZTVhOGQuLjM2MzBmMzU1YWQy
ODIwNWU4ZDJhMjA0ZjJlMGY1OWFlMmI3YTliOGYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCkBAIC0xNCw3
ICsxNCw3IEBAIGNsYXNzIFRyaWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAg
ICAgIGZvciAoY29uc3QgY29uZmlnIG9mIG9iamVjdC5jb25maWd1cmF0aW9ucykgewogICAgICAg
ICAgICAgY29uc3Qga2V5ID0gYCR7Y29uZmlnLnRlc3QuaWQoKX0tJHtjb25maWcucGxhdGZvcm0u
aWQoKX1gOwogICAgICAgICAgICAgdGhpcy5fYWNjZXB0ZWRUZXN0cy5hZGQoY29uZmlnLnRlc3Qp
OwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIShrZXkgaW4gY29uZmlndXJhdGlvbk1hcCkp
OworICAgICAgICAgICAgY29uc29sZUFzc2VydCghKGtleSBpbiBjb25maWd1cmF0aW9uTWFwKSk7
CiAgICAgICAgICAgICBjb25maWd1cmF0aW9uTWFwW2tleV0gPSB0aGlzOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBUcmlnZ2VyYWJsZSBleHRlbmRzIExhYmVsZWRP
YmplY3QgewogCiAgICAgc3RhdGljIHRyaWdnZXJhYmxlUGxhdGZvcm1zRm9yVGVzdHModGVzdHMp
CiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0ZXN0cyBpbnN0YW5jZW9mIEFycmF5KTsK
KyAgICAgICAgY29uc29sZUFzc2VydCh0ZXN0cyBpbnN0YW5jZW9mIEFycmF5KTsKICAgICAgICAg
aWYgKCF0ZXN0cy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgIHJldHVy
biB0aGlzLnNvcnRCeU5hbWUoUGxhdGZvcm0uYWxsKCkuZmlsdGVyKChwbGF0Zm9ybSkgPT4gewpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1w
bGF0Zm9ybXMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FkbWluLXBsYXRmb3Jtcy10ZXN0cy5qcwppbmRleCAxMTJiMDkxNWZmOGY5OTQyNWVlNjg0NjUz
YzI5NTQyYTQ3OTk5YmM0Li4zYmRlZGVjN2I5YzJjMWJmN2Y0YTM5MGM2Yjc4Y2JkYzc3MjMwZTMz
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXBsYXRmb3Jtcy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10ZXN0cy5qcwpAQCAtNDUsMTkgKzQ1LDE5IEBAIGRlc2Ny
aWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJywgJ25hbWUnKTsKICAgICAgICAgfSkudGhlbigocGxh
dGZvcm1zKSA9PiB7CiAgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWlu
IExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUn
XSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRQbGF0Zm9ybXMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRQbGF0Zm9ybXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSdd
LCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERh
dGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdt
ZXJnZScsICdpZCc6IG9sZFBsYXRmb3Jtc1sxXVsnaWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkUGxh
dGZvcm1zWzJdWydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1Bs
YXRmb3JtcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1BsYXRmb3Jtcy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMF0sIG9s
ZFBsYXRmb3Jtc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jt
c1sxXSwgb2xkUGxhdGZvcm1zWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC02OSwxNSArNjksMTUgQEAgZGVzY3JpYmUoIi9hZG1pbi9w
bGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVl
cnlGb3JSdW5zKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBv
bGRUZXN0UnVucyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRl
c3RSdW5zLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
MF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9sZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2Fj
aGUnXSwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0
Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBM
aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1f
Y2FjaGUnXSwgMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5z
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNb
MF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdN
b3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1
bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2Fj
aGUnXSwgMTgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNd
WydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywK
ICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZFRlc3RSdW5zWzFd
WydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1f
aWQnXX0pOwpAQCAtODUsMjAgKzg1LDIwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgbmV3VGVz
dFJ1bnMgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVu
cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydy
dW5faWQnXSwgb2xkVGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChuZXdUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRU
ZXN0UnVuc1sxXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RS
dW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVz
dFJ1bnNbMl1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVu
c1syXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lkJ10sIG9sZFRlc3RS
dW5zWzNdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNb
M11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVz
dFJ1bnNbM11bJ3J1bl9jb25maWcnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
bmV3VGVzdFJ1bnMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVuc1swXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUn
XSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1f
bmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5z
WzJdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1
bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAx
OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9p
ZCddLCBvbGRUZXN0UnVuc1szXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBM
aW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1
bl9zdW1fY2FjaGUnXSwgMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmlnJ10pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTE0LDEzICsxMTQsMTMgQEAgZGVzY3JpYmUoIi9h
ZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVl
cnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydw
bGF0Zm9ybSddXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAg
b2xkQ29uZmlncyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENv
bmZpZ3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBd
WydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAn
YmFzZWxpbmUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0
Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVu
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3MubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSdd
LCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdz
WzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFt
ZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydj
b25maWdfdHlwZSddLCAnY3VycmVudCcpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERh
dGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdt
ZXJnZScsICdpZCc6IG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6
IG9sZENvbmZpZ3NbMV1bJ3BsYXRmb3JtX2lkJ119KTsKQEAgLTEyOCwxMyArMTI4LDEzIEBAIGRl
c2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVw
b3J0c1syXVsncGxhdGZvcm0nXV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IG5ld0NvbmZpZ3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3Q29uZmlnc1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSdd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSdd
LCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsn
Y29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
Q29uZmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJh
bWVSYXRlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnY29uZmln
X3R5cGUnXSwgJ2N1cnJlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdD
b25maWdzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29u
Zmlnc1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAn
RnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sw
XVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3Q29uZmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9y
bSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydtZXRy
aWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
bmV3Q29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwppbmRleCAy
ZmY1M2NiZjg4YWMyNGIwZTkyMTZiMGE3MmU0ZTM3MDkyMjdhODgxLi5iMDhhZjlmZGY5YzZiNDMw
NTAyOTBkYzc1YTIzNDVhNzI2NTFmOGU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVw
b3J0LXRlc3RzLmpzCkBAIC00OCwxMCArNDgsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nl
c3MtcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBzaW1wbGVSZXBvcnRXaXRoUmV2aXNpb25zKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywg
eyduYW1lJzogJ1dlYktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVwb3NpdG9yaWVzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRSZXBzaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXS5vd25lciA9
PSAxID8gcmVwb3NpdG9yaWVzWzFdLmlkIDogcmVwb3NpdG9yaWVzWzBdLmlkOwogICAgICAgICAg
ICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzIxMzIxNCcs
ICdyZXBvc2l0b3J5Jzogd2Via2l0UmVwc2l0b3J5SWR9KTsKICAgICAgICAgfSkudGhlbigocmVz
dWx0KSA9PiB7CkBAIC02NSwyNyArNjUsMjcgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3Mt
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9y
dChzaW1wbGVSZXBvcnRbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0p
OwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRbMV07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRzWzBdWyd0YWcnXSwgMTk4Nik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
c1swXVsndGFnJ10sICcxOTg2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmVwb3J0SWQgPSByZXBvcnRzWzBdWydpZCdd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZyddLCAxOTg2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcn
XSwgJzE5ODYnKTsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMg
U0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxkcycp
OwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT05XaXRoU3RhdHVzKGAvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JHtyZXBv
cnRJZH1gKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIu
c2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRzWzBdWyd0YWcnXSwgMTk4Nik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRzWzBdWyd0YWcnXSwgJzE5ODYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTk1LDEwICs5NSwxMCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9y
dFswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBv
cnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3QgPSByZXBv
cnRzWzBdOwogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBTRVQg
cmVwb3J0X2J1aWxkID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewpAQCAtMTA2LDE0ICsxMDYsMTQgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nl
c3MtcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigo
cmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBuZXdQb3J0ID0gcmVwb3J0c1swXTsKICAgICAgICAgICAgIG9yaWdp
bmFsUmVwcm90Wydjb21taXR0ZWRfYXQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQb3J0Wydj
b21taXR0ZWRfYXQnXSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3JpZ2lu
YWxSZXByb3RbJ2J1aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0
Lm5vdFN0cmljdEVxdWFsKG9yaWdpbmFsUmVwcm90WydidWlsZCddLCBuZXdQb3J0WydidWlsZCdd
KTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90WydidWlsZCddID0gbnVsbDsKICAgICAgICAg
ICAgIG5ld1BvcnRbJ2J1aWxkJ10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvcmlnaW5hbFJlcHJvdCwgbmV3UG9ydCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKG9yaWdpbmFsUmVwcm90LCBuZXdQb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggODNmYmU1OTdmZTc5YTNh
MWJmODA1MGFjODM3N2JkZDg2NDc0NGU2Ni4uY2RlNWVkZjJiYjFmMjdkNWQzOTcxNWNiMzZhZWY2
MGNiZTUxMmIwOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTEzLDcg
KzEzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAK
ICAgICBpdCgnc2hvdWxkIHJldHVybiAiVHJpZ2dlcmFibGVOb3RGb3VuZCIgd2hlbiB0aGUgZGF0
YWJhc2UgaXMgZW1wdHknLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JykudGhlbigo
Y29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cydd
LCAnVHJpZ2dlcmFibGVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ3N0YXR1cyddLCAnVHJpZ2dlcmFibGVOb3RGb3VuZCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMjEsMTEgKzIxLDExIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVl
c3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
Lmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge25hbWU6ICdidWlsZC13ZWJraXQnfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVu
KChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10sIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhj
b250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMn
LCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMywzNiArMzMs
MzYgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBNb2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWls
ZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1
ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRl
bnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdz
dGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkKSwgNDAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAg
W3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0
OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzE3OTcn
LCBjb21taXRPd25lcjogIjkzMTE2IiwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUs
IHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsxXS5pZCwgNDA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDA0KTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzIwMTcnLCBjb21taXRPd25lcjogIjk2MzM2
IiwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2Nv
bW1pdE93bmVyOiBudWxsLCBpZDogODc4MzIsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246ICcx
MC4xMSAxNUEyODQnLCB0aW1lOiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogOTMxMTYsIHJlcG9z
aXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTogMTQ0NTk0NTgxNjg3OH0pCi0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1p
dE93bmVyOiAnOTMxMTYnLCBpZDogJzE3OTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246
ICdvd25lZC1qc2MtNjE2MScsIHRpbWU6IDE0NTY5NjA3OTUzMDB9KQotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwg
aWQ6IDk2MzM2LCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6IDE0
NDgyMjUzMjU2NTB9KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRzJ11bNF0sIHtjb21taXRPd25lcjogJzk2MzM2JywgaWQ6IDIwMTcsIHJlcG9zaXRvcnk6ICcy
MTMnLCByZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwg
NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XVswXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogJzg3ODMyJywgcmVwb3NpdG9yeTogJzknLCBy
ZXZpc2lvbjogJzEwLjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGws
IGlkOiAnOTMxMTYnLCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6
IDE0NDU5NDU4MTY4Nzh9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRzJ11bMl0sIHtjb21taXRPd25lcjogJzkzMTE2JywgaWQ6ICcxNzk3JywgcmVw
b3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCB0aW1lOiAxNDU2OTYw
Nzk1MzAwfSkKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0cyddWzNdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTYzMzYnLCByZXBvc2l0b3J5OiAn
MTEnLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9KQorICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtjb21taXRP
d25lcjogJzk2MzM2JywgaWQ6ICcyMDE3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAn
b3duZWQtanNjLTkxOTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQp
OwogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdWydjcmVhdGVkQXQnXSA9
IDA7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV1bJ2NyZWF0ZWRBdCdd
ID0gMDsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXVsnY3JlYXRlZEF0
J10gPSAwOwogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdWydjcmVhdGVk
QXQnXSA9IDA7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXSwge2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAn
LCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0
ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdw
ZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGws
IGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6
ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTog
JzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3Rh
dHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxk
OiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdn
ZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxh
dGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQw
MycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxs
LCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAn
LCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIw
MCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRT
ZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVy
bDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcwNCcs
IHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAw
MScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6
ICcwJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0
aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFd
LCB7aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRv
cnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDog
JzkwMCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBz
dGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0
OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVsyXSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEw
MDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUn
LCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6
ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51
bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJp
Z2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBw
bGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAn
NDA0Jywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51
bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNzAsMzAgKzcwLDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhS
b290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycs
ICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5
MDA6IHsKLSAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAg
ICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCBy
ZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVz
KCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2
ZU5hbWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNz
d29yZCcsCkBAIC0xMDEsNTMgKzEwMSw1MyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0
cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkKSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9
XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJl
dmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAx
J31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0K
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4
MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNv
bW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlk
cy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
aWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31d
KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
Lmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAg
ICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0
IGlmIHNhbWUgY29tcGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4gewog
ICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0
cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVz
dHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMo
Y29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRz
JywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29t
bWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQpLCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6
ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0
OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1p
dE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6IG51bGx9XSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkLCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
OCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uaWQpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLmlkKSwgNzA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7NzA4OiB7CiAgICAgICAg
ICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiA3
MDR9fTsKQEAgLTE1OSwyOSArMTU5LDI5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3Rz
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5
cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1p
dHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdj
b21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5pZCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVt
cywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1p
dDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAg
ICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29t
bWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5pZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5Nycs
IGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6ICcxMDEnfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0KSwgNDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNl
dCksIDQwNSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOwogICAgIH0pOwogCiAgICAgaXQoJ3JldXNlIHJvb3RzIGZyb20gZXhpc3Rp
bmcgYnVpbGQgcmVxdWVzdHMgaWYgdGhlIGNvbW1pdHMgc2V0cyBhcmUgZXF1YWwgZXhjZXB0IHRo
ZSBleGlzdGVuY2Ugb2YgY3VzdG9tIHJvb3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTk1LDMyICsx
OTUsMzIgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIF0pOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRz
J11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiBudWxsfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5jdXN0b21Sb290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzEx
NicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUs
IHJvb3RGaWxlOiBudWxsfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5jdXN0b21Sb290cywgWycxMDMnXSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBb
JzEwNCddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7
OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVx
dWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAg
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RS
ZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAg
ICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAg
ICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29y
ZCc6ICdwYXNzd29yZCcsCkBAIC0yMjgsMjcgKzIyOCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVu
dCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkv
YnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLmlkKSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1p
dDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RG
aWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RG
aWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3
ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxz
ZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAx
MDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmN1c3RvbVJvb3RzLCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdj
b21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsn
MTAzJ10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5jdXN0b21Sb290cywgWycxMDQnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAw
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGZhaWwg
cmVxdWVzdCB3aXRoICJDYW5ub3RSZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byByZXVz
ZSBpcyBkZWxldGVkJywgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDMxICsyOTksMzAgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVyeShgQ1JFQVRFIFRSSUdHRVIgZW11bGF0ZV9maWxlX3B1
cmdlIEFGVEVSIFVQREFURSBPRiBjb21taXRzZXRfcm9vdF9maWxlIE9OIGNvbW1pdF9zZXRfaXRl
bXMKICAgICAgICAgICAgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBlbXVsYXRlX2Zp
bGVfcHVyZ2UoKTtgKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQp
LnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0
dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzJdLmlkLCA2MDApOwotCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMs
ICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93
cygnQ2Fubm90UmV1c2VEZWxldGVkUm9vdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsK
ICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zMzcsMjkgKzMzNiwy
OSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLCBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcn
LCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBmYWxz
ZSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgs
IDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lv
bkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5y
ZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRT
ZXQsIDQwMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5
MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNv
bW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs4XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21t
aXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzhdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNv
bnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmlkfX07CisgICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxk
UmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkKX19OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnTm9NYXRjaGluZ0NvbW1pdFNl
dEl0ZW0nLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygn
L2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVO
YW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtMzc0LDMwICszNzMsMzAgQEAgZGVzY3JpYmUoJy9hcGkv
YnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDEsIGNvbW1pdDog
MTExMTY4fSkKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgs
IDYpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0
MDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJl
dmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICcxMTExNjgnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lv
bkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0g
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEw
MCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQw
MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNl
dCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4
XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNv
bW1pdFNldCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQp
LCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzhdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVw
ZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmws
IGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
fX07CisgICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19
OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1c2VSb290V2l0aE5vbk1h
dGNoaW5nQ29tbWl0U2V0cycsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAg
ICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC00MTAsMzAgKzQwOSwzMCBAQCBkZXNj
cmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQg
TW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLCBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGlu
ZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsKICAgICAgICAgY29uc3QgY29u
dGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9h
cGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVp
bGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVk
RmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRl
bXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2
aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9
LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAncnVubmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRT
ZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNv
bW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRh
dGVzID0gezkwMDogewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxk
UmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07Cisg
ICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVy
bDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJl
dXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ2FuT25seVJldXNlQ29tcGxldGVkQnVpbGRSZXF1ZXN0Jywg
KCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVp
bGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdz
eW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAg
LTQ0NSwyNyArNDQ0LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhS
b290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1y
ZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVj
dC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAn
Y29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3Rz
JywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgs
IDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lv
bkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0g
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEw
MCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAw
JywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdj
b21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQp
LCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0g
ezkwMDogewogICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogOTk5fX07CkBAIC00ODEsNTUgKzQ4MCw1NSBAQCBkZXNjcmliZSgnL2Fw
aS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRh
LmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2Fw
aS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVu
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1p
dFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJl
dmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRl
bXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkLCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0u
aWQpLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4
MzIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBv
c2l0b3J5LCAnOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCwgOTMxMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3Np
dG9yeSwgJzExJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cydd
WzJdLnJldmlzaW9uLCAnMTkyNzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
cGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFd
LmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0u
aWQsIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5vcmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIs
IDMpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10udGVzdCwgJzIwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJzkn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0u
cmV2aXNpb24sICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcx
MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsx
XS5yZXZpc2lvbiwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5pZCksIDk2MzM2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJl
dmlzaW9uLCAnMTkyNzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcwMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5vcmRlciksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFd
LnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0ub3JkZXIpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNv
bW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAn
MjAwJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVy
KSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQp
LCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTM3LDU1ICs1MzYsNTUgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0
YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9h
cGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0P3VzZUxlZ2FjeUlkUmVzb2x1dGlvbj10cnVl
Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAn
Y29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwg
NDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMs
CiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1p
dDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVB
Mjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlk
LCA5MzExNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFd
LnJlcG9zaXRvcnksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5
MjczNicpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBw
bGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwg
Wydzb21lIHRlc3QnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICdzb21l
IHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0
LCBbJ3NvbWUgdGVzdCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJ3Nv
bWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRl
c3QsIFsnc29tZSB0ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAn
c29tZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10u
dGVzdCwgWydzb21lIHRlc3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAn
bWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMF0ucmV2aXNpb24sICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRv
cnksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydj
b21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRv
cnksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydj
b21taXRzJ11bMl0ucmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWQpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRm
b3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0ZXN0J10pOwor
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRT
ZXQpLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21l
IHRlc3QnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9y
ZGVyKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50
ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bM10ub3JkZXIpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzNdLnRlc3QsIFsnc29tZSB0ZXN0J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNTk1LDcgKzU5NCw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmlu
ZEJ5SWQoMjAwKTsKICAgICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTYwMyw5NCArNjAyLDk0
IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAg
YXNzZXJ0KHBsYXRmb3JtKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0uaWQoKSwgNzA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzA0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2Yg
Q29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNG
aW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNT
dGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5k
aW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwNSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0u
aWQoKSksIDcwNSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS5vcmRlcigpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5j
b21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWJ1aWxkUmVxdWVzdHNbMV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWJ1aWxkUmVxdWVzdHNbMV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3RzWzFdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3
MDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3Vw
SWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRl
c3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1syXS5vcmRlcigpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkpLCA3MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDkwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCks
IHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10uaWQoKSwgNzA3KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAz
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGlu
c3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1szXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1szXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNb
M10uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoMjEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgp
LCAnSmF2YVNjcmlwdENvcmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2Mu
bmFtZSgpLCAnSmF2YVNjcmlwdENvcmUnKTsKIAogICAgICAgICAgICAgY29uc3QgZmlyc3RDb21t
aXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBmaXJzdENvbW1pdFNldCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNv
bmRDb21taXRTZXQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShq
c2MpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYx
NjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcx
MC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdv
d25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJzE5MjczNicpOwogCiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQgPSBmaXJzdENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KG9zeCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lv
bigpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAg
ICAgICAgICAgY29uc3QgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJL
aXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGlt
ZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kV2ViS2l0Q29t
bWl0ID0gc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5Mjcz
NicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgp
LCAxNDQ4MjI1MzI1NjUwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRX
ZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKIAog
ICAgICAgICAgICAgY29uc3QgZmlyc3RTSkNDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRG
b3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RTSkNDb21t
aXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoK2ZpcnN0U0pDQ29tbWl0LnRpbWUoKSwgMTQ1Njk2MDc5NTMwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02
MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0U0pDQ29tbWl0LnRp
bWUoKSwgMTQ1Njk2MDc5NTMwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFNKQ0NvbW1p
dCA9IHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAx
NDYyMjMwODM3MTAwKQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFNKQ0Nv
bW1pdC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCgrc2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTY5OCw3ICs2OTcsNyBAQCBkZXNjcmliZSgnL2FwaS9idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkVGVz
dEdyb3VwV2l0aE93bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoVGVzdFNlcnZlci5kYXRhYmFzZSgp
KTsKICAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgY29uc3QgYnVpbGRS
ZXF1ZXN0cyA9IGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13
ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKIAog
ICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAgICAgICBhc3NlcnQo
dGVzdCk7CkBAIC03MDgsMzMgKzcwNywzMyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0
cycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSBidWlsZFJl
cXVlc3RzWzBdOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgNzA0
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpLCA5MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVyKCksIDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCA3MDQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCkp
LCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwg
dGVzdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0o
KSwgcGxhdGZvcm0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0Lm9yZGVyKCkpLCAwKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRS
ZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5o
YXNTdGFydGVkKCkpOwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5k
QnlJZCg5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAg
Y29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgY29uc3QganNjID0gUmVwb3Np
dG9yeS5maW5kQnlJZCgyMTMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0ph
dmFTY3JpcHRDb3JlJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAn
SmF2YVNjcmlwdENvcmUnKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMoKS5zb3J0KChvbmUsIGFub3Ro
ZXIpID0+IG9uZS5pZCgpIDwgYW5vdGhlci5pZCgpKSwgW29zeCwgd2Via2l0XSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCks
ICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQt
anNjLTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBh
bm90aGVyKSA9PiBwYXJzZUludChvbmUuaWQoKSkgLSBwYXJzZUludChhbm90aGVyLmlkKCkpKSwg
W29zeCwgd2Via2l0XSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QucmVwb3NpdG9y
eUdyb3VwKCkuYWNjZXB0cyhjb21taXRTZXQpKTsKICAgICB9KTsKIApAQCAtNzQ0LDcgKzc0Myw3
IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hG
b3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVx
dWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAg
ICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTc1Miw3OSArNzUxLDc5IEBAIGRlc2NyaWJlKCcv
YXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBsYXRm
b3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3Jt
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElk
KCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxh
dGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0
ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBs
YXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2VydC5v
ayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50
ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7
CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBpbnN0
YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNb
MV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNb
MV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFd
LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0
Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigp
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxh
dGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVz
dHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10u
aWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRl
c3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkp
LCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10u
dGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAgICAg
IGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0
U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5pc2hl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFydGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5nKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGxldCBvc3gg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5u
YW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1l
KCksICdtYWNPUycpOwogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktp
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJL
aXQnKTsKIAogICAgICAgICAgICAgbGV0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sw
XS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJd
LmNvbW1pdFNldCgpLCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOwogCiAg
ICAgICAgICAgICBsZXQgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNl
dCgpLCBzZWNvbmRDb21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4
KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7CiAKICAgICAgICAgICAgIGxldCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNl
dC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAn
MTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAg
ICAgbGV0IGZpcnN0V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0
LnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RX
ZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0
NTk0NTgxNjg3OCk7CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRXZWJLaXRDb21taXQgPSBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUz
MjU2NTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFdlYktpdENvbW1p
dC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
K3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtODM0LDcgKzgzMyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVl
c3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtODQ0LDcgKzg0Myw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBC
dWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAg
IH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODU0
LDcgKzg1Myw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVl
c3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4o
KGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0u
aGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5o
YXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlz
UGVuZGluZygpKTsKQEAgLTg3Niw3ICs4NzUsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcp
OwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5v
ayhidWlsZFJlcXVlc3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KGJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRpbmcoKSk7CkBAIC04OTksMzIgKzg5OCwzMiBAQCBkZXNj
cmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRl
cigpLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCks
IDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3Jv
dXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0ub3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpLCAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcxMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpLCA3MTIp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQo
KSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzZd
Lm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10u
aWQoKSwgNzEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnRl
c3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1s3XS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMF0ub3JkZXIoKSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFd
Lm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSks
IDMpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1s0XS5pZCgpKSwgNzEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSksIDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
NV0uaWQoKSksIDcxMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCkpLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLmlk
KCkpLCA3MTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwg
NzEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzddLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtOTM3LDMwICs5MzYsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2go
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IFRyaWdnZXJhYmxlLmFsbCgpLmZpbmQoKHRyaWdnZXJhYmxlKSA9PiB0cmlnZ2VyYWJsZS5u
YW1lKCkgPT0gJ2J1aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdn
ZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFt
ZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CiAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91
cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uaWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCAxNzAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91
cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwg
MTcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzZdLmlkKCksIDE3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbNl0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpLCAxNzAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBd
LmlkKCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91
cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlk
KCkpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkpLCAxNzAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91
cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDE3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5p
ZCgpKSwgMTcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1s2XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCAxNzAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91
cCgpLCBncm91cHNbMF0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcxLDMyICs5NzAs
MzIgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRj
aEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRS
ZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCks
IDcxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3Jv
dXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0ub3JkZXIoKSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS5pZCgpLCA3MTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzEyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlkKCksIDcxMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDApOwot
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwg
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQo
KSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVd
Lm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0u
aWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRl
c3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1s2XS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzddLmlkKCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1s3XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3Jv
dXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MTEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQo
KSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5pZCgpKSwgNzEyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2
MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0ub3JkZXIoKSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNd
Lm9yZGVyKCkpLCAzKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9y
ZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzVdLmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigp
KSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1s2XS5pZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
N10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s3XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwMDgsMzYgKzEwMDcsMzYgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ3NsYXZl
UGFzc3dvcmQnOiAncGFzc3dvcmQnLAogICAgICAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRh
dGVzJzogdXBkYXRlcwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLQotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAn
NjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjYW5jZWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVswXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
MV0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydi
dWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5v
cmRlciwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVp
bGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwg
NzAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bM10ub3JkZXIsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1p
dFNldCwgNDAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydi
dWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAn
NjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY2FuY2VsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcpOworCisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRS
ZXF1ZXN0cyddWzFdLmlkKSwgNzAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRT
ZXQpLCA0MDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnRl
c3QsICcyMDAnKTsKKworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzJdLm9yZGVyKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10u
aWQpLCA3MDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJ
bnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5w
bGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCksIDQwMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwog
ICAgICAgICAgICAgfSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ1No
b3VsZCBub3QgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5q
cwppbmRleCAxNTE5MTBiYWViMjU1NjAyNmI5MmYwYTMxYmQxOTA1NjhiZmFiNzEzLi4yODU2OWYw
NjM3MzA0ZTNhNjJjZjc3MDA5MjM5M2Y3ZjBlNzM2NTk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMK
QEAgLTExOSwyMiArMTE5LDIyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogCiAgICAgZnVuY3Rpb24gYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29t
bWl0LCBzdWJtaXR0ZWQpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydyZXZp
c2lvbiddLCBzdWJtaXR0ZWRbJ3JldmlzaW9uJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwobmV3
IERhdGUoY29tbWl0Wyd0aW1lJ10pLnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3Nh
Z2UnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0
dGVkWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0
aG9yRW1haWwnXSwgc3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFsncmV2aXNpb24nXSwgc3VibWl0dGVkWydyZXZpc2lvbidd
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ldyBEYXRlKGNvbW1pdFsndGltZSddKS50
b0lTT1N0cmluZygpLCBzdWJtaXR0ZWRbJ3RpbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRbJ21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0aG9y
J11bJ25hbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvckVt
YWlsJ10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIGlmKHN1Ym1p
dHRlZFsncHJldmlvdXNDb21taXQnXSkgewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFsn
cHJldmlvdXNDb21taXQnXSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOwogICAgICAgICB9
CiAgICAgfQogCiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vJywgKCkg
PT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0
aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQn
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5k
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Niw4ICsxNDYsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
Y29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTE1NSwxOCArMTU1LDE4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNp
b25Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9u
Q29tbWl0cyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9XZWJLaXQvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29t
bWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAzKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3VidmVyc2lvbkNvbW1p
dHNbJ2NvbW1pdHMnXTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1
Ym1pdHRlZChjb21taXRzWzBdLCBzdWJtaXR0ZWRDb21taXRzWzBdKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRzWzFdLCBzdWJtaXR0ZWRD
b21taXRzWzFdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1p
dHRlZChjb21taXRzWzJdLCBzdWJtaXR0ZWRDb21taXRzWzJdKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0c1syXVsncHJldmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMl1bJ3ByZXZp
b3VzQ29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC0xNzQsMTkgKzE3NCwxOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJz
aW9uQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVy
c2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYLycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
cmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21t
aXRzJ107CiAgICAgICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN5c3RlbVZl
cnNpb25Db21taXRzWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHMubGVuZ3RoLCBzdWJtaXR0ZWRDb21taXRzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1b
J3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydy
ZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzRdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0
c1szXVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
M11bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRD
b21taXRzWzFdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1s1XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCBzdWJtaXR0
ZWRDb21taXRzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHNbMF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbidd
LCBzdWJtaXR0ZWRDb21taXRzWzRdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1sz
XVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbM11bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzFdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1s1XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsn
cmV2aXNpb24nXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0x
OTQsNyArMTk0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb2xkZXN0JywgKCkgPT4gewog
ICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBh
cmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0
JykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3Vu
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMDIsOCArMjAyLDggQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEs
ICduYW1lJzogJ1dlYktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVz
dCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtd
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjE0LDggKzIxNCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0L29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVz
dWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVswXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yMjcsOSArMjI3
LDkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzVdWydy
ZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddWzVdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIs
IGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9s
YXRlc3QnLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RG
b3VuZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC9sYXRlc3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
UmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTI0NSw4ICsyNDUsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0
b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0y
NTcsOCArMjU3LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3Rl
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2
ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwpAQCAtMjcwLDkgKzI3MCw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhdGVzdCcpOwog
ICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVy
c2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI4NCwxMyArMjg0LDEzIEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQg
ZGIucXVlcnkoYERFTEVURSBGUk9NIHRlc3RzIFdIRVJFIHRlc3RfbmFtZSA9ICdBLVRlc3QnYCk7
CiAKICAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgncGxh
dGZvcm1zJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RfbWV0cmljcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVz
dF9tZXRyaWNzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0
aCwgMSk7CiAKICAgICAgICAgICAgIGNvbnN0IHRlc3RzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0
ZXN0cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAg
ICAgYXNzZXJ0KHRlc3RfbWV0cmljc1swXS5pZCAhPSB0ZXN0c1swXS5pZCk7CiAKQEAgLTMwMiw3
ICszMDIsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBk
ZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXN0LXJlcG9ydGVkJywgKCkgPT4g
ewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVy
ZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFz
dC1yZXBvcnRlZCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0
b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzE0LDgg
KzMxNCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7
CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0zMjMsOCArMzIzLDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1l
JzogJ1dlYktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0
ZWQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBb
XSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0MCw4ICszNDAsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwpAQCAtMzUzLDkgKzM1Myw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNp
b25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzcyLDMxICszNzIsMzEg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBd
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjcmdG89
MzcwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBj
b25zdCBjb21taXQgPSByZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXQucmV2aXNpb24sICdTaWVycmExNkM2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXQucmV2aXNpb24sICdTaWVycmExNkM2OCcpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzcwJnRv
PTM2NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0yMDAmdG89Mjk5
Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2OSZ0bz00MzInKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdCA9IHJlc3VsdHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5y
ZXZpc2lvbiwgJ1NpZXJyYTE2RDMyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2RDMyJyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3Np
dG9yeT4vPGNvbW1pdD4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9z
aXRvcnlOb3RGb3VuZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8yMTA5NDknKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90
Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTQxNiw3ICs0MTYsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
MjEwOTQ5Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDI4
LDggKzQyOCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NTAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11b
MF0sIHsKICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAg
ICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTUwJywKQEAgLTQ0Nyw4ICs0NDcsOCBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVsxXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00NTgsOCArNDU4
LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAg
ICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJl
bW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OT9wcmVmaXgtbWF0Y2g9ZmFs
c2UnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVk
KHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsK
ICAgICAgICAgfSk7CiAKQEAgLTQ2OCw4ICs0NjgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRz
LyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1
YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAg
ICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9X
ZWJLaXQvMjEwOTQ5P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3Nl
cnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVy
c2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7CiAgICAgICAgIH0pOwogCkBAIC00NzgsNyArNDc4
LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAg
ICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJl
bW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVl
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmlndW91
c1JldmlzaW9uUHJlZml4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ0FtYmlndW91c1JldmlzaW9uUHJlZml4Jyk7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCJzaG91bGQgbm90IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdo
ZW4gdGhlcmUgaXMgYSBjb21taXQgcmV2aXNpb24gZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCBy
ZXZpc2lvbiBwcmVmaXgiLCBhc3luYyAoKSA9PiB7CkBAIC00ODYsOCArNDg2LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGNv
bW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRj
aD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1p
dHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXJbJ2Nv
bW1pdHMnXVswXSk7CiAgICAgICAgIH0pOwogCkBAIC00OTYsNyArNDk2LDcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2
ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvV2ViS2l0LzIxMDkwP3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1p
dCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgic2hvdWxkIG5vdCBtYXRjaCBwcmVmaXgg
YW5kIHJldHVybiAnVW5rb3duQ29tbWl0JyB3aGVuIHN2biBjb21taXQgc3RhcnRzIHdpdGggJ3In
IHByZWZpeCBhbmQgdGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2giLCBhc3luYyAoKSA9PiB7CkBAIC01
MDQsNyArNTA0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9
IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L3IyMTA5NT9wcmVmaXgt
bWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
InNob3VsZCBoYW5kbGUgY29tbWl0IHJldmlzaW9uIHdpdGggc3BhY2UiLCAoKSA9PiB7CkBAIC01
MTUsMTIgKzUxNSwxMiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PUyUyMFgvMTAuMTEuMTAl
MjBTaWVycmExNkM2NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEp
OwogCiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0cy5jb21taXRzWzBdOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQuaWQsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNpb24sICcxMC4xMS4xMCBTaWVycmExNkM2Nycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXQuaWQp
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJldmlzaW9u
LCAnMTAuMTEuMTAgU2llcnJhMTZDNjcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
IApAQCAtNTM4LDEzICs1MzgsMTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1j
b21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAgICAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5z
dGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1p
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29t
bWl0ID0gcmVzdWx0cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
d25lZENvbW1pdC5yZXBvc2l0b3J5LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3duZWRDb21taXQucmV2aXNpb24sICcyMTA5NTAnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3duZWRDb21taXQuaWQsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChvd25lZENvbW1pdC5yZXBvc2l0b3J5KSwgMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG93bmVkQ29tbWl0Lmlk
KSwgMik7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1OCw4ICs1NTgsOCBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249
MTAuMTIlMjAxNkEzMjMnKQogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzLmNvbW1pdHMsIFtdKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU3Myw4ICs1NzMsOCBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvY29tbWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAx
NkEzMjQnKQogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pCiAgICAgfSk7CkBAIC01ODIsNyArNTgyLDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29t
bWl0cy88cmVwb3NpdG9yeT4vP3ByZWNlZGluZ1JldmlzaW9uPTxjb21taXQtMT4mbGFzdFJldmlz
aW9uPTxjb21taXQtMj4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9z
aXRvcnlOb3RGb3VuZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8/ZnJvbT0yMTA5MDAmdG89MjExMDAwJykudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01OTQsNyArNTk0LDcgQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5MDAmbGFzdFJldmlzaW9uPTIx
MTAwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdV
bmtub3duQ29tbWl0Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYwNyw4
ICs2MDcsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1Jldmlz
aW9uPTIxMDk0OSZsYXN0UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2Vb
J2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC02MjEsNyArNjIxLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5NTAmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbW1pdFJhbmdlJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21t
aXRSYW5nZScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MzUsOCArNjM1
LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEw
LjEyJTIwMTZBMzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnY29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3JldmlzaW9uJ10p
LCBbJzEwLjEyIDE2QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21t
aXQpID0+IGNvbW1pdFsncmV2aXNpb24nXSksIFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIy
NjU3J10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NTAsNyArNjUwLDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBd
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEy
JTIwMTZBMzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0
cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NjQsNyArNjY0LDcgQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIw
MTZBMzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzgsOCArNjc4LDggQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZB
MzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAKQEAgLTY5Myw4ICs2OTMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNP
Uy8/cHJlY2VkaW5nUmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIw
MTZCMjY1NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRz
J10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNzA4LDggKzcwOCw4
IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
XSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEw
OTQ4Jmxhc3RSZXZpc2lvbj0yMTA5NTAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJ
c1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgewogICAgICAgICAgICAg
ICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNp
b246ICcyMTA5NDknLApAQCAtNzQzLDggKzc0Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRp
bmdSZXZpc2lvbj0yMTA5NDcmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAg
IGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBz
dWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lv
bkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVz
dHMuanMKaW5kZXggYmRhMjc0ZmIxOTk2ZDQ3YTYxMjE0M2ZjZjUyMmQ2ZDk5NGM0ZWZkOC4uYWM3
MTllOWRjODAxZTJhNjAzZDFkMzM4YTBhZjk2ZTcxNzk2ZjA3MCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVz
dHMuanMKQEAgLTEzLDcgKzEzLDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlv
biAoKSB7CiAKICAgICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdoZW4g
ZGF0YWJhc2UgaXMgZW1wdHkiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChtYW5pZmVzdCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgp
LCBbJ2FsbCcsICdidWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJv
YXJkcycsCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG1h
bmlmZXN0KS5zb3J0KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hi
b2FyZCcsICdkYXNoYm9hcmRzJywKICAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1p
dCcsICdtYXhSb290UmV1c2VBZ2VJbkRheXMnLCAnbWV0cmljcycsICdwbGF0Zm9ybUdyb3Vwcycs
ICdyZXBvc2l0b3JpZXMnLCAnc2l0ZVRpdGxlJywKICAgICAgICAgICAgICAgICAnc3RhdHVzJywg
J3N1bW1hcnlQYWdlcycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0cmln
Z2VyYWJsZXMnXSk7CiAKQEAgLTQ1LDIyICs0NSwyMiBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVz
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ2J1Z190cmFja2VycycsIGJ1Z3ppbGxhRGF0YSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0
Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdV
cmw6ICdodHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEn
LCBidWdVcmw6ICdodHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAgICAg
ICBuZXdCdWdVcmw6ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51
bGx9fSk7CiAKICAgICAgICAgICAgIGxldCBtYW5pZmVzdCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1h
bmlmZXN0KGNvbnRlbnQpOwogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZp
bmRCeUlkKDEpOwogICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8v
YnVncy53ZWJraXQub3JnLycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNr
ZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVn
cy53ZWJraXQub3JnLycpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQg
Y2xlYXIgQnVnIGFuZCBCdWdUcmFja2VyIHN0YXRpYyBtYXBzIHdoZW4gcmVzZXQiLCBhc3luYyAo
KSA9PiB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190
cmFja2VycycsIGJ1Z3ppbGxhRGF0YSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxs
YScsIGJ1Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3pp
bGxhJywgYnVnVXJsOiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAg
ICBuZXdCdWdVcmw6ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51
bGx9fSk7CiAKICAgICAgICAgTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CkBA
IC05MiwyOCArOTIsMjggQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAg
ICAgICAgICAgIGFzc2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQudXJs
Rm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0
dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBsZXQgbWFjb3MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY29zKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAg
IGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChp
b3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CiAKICAgICAgICAg
ICAgIGxldCB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFz
c2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5hbWUoKSwg
J0J1Z3ppbGxhJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5idWdVcmwoMTIz
KSwgJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemls
bGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMp
LCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0XSk7CiAKICAgICAgICAgICAgIHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlk
KDIpOwogICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRyYWNrZXIubmFtZSgpLCAnUmFkYXInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKHRyYWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBt
YWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAn
UmFkYXInKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lKHRyYWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTMxLDE5ICsxMzEsMTkgQEAgZGVzY3JpYmUoJy9hcGkvbWFu
aWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJr
aXQub3JnLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5vd25lZFJlcG9z
aXRvcmllcygpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQub3duZWRSZXBvc2l0b3JpZXMoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwog
ICAgICAgICAgICAgYXNzZXJ0KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5h
bWUoKSwgJ09TIFgnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3N4Lm93bmVkUmVw
b3NpdG9yaWVzKCksIFtSZXBvc2l0b3J5LmZpbmRCeUlkKDM1KV0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdPUyBYJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9yeS5maW5k
QnlJZCgzNSldKTsKIAogICAgICAgICAgICAgbGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
MjIpOwogICAgICAgICAgICAgYXNzZXJ0KGlvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW9zLm5hbWUoKSwgJ2lPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5vd25lZFJl
cG9zaXRvcmllcygpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3Mu
bmFtZSgpLCAnaU9TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm93bmVk
UmVwb3NpdG9yaWVzKCksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU2LDcg
KzE1Niw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRlcnMsIHsKICAg
ICAgICAgICAgICAgICAnMSc6IHtuYW1lOiAnU29tZUJ1aWxkZXInLCBidWlsZFVybDogJ2h0dHBz
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy8kYnVpbGRlck5hbWUvYnVpbGQvJGJ1aWxkVGFn
J30sCiAgICAgICAgICAgICAgICAgJzInOiB7bmFtZTogJ1NvbWVPdGhlckJ1aWxkZXInLCBidWls
ZFVybDogbnVsbH0KICAgICAgICAgICAgIH0pOwpAQCAtMTY1LDEzICsxNjUsMTMgQEAgZGVzY3Jp
YmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCBidWls
ZGVyID0gQnVpbGRlci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZGVyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAnaHR0
cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZUJ1aWxk
ZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1aWxk
KDEyMyksICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxkZXIvYnVp
bGQvMTIzJyk7CiAKICAgICAgICAgICAgIGJ1aWxkZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDIpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkZXIubmFtZSgpLCAnU29tZU90aGVyQnVpbGRlcicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIwMiwxNCArMjAyLDE0IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFu
aWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RzLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnQudGVzdHMsIHsKICAgICAgICAgICAgICAgICAiMSI6IHsibmFtZSI6
ICJTb21lVGVzdCIsICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAg
ICAgICAiMiI6IHsibmFtZSI6ICJTb21lT3RoZXJUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVy
bCI6IG51bGx9LAogICAgICAgICAgICAgICAgICIzIjogeyJuYW1lIjogIkNoaWxkVGVzdCIsICJw
YXJlbnRJZCI6ICIxIiwgInVybCI6IG51bGx9LAogICAgICAgICAgICAgICAgICI0IjogeyJuYW1l
IjogIkdyYW5kQ2hpbGQiLCAicGFyZW50SWQiOiAiMyIsICJ1cmwiOiBudWxsfSwKICAgICAgICAg
ICAgIH0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQubWV0cmljcywg
eworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsK
ICAgICAgICAgICAgICAgICAnNSc6IHtuYW1lOiAnVGltZScsIHRlc3Q6ICcxJywgYWdncmVnYXRv
cjogbnVsbH0sCiAgICAgICAgICAgICAgICAgJzYnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMics
IGFnZ3JlZ2F0b3I6ICdUb3RhbCd9LAogICAgICAgICAgICAgICAgICc3Jzoge25hbWU6ICdNYWxs
b2MnLCB0ZXN0OiAnMicsIGFnZ3JlZ2F0b3I6ICdUb3RhbCd9LApAQCAtMjQ0LDcgKzI0NCw3IEBA
IGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0KGlvc0dyb3VwKTsKICAgICAgICAgICAgIGFzc2VydChtYWNHcm91cCk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1h
dmVyaWNrcycpOwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVUZXN0
KSk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkp
OwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpAQCAt
MjUzLDkgKzI1Myw5IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdFRpbWUp
KTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RN
YWxsb2MpKTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKGNoaWxkVGVz
dE1ldHJpYykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBt
YWNHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLmdyb3Vw
KCksIG1hY0dyb3VwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5u
YW1lKCksICdpT1MgOSBpUGhvbmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAgICAgICAgICAgICBh
c3NlcnQoaW9zOWlwaG9uZTVzLmhhc1Rlc3Qoc29tZVRlc3QpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghaW9zOWlwaG9uZTVzLmhhc1Rlc3Qoc29tZU90aGVyVGVzdCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFpb3M5aXBob25lNXMuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI2NCw2MyArMjY0LDYz
IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdE1hbGxv
YykpOwogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKGNoaWxkVGVz
dE1ldHJpYykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgp
LCBpb3NHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVz
Lmdyb3VwKCksIGlvc0dyb3VwKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjUGxhdGZvcm1zID0g
bWFjR3JvdXAucGxhdGZvcm1zKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZv
cm1zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zWzBd
LCBtYXZlcmlja3MpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jt
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1BsYXRmb3Jt
c1swXSwgbWF2ZXJpY2tzKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zUGxhdGZvcm1zID0gaW9z
R3JvdXAucGxhdGZvcm1zKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBp
b3M5aXBob25lNXMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jt
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvc1BsYXRmb3Jt
c1swXSwgaW9zOWlwaG9uZTVzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0
Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3Qu
cGFyZW50VGVzdCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRl
c3QucGF0aCgpLCBbc29tZVRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lVGVzdC5uYW1lKCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNvbWVUZXN0LnBhcmVudFRlc3QoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNvbWVUZXN0LnBhdGgoKSwgW3NvbWVUZXN0XSk7CiAgICAgICAgICAgICBh
c3NlcnQoIXNvbWVUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVUZXN0
TWV0cmljXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5uYW1l
KCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMuYWdn
cmVnYXRvck5hbWUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RN
ZXRyaWMubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29t
ZVRlc3RNZXRyaWMuY2hpbGRNZXRyaWNzKCksIGNoaWxkVGVzdC5tZXRyaWNzKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmZ1bGxOYW1lKCksICdTb21lVGVzdCA6
IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgp
LCAnU29tZU90aGVyVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRl
c3QucGFyZW50VGVzdCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc29t
ZU90aGVyVGVzdC5wYXRoKCksIFtzb21lT3RoZXJUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21l
VGVzdE1ldHJpY10pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RN
ZXRyaWMubmFtZSgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNv
bWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JOYW1lKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmNoaWxkTWV0cmljcygpLCBj
aGlsZFRlc3QubWV0cmljcygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21l
VGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7CisKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRlc3Qn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhcmVudFRl
c3QoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVPdGhl
clRlc3QucGF0aCgpLCBbc29tZU90aGVyVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFzb21l
T3RoZXJUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLm5hbWUoKSwgJ1Rp
bWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsw
XS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZSA6IFRvdGFsJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uY2hpbGRNZXRy
aWNzKCkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0
Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5h
bWUoKSwgJ01hbGxvYycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3Qu
bWV0cmljcygpWzFdLmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2MgOiBU
b3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygp
WzFdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBN
YWxsb2MgOiBUb3RhbCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5h
bWUoKSwgJ0NoaWxkVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5w
YXJlbnRUZXN0KCksIHNvbWVUZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hp
bGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgs
IDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmlj
cygpWzBdLm5hbWUoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5s
YWJlbCgpLCAnVGltZSA6IFRvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uY2hpbGRNZXRyaWNzKCkubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5m
dWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5hbWUoKSwgJ01h
bGxvYycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0
cmljcygpWzFdLmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2Mg
OiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3Qu
bWV0cmljcygpWzFdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1Nv
bWVPdGhlclRlc3QgOiBNYWxsb2MgOiBUb3RhbCcpOworCisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXJlbnRUZXN0KCksIHNvbWVUZXN0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0
LCBjaGlsZFRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghY2hpbGRUZXN0Lm9ubHlDb250YWlu
c1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hpbGRUZXN0
LmNoaWxkVGVzdHMoKSwgW2dyYW5kQ2hpbGRUZXN0XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21lVGVz
dCBcdTIyMEIgQ2hpbGRUZXN0IDogVGltZScpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JhbmRDaGlsZFRlc3QubmFtZSgpLCAnR3JhbmRDaGlsZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNo
aWxkVGVzdCwgZ3JhbmRDaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY2hpbGRUZXN0LmNoaWxkVGVzdHMoKSwgW2dyYW5kQ2hpbGRUZXN0XSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFi
ZWwoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3Qu
bWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IDogVGlt
ZScpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubmFt
ZSgpLCAnR3JhbmRDaGlsZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5k
Q2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxkVGVz
dCwgZ3JhbmRDaGlsZFRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydChncmFuZENoaWxkVGVzdC5v
bmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVzdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxs
TmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRp
bWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3Qu
Y2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRD
aGlsZFRlc3QubWV0cmljcygpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1
bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IFx1MjIwQiBHcmFuZENoaWxkIDog
VGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc0LDU5ICszNzQsNTkgQEAgZGVz
Y3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4g
TWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8x
MjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3NXZWJraXQxID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc1dlYmtpdDEub3duZXJJZCgpLCA5KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc1dlYmtpdDEudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQu
b3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS5uYW1l
KCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChv
c1dlYmtpdDEub3duZXJJZCgpKSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3NXZWJraXQxLnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8x
MjMnKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKIAogICAg
ICAgICAgICAgY29uc3Qgc2hhcmVkID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxNik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2hhcmVkLm5hbWUoKSwgJ1NoYXJlZCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKIAogICAgICAgICAg
ICAgY29uc3Qgc29tZVRlc3QgPSBUZXN0LmZpbmRCeUlkKDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKIAogICAgICAgICAgICAg
Y29uc3Qgc29tZU90aGVyVGVzdCA9IFRlc3QuZmluZEJ5SWQoMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJU
ZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGNoaWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQoMyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGls
ZFRlc3QnKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zOWlwaG9uZTVzID0gUGxhdGZvcm0uZmlu
ZEJ5SWQoMjMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCks
ICdpT1MgOSBpUGhvbmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3M5
aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IG1hdmVyaWNrcyA9IFBsYXRmb3JtLmZpbmRCeUlkKDQ2KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOwog
CiAgICAgICAgICAgICBjb25zdCBzaWVycmEgPSBQbGF0Zm9ybS5maW5kQnlJZCgxMDQpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNpZXJyYS5uYW1lKCksICdUcnVuayBTaWVycmEgTWFjQm9v
a1BybzExLDInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzaWVycmEubmFtZSgp
LCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMyk7CiAKICAgICAgICAgICAgIGNv
bnN0IG1hY29zVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlv
bihzb21lVGVzdCwgbWF2ZXJpY2tzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNvc1Ry
aWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChtYWNvc1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcn
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25m
aWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0
aW9uKGNoaWxkVGVzdCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24o
c29tZU90aGVyVGVzdCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24o
Y2hpbGRUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKIAogICAgICAgICAgICAg
Y29uc3QgaW9zVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlv
bihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9yZycpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1Ry
aWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJs
ZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9yZycpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwg
aW9zOWlwaG9uZTVzKSwgaW9zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgaW9zOWlwaG9u
ZTVzKSwgaW9zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRy
aWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhv
bmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChU
cmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1
cyksIGlvc1RyaWdnZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjVHJpZ2dlcmFibGUg
PSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwgc2llcnJhKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1lKCksICdtYWMtYnVp
bGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1RyaWdn
ZXJhYmxlLm5hbWUoKSwgJ21hYy1idWlsZC53ZWJraXQub3JnJyk7CiAgICAgICAgICAgICBhc3Nl
cnQobWFjVHJpZ2dlcmFibGUuYWNjZXB0ZWRUZXN0cygpLmhhcyhzb21lVGVzdCkpOwogCiAgICAg
ICAgICAgICBjb25zdCBncm91cHMgPSBtYWNUcmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKICAgICAgICAg
ICAgIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoZ3JvdXBzKTsKIAogICAg
ICAgICAgICAgY29uc3QgZW1wdHlDdXN0b21TZXQgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwpAQCAt
NDQ1LDM1ICs0NDUsMzUgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQuc2V0UmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYyMicpOwogICAgICAgICAgICAgY3Vzb21TZXRXaXRoV2Vi
S2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQsICc4NjQ1NicpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQt
cm9vdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZShncm91cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21TZXRX
aXRoT1NYKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2Vw
dHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cHNbMV0uaXNIaWRkZW4oKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmll
cygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdl
YktpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRz
KGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0K
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1z
aGFyZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uaXNIaWRkZW4oKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21S
b290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZShncm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNl
dCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhj
dXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
c1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRT
aGFyZWQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0
cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZShncm91cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhj
dXN0b21TZXRXaXRoT1NYKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0
aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uaXNIaWRk
ZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5h
Y2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpKSwg
W3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
MV0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0
V2l0aE9TWEFuZFdlYktpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZShncm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0
cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhXZWJLaXRBbmRTaGFyZWQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKaW5k
ZXggMzUyYjYxMmY3Njc2MTg1NWU3OGY1MzZiYjNhMTMwODk1NWFjYjFmNC4uMjZhZjNkMzAxYzVk
YTMzNDY2MjE5NDg3YjAzNDc3Y2EyMjRkY2NjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNl
dC10ZXN0cy5qcwpAQCAtMjQzLDEyICsyNDMsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9y
dChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRX
aXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAg
ICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP21ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1
ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnQW1iaWd1b3VzUmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU2LDEy
ICsyNTYsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1l
WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9y
bUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9
YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVl
c3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI2OSwxMiArMjY5LDEyIEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50
YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWEmbWV0cmljPSR7cmVzdWx0
Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRQbGF0Zm9ybScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgyLDEyICsyODIsMTIg
QEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJp
YygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1iYCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJp
YycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRNZXRyaWMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxNyw3ICszMTcs
NyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhg
L2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPTQ2Jm1ldHJpYz01YCkudGhlbigocmVzcG9u
c2UpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwogICAgICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyNiwzMSArMzI2LDMxIEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50
YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAv
YXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmlj
PSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewog
ICAgICAgICAgICAgY29uc3QgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRU
aW1lWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9i
amVjdC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydj
bHVzdGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywKICAgICAgICAgICAg
ICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFwc2VkVGltZScsICdlbmRUaW1lJywgJ2Zvcm1h
dE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRUaW1lJywgJ3N0YXR1cyddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBbCiAgICAg
ICAgICAgICAgICAgJ2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFy
ZVN1bScsICdtYXJrZWRPdXRsaWVyJywKICAgICAgICAgICAgICAgICAncmV2aXNpb25zJywgJ2Nv
bW1pdFRpbWUnLCAnYnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkVGFnJywgJ2J1aWxkZXInXSk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9y
dFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsK
ICAgICAgICAgICAgIGFzc2VydCh0eXBlb2YocmVzcG9uc2VbJ2xhc3RNb2RpZmllZCddKSA9PSAn
bnVtYmVyJywgJ2xhc3RNb2RpZmllZCB0aW1lIHNob3VsZCBiZSBhIG51bWVyaWMnKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhyZXNwb25zZVsnY29uZmlndXJh
dGlvbnMnXSksIFsnY3VycmVudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQnXSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRp
b25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0
aCwgcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3NbMF0ubGVuZ3RoLCByZXNw
b25zZVsnZm9ybWF0TWFwJ10ubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAg
ICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDog
NSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAtMzY3LDcgKzM2Nyw3IEBAIGRlc2NyaWJl
KCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWlu
IExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwpAQCAtMzgzLDIwICszODMsMjAg
QEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgY29uc3QgYnVpbGRlcnMgPSByZXN1bHRbMl07CiAgICAgICAgICAgICBjb25zdCByZXNw
b25zZSA9IHJlc3VsdFszXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1bnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZGVycy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRJZCA9
IHJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBidWlsZElkID0gYnVpbGRzWzBdWydp
ZCddOwogICAgICAgICAgICAgY29uc3QgYnVpbGRlcklkID0gYnVpbGRlcnNbMF1bJ2lkJ107CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3Vy
cmVudCddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
Y29uc3QgbWVhc3VyZW1lbnQgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCdd
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3Jt
YXRNYXAnXS5pbmRleE9mKCdpZCcpXSwgbWVhc3VyZW1lbnRJZCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxk
JyldLCBidWlsZElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNw
b25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFw
J10uaW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWls
ZCcpXSwgYnVpbGRJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWVhc3VyZW1l
bnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00MjgsOCArNDI4LDggQEAgZGVzY3JpYmUoIi9h
cGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmV2
aXNpb25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9ucydd
WydXZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uQnVp
bGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSddKSk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBj
dXJyZW50Um93c1swXSksIHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50
Um93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3Jt
YXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKICAgICAgICAgICAg
ICAgIG1lYW46IDEzLAogICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAg
ICAgICAgICBzdW06IDY1LApAQCAtNDM5LDcgKzQzOSw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IHJl
dmlzaW9uVGltZSwKICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogcmV2aXNpb25CdWlsZFRpbWUs
CiAgICAgICAgICAgICAgICBidWlsZFRhZzogJzEyNCcgfSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwg
eworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zv
cm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAgICAgICAgICAgICAgICBtZWFuOiAzLAog
ICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgIHN1bTog
MTUsCkBAIC00NjYsMTYgKzQ2NiwxNiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVtb3RlLmdl
dEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQu
cGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogCiAgICAgICAgIGNvbnN0
IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0p
LmJ1aWxkVGFnLCAxMjcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25z
ZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgMTI4KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJv
d3NbMF0pLmJ1aWxkVGFnLCAnMTI3Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Zm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmJ1aWxkVGFnLCAn
MTI4Jyk7CiAgICAgICAgIGFzc2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJy
ZW50Um93c1swXSkuY29tbWl0VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAgICAgICAgIGFz
c2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSkuY29tbWl0
VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAKICAgICAgICAgY29uc3QgYmFzZWxpbmVSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChiYXNlbGluZVJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxkVGFn
LCAxMzEpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0
TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsIDEyOSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChiYXNlbGluZVJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0p
LmJ1aWxkVGFnLCAnMTMxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzFdKS5idWlsZFRhZywgJzEyOScp
OwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGJ1aWxkIHRpbWUg
d2hlbiBjb21taXQgdGltZXMgYXJlIG1pc3NpbmciLCAoKSA9PiB7CkBAIC01MjIsOCArNTIyLDgg
QEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1z
ZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJ
ZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVu
dFJvd3NbMF0pLCB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3Mu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJl
c3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBt
ZWFuOiAzLAogICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAg
ICBzdW06IDE1LApAQCAtNTMzLDcgKzUzMyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50
LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6ICtEYXRlLlVU
QygyMDE3LCAwLCAxOSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogK0Rh
dGUuVVRDKDIwMTcsIDAsIDE5LCAxNSwgMjgsIDEpLAogICAgICAgICAgICAgICAgYnVpbGRUYWc6
ICcxMDAxJyB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNl
Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFd
KSwgewogICAgICAgICAgICAgICAgIG1lYW46IDcsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9u
Q291bnQ6IDUsCiAgICAgICAgICAgICAgICAgc3VtOiAzNSwKQEAgLTU2Miw5ICs1NjIsOSBAQCBk
ZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0
aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3Jt
SWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwg
MiwgJ3Nob3VsZCBoYXZlIHR3byBjbHVzdGVycycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0
d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRU
YWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLAogICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5j
aWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoTmV3UmV2aXNpb25bMF1bJ2J1
aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC01ODAsMTAgKzU4MCwxMCBAQCBk
ZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0
aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3Jt
SWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50
J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28g
Y2x1c3RlcnMnKTsKICAgICAgICAgICAgIGxldCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25m
aWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVu
dFJvd3MubGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwg
W3JlcG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWls
ZFRpbWVbMF1bJ2J1aWxkVGFnJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
dXJyZW50Um93cy5sZW5ndGgsIDIsICdzaG91bGQgY29udGFpbiB0d28gZGF0YSBwb2ludHMnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNlLCAn
Y3VycmVudCcpLCBbcmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblswXVsnYnVpbGRUYWcnXSwgcmVw
b3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUYWcnXV0pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtNjAzLDE0ICs2MDMsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1
cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1l
dHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigobmV3UmVzdWx0KSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAke2NhY2hl
UHJlZml4fS5qc29uYCkudGhlbigoY2FjaGVkUmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZp
eH0tJHtjYWNoZWRSZXN1bHRbJ3N0YXJ0VGltZSddfS5qc29uYCk7CiAgICAgICAgICAgICB9KS50
aGVuKChvbGRSZXN1bHQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBvbGRidWlsZFRhZ3Mg
PSBidWlsZFRhZ3Mob2xkUmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGNvbnN0
IG5ld2J1aWxkVGFncyA9IGJ1aWxkVGFncyhuZXdSZXN1bHQsICdjdXJyZW50Jyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0KG9sZGJ1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1c3Rl
ciBzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQobmV3YnVpbGRUYWdzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNo
b3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGgg
LSAyKSwgbmV3YnVpbGRUYWdzLnNsaWNlKDAsIDIpLAorICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGggLSAy
KSwgbmV3YnVpbGRUYWdzLnNsaWNlKDAsIDIpLAogICAgICAgICAgICAgICAgICAgICAnVHdvIGNv
bnNlcWN1dGl2ZSBjbHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC02MjksOSArNjI5LDkgQEAgZGVzY3JpYmUoIi9h
cGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0
IG1hbmlmZXN0ID0gTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ01vdW50YWlu
IExpb24nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTWV0cmljLmFsbCgpLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1ldHJpYy5hbGwoKS5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IG1ldHJpYyA9IE1ldHJpYy5hbGwoKVsw
XTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1l
dHJpYyksIHByaW1hcnlDbHVzdGVyWydsYXN0TW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmltYXJ5
Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtNjczLDEwICs2NzMsMTAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewogICAgIGl0KCJzaG91bGQgYWxsb3cgdG8gcmVwb3J0IGEgYnVp
bGQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdh
aXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVw
b3J0V2l0aEJ1aWxkUmVxdWVzdCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNr
PTUwMCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwg
NCwgMywgMTIsIDUwLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydt
ZWFzdXJlbWVudHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgICAgICBbJzEn
LCAnOScsICcxMC44LjIgMTJDNjAnLCBudWxsLCAwXSwgWycyJywgJzExJywgJzE0MTk3NycsIG51
bGwsIDEzNjAxNDA5MjA5MDBdXSwKICAgICAgICAgICAgIDEsIDEzNjIwNDYzMjMzODgsICcxMjMn
LCAxLCAxLCAnY3VycmVudCddXSk7CiAgICAgfSk7CkBAIC03MTEsMTcgKzcxMSwxNyBAQCBkZXNj
cmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0
IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25z
ZSA9IGF3YWl0IHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3Bv
bnNlKHJlcG9ydFdpdGhDb21taXRzTmVlZHNSb3VuZENvbW1pdFRpbWVBbmRCdWlsZFJlcXVlc3Qp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKICAgICAg
ICAgY29uc3QgcmF3V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVz
KGAvYXBpL2NvbW1pdHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3
V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBdLnRp
bWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFjT1ND
b21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9tYWNP
Uy8xMC44LjIlMjAxMkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21taXQu
Y29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkTWFj
T1NDb21taXRUaW1lKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9hbmFseXNp
c1Rhc2s9NTAwJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMnXSwg
W1sxLCA0LCAzLCAxMiwgNTAsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwgWwogICAgICAgICAgICAgWycx
JywgJzknLCAnMTAuOC4yIDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBb
JzInLCAnMTEnLCAnMTQxOTc3JywgbnVsbCwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lXV0sCiAg
ICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1cnJlbnQnXV0pOwog
ICAgIH0pOwpAQCAtNzU3LDE0ICs3NTcsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIFtyZXBvcnRXaXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lXSk7CiAKICAg
ICAgICAgY29uc3QgcmF3V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3Rh
dHVzKGAvYXBpL2NvbW1pdHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1l
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBd
LnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFj
T1NDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9t
YWNPUy8xMC44LjIlMjAxMkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21t
aXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVk
TWFjT1NDb21taXRUaW1lKTsKIAogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVBs
YXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ0ZyYW1lUmF0ZScpOwogICAgICAgICBj
b25zdCBwcmltYXJ5Q2x1c3RlciA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0k
e3Jlc3VsdC5tZXRyaWNJZH1gKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChwcmltYXJ5Q2x1
c3Rlci5jb25maWd1cmF0aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1cmF0
aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKICAgICAgICAgICAgIFsx
LCAxLCAnMTAuOC4yIDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBbMiwg
MiwgJzE0MTk3NycsIG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAg
ICAgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lLCAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMV1d
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMzI0NzMz
OTYxODhmNjhjNzM5ZDc0OGFiZjhhODZmZWQ0YTQwZmZlMS4uYjRlZTcyNmYzNTUzMDJhYjE4ZDZj
NzM2Y2JiNDBjMzBjNGIxODU5YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMK
QEAgLTc4LDE2ICs3OCwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBp
bnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9y
IHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAgICB9
KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNs
YXZlcyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQpLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xh
dmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3Mp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtOTUsNyArOTUsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8g
d2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZl
Rm9yUmVwb3J0KGVtcHR5UmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVt
cHR5UmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29t
bWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Jl
cG9zaXRvcmllcycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF1bJ25hbWUnXSwgc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdWyduYW1lJ10sIHN1YnZlcnNpb25Db21t
aXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTExNSw3ICsxMTUsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVy
c2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRl
cnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKQEAgLTEyMywxNCArMTIzLDE0
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAgICAg
ICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygp
LCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21l
c3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVy
J10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0
YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0
ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3Nh
Z2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0
dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xMzgsMTAgKzEzOCwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvbkludmFsaWRDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKICAgICAgICAgfSkudGhlbigo
cm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xNDksMzIgKzE0OSwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Ud29Db21taXRzKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRz
JyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRl
cnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5n
dGgsIDIpOwogCiAgICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0Nv
bW1pdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydy
ZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0w
NiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lk
J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3ByZXZpb3VzX2NvbW1p
dCddLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1l
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydh
Y2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3Jl
dmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEz
LTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwg
Y29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1swXVsncHJldmlvdXNfY29tbWl0J10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
bmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydh
Y2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAKICAgICAgICAg
ICAgIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMV07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRh
WydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWyd0aW1l
J10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgcmVw
b3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzFdWydwcmV2aW91c19jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRl
ZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnNbMV1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBy
ZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMV1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwOTo1
NDo1Ni4wJykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1sxXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNb
MV1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ3By
ZXZpb3VzX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXR0ZXJzWzFdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1sxXVsn
YWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTgyLDEwICsxODIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25JbnZhbGlkUHJldmlvdXNDb21t
aXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFByZXZpb3VzQ29tbWl0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRmFp
bGVkVG9GaW5kUHJldmlvdXNDb21taXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMjAwLDE4ICsyMDAsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0g
cmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IHJlc3VsdFsxXTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25h
bWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdl
J10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRl
ZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3Vu
dCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIyOCwyMyArMjI4LDIzIEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29t
bWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAg
Y29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMg
PSByZXN1bHRbMV07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2lkJ10sIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgZmlyc3REYXRhWydtZXNzYWdlJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21t
aXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBd
WyduYW1lJ10sIGZpcnN0RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCBmaXJzdERhdGFbJ2F1dGhvciddWydh
Y2NvdW50J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnaWQnXSwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0
YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBd
Wydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFbJ2F1dGhvciddWydu
YW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2Fj
Y291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU5LDEyICsyNTksMTIgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVj
dEFsbCgnY29tbWl0dGVycycpOwogICAgICAgICB9KS50aGVuKChjb21taXR0ZXJzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgYXV0aG9yWyduYW1lJ10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgYXV0aG9y
WydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBd
WyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTMwMiwxNSArMzAyLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gYWRkU2xhdmVGb3JSZXBvcnQoc2FtZVJlcG9zaXRvcnlOYW1lSW5Pd25lZENvbW1pdEFuZE1h
am9yQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHNhbWVSZXBvc2l0b3J5
TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RS
b3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKICAg
ICAgICAgICAgIGxldCBvc1dlYktpdCA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCB3ZWJr
aXRSZXBvc2l0b3J5ID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9z
V2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0Lm5vdFN0cmljdEVxdWFsKG9zV2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0
b3J5Lm5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRv
cnkub3duZXIsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQzLDcgKzM0Myw3
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lv
bkNvbW1pdFdpdGhPd25lZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93
cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0J30p
LAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAn
SmF2YVNjcmlwdENvcmUgY29tbWl0J30pLApAQCAtMzUxLDU0ICszNTEsNTQgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldl
YktpdCJ9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7
J25hbWUnOiAnSmF2YVNjcmlwdENvcmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29t
bWl0ID0gcmVzdWx0WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1p
dCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4Q29tbWl0LCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
bm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0ID0g
cmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdCwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoanNjQ29tbWl0LCBudWxsKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3Qgb3N4UmVwb3NpdG9yeSA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RT
dHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9y
eSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh3ZWJraXRSZXBv
c2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRS
ZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs1XS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs1XS5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjUmVwb3NpdG9yeSA9IHJlc3VsdFs1XVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5
LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9yeSwg
d2Via2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29tbWl0
LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0
b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXQucmVw
b3NpdG9yeSwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoanNjQ29tbWl0LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9z
aXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnku
b3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5h
bGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1p
dC5pZCwgJ293bmVkJzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVy
Jzogb3N4Q29tbWl0LmlkLCAnb3duZWQnOiBqc2NDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25l
cid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBvc2l0
b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25l
ckNvbW1pdEZvcldlYktpdENvbW1pdCA9IHJlc3VsdFswXVswXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdCA9ICByZXN1bHRbMV1bMF07Ci0gICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQsIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0
LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwog
ICAgICAgICB9KTsKICAgICB9KQogCkBAIC00NDgsNyArNDQ4LDcgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChtdWx0aXBsZVN5c3RlbVZlcnNpb25Db21taXRzV2l0
aE93bmVkQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBtdWx0aXBsZVN5
c3RlbVZlcnNpb25Db21taXRzV2l0aE93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkQzMid9KSwKICAgICAgICAgICAgICAg
ICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkM2Nyd9KSwK
ICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ1dl
YktpdCBDb21taXQnfSksCkBAIC00NTgsNDkgKzQ1OCw0OSBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAiV2ViS2l0In0pLAog
ICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdK
YXZhU2NyaXB0Q29yZSd9KV0pCiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQwID0gcmVz
dWx0WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdDAsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdDAsIG51bGwpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBvc3hDb21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKG9zeENvbW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG9zeENvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRDb21taXQgPSByZXN1bHRbMl1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBqc2NDb21taXQwID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKGpzY0NvbW1pdDAsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFs
KGpzY0NvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NDb21taXQxID0gcmVzdWx0WzRdWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WzVdLmxlbmd0aCwgMSkKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKQogICAgICAgICAgICAgY29uc3Qgb3N4UmVw
b3NpdG9yeSA9IHJlc3VsdFs1XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hS
ZXBvc2l0b3J5LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5
Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hSZXBv
c2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0
b3J5Lm93bmVyLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs2XS5s
ZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzZdLmxlbmd0
aCwgMSkKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRbNl1bMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVw
b3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3Np
dG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbN10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbN10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSBy
ZXN1bHRbN11bMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25l
ciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNj
UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5p
ZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdl
YmtpdFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDAu
cmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjQ29tbWl0MS5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5Lmlk
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnks
IG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRvcnkuaWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9yeSwg
anNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjQ29t
bWl0MS5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hS
ZXBvc2l0b3J5LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxl
Y3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQwLmlkLCAnb3du
ZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21t
aXQxLmlkLCAnb3duZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwK
QEAgLTUwOCwyNSArNTA4LDI1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJv
d3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdDEuaWQsICdvd25lZCc6
IGpzY0NvbW1pdDEuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAgICBk
Yi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5p
ZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdC5sZW5ndGgsIDUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDAg
PSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRG
b3JXZWJLaXRDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVh
bChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1p
dEZvcldlYktpdENvbW1pdDEgPSByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDEsIG51bGwpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAgPSByZXN1bHRbMl1bMF07Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAs
IG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEgPSByZXN1bHRbM11bMF07
Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQxLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpT
Q0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRdLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxlbmd0
aCwgMSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDgsMTggKzU0OCwxOCBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRX
aXRoRW1wdHlPd25lZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lz
dGVtVmVyc2lvbkNvbW1pdFdpdGhFbXB0eU93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNl
KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0
cycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdF9v
d25lcnNoaXBzJywgJ293bmVyJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAg
ICAgICAgICAgICBsZXQgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCByZXBv
c2l0b3JpZXMgPSByZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQgY29tbWl0X293bmVyc2hpcHMg
PSByZXN1bHRbMl07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9yaWVz
WzBdLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXNbMF0ubmFtZSwg
J09TWCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0
aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwg
cmVwb3NpdG9yaWVzWzBdLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3JpZXNbMF0ubmFtZSwgJ09TWCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC01ODcsNyArNTg3LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9y
dChzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0YW1wKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRBbmRPd25lZENvbW1p
dFdpdGhUaW1lc3RhbXApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxk
Tm90Q29udGFpblRpbWVzdGFtcCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcp
OwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpAQCAtNjk5LDExICs2OTksMTEgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBjb25zdCByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICBj
b25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRzJ107Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnRlc3Rh
YmlsaXR5LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxp
dHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBu
dWxsKTsKIAogICAgICAgICByZXR1cm4gY29tbWl0czsKICAgICB9CkBAIC03MTIsNyArNzEyLDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVu
Y3Rpb24gKCkgewogICAgIHsKICAgICAgICAgYXdhaXQgaW5pdGlhbFJlcG9ydENvbW1pdHMoKTsK
ICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgY29tbWl0c1VwZGF0ZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CiAgICAgICAg
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8nKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdFsnY29tbWl0cyddOwogICAgIH0K
QEAgLTcyMCw5ICs3MjAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBp
bnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFdpdGhF
eHBlY3RlZEZhaWx1cmUoY29tbWl0c1VwZGF0ZSwgZXhwZWN0ZWRGYWlsdXJlTmFtZSkKICAgICB7
CiAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBzZXRVcFRlc3RzV2l0aEV4cGVjdGVkU3Rh
dHVzKGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sw
XS50ZXN0YWJpbGl0eSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRl
c3RhYmlsaXR5LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxp
dHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJp
bGl0eSwgbnVsbCk7CiAgICAgfQogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggIk1pc3NpbmdS
ZXZpc2lvbiIgaWYgY29tbWl0IHVwZGF0ZSBkb2VzIG5vdCBoYXZlIGNvbW1pdCByZXZpc2lvbiBz
cGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7CkBAIC03NDYsMzIgKzc0NiwzMiBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAKICAgICAgICAgbGV0IGNvbW1p
dHMgPSBhd2FpdCBkYXRhYmFzZS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3J0ZWQsIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXS5yZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzBdLnJlcG9ydGVkLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHNbMV0ucmVwb3J0ZWQsIHRydWUpOwogCiAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5
KCdVUERBVEUgY29tbWl0cyBTRVQgY29tbWl0X3JlcG9ydGVkPWZhbHNlJyk7CiAgICAgICAgIGxl
dCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKIAogICAgICAgICBjb21taXRzID0gYXdhaXQgZGF0YWJhc2Uuc2Vs
ZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9y
dGVkLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBm
YWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9ydGVkLCBm
YWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJlcG9ydGVkLCBm
YWxzZSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlIGNvbW1p
dHMgbWVzc2FnZSwgdGltZSwgb3JkZXIsIGF1dGhvciBhbmQgcHJldmlvdXMgY29tbWl0IiwgYXN5
bmMgKCkgPT4gewogICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhF
eHBlY3RlZFN0YXR1cyhjb21taXRzVXBkYXRlLCAnT0snKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50
ZXN0YWJpbGl0eSwgJ0JyZWFrcyBidWlsZHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMV0udGVzdGFiaWxpdHksICdDcmFzaGVzIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1swXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzFdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0uYXV0aG9yTmFtZSwgJ0NocmlzIER1bWV6Jyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLmF1dGhvck5hbWUsICdaYWxhbiBCdWp0YXMnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ub3JkZXIsIDIxMDk0OCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzFdLm9yZGVyLCAyMTA5NDkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHNbMV0udGltZSwgMTQ4NDg4NjIzMDY0NSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzFdLnByZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksICdCcmVha3MgYnVpbGRzJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCAnQ3Jhc2hlcyBXZWJL
aXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ2Fu
b3RoZXIgbWVzc2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5t
ZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXRzWzBdLm9yZGVyKSwgMjEwOTQ4KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbW1pdHNbMV0ub3JkZXIpLCAy
MTA5NDkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0
ODg0MzU0NTc3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGltZSwg
MTQ4NDg4NjIzMDY0NSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnBy
ZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCBkOWEyY2VkNjcxODM4MGZhYjll
MGNkNWIwNTcwNDcyMTRiZDEzNGZhLi41YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJm
ZjNmYjY5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC0xMDEsNyArMTAxLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNob3VsZCByZWplY3QgZXJy
b3Igd2hlbiBidWlsZGVyIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxk
VGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCJ9XSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5n
QnVpbGRlck5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTEwOSwxOCArMTA5LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLCAiYnVp
bGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCJ9XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
TWlzc2luZ0J1aWxkVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIsICgp
ID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSku
dGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwg
MCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzQsNTggKzEzNCw1OCBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJldmlzaW9u
cyI6IHt9fV07CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWls
ZGVyTm90Rm91bmQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3By
b2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsK
ICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9ydHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
cnRzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBy
ZWplY3QgcmVwb3J0IHdpdGggIk1pc21hdGNoaW5nQ29tbWl0VGltZSIgaWYgdGltZSBkaWZmZXJl
bmNlIGlzIGxhcmdlciB0aGFuIDEgc2Vjb25kJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2Fp
dCBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9u
c2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbcmVwb3J0V2l0TWlzbWF0Y2hpbmdDb21taXRUaW1lKCldKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0
eVJlcG9ydCgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdN
aXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3By
b2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgfSk7CiAKICAg
ICBpdCgnc2hvdWxkIG5vdCByZWplY3QgcmVwb3J0IGlmIHRoZSBjb21taXQgdGltZSBkaWZmZXJl
bmNlIGlzIHdpdGhpbiAxIHNlY29uZCInLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IGFk
ZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFty
ZXBvcnRXaXRoT25lU2Vjb25kQ29tbWl0VGltZURpZmZlcmVuY2UoKV0pOwotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogCiAgICAgICAgIHJlc3BvbnNl
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W2VtcHR5UmVwb3J0KCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucydd
LCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2Vk
UnVucyddLCAxKTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQgZnJv
bSBhIHZhbGlkIGJ1aWxkZXIiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9y
UmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9y
dCgpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVw
b3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbnRl
bnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpT
T04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAgZGVsZXRlIHN1
Ym1pdHRlZENvbnRlbnRbJ2J1aWxkZXJQYXNzd29yZCddOwogICAgICAgICAgICAgZGVsZXRlIHN1
Ym1pdHRlZENvbnRlbnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVu
dFsndGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwg
c3VibWl0dGVkQ29udGVudCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0
b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTk3LDE4ICsxOTcsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBbcmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nl
c3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAg
ICAgICAgICAgIGRlbGV0ZSByZXBvcnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRl
bGV0ZSByZXBvcnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsn
dGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgcmVw
b3J0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudCwg
cmVwb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxNiwxOSArMjE2LDE5IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlRm9yUmVwb3J0KGVtcHR5U2xhdmVSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W2VtcHR5U2xhdmVSZXBvcnQoKV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQn
XSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9j
ZXNzZWRSdW5zJ10sIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25z
dCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlTbGF2ZVJlcG9ydCgpOwogICAgICAgICAgICAgY29u
c3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKIAog
ICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAg
ICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAg
ZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTIzOCw5ICsyMzgsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycp
OwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09O
LnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRl
ck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CiAgICAgICAgICAgICBhc3Nl
cnQoISgnYnVpbGRlclBhc3N3b3JkJyBpbiBzdG9yZWRDb250ZW50KSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtMjUxLDggKzI1MSw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZF9zbGF2ZXMnKTsKICAg
ICAgICAgfSkudGhlbigoc2xhdmVzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xh
dmVzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzWzBdWyduYW1l
J10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzbGF2ZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzbGF2ZXNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjYyLDggKzI2Miw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZGVycycp
OwogICAgICAgICB9KS50aGVuKChidWlsZGVycykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRl
cnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZGVyc1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydidWls
ZGVyTmFtZSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxMjMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10sICcxMjMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTI4Myw3ICsyODMsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRhZzsKICAgICAg
ICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0
XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9
KTsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1
aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIHdpdGggZGlmZmVyZW50IHZhbHVlcyIsIGFzeW5jICgp
ID0+IHsKQEAgLTI5MSw3ICsyOTEsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJl
cG9ydC5idWlsZE51bWJlciA9ICc0NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOdW1i
ZXJUYWdNaXNtYXRjaCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CiAgICAgfSkKIAogICAgIGl0KCJz
aG91bGQgYWNjZXB0IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBhbmQg
YnVpbGQgdGFnIHdpdGggaWRlbnRpY2FsIHZhbHVlIiwgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDcg
KzI5OSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
Y29uc3QgcmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVtYmVy
ID0gcmVwb3J0LmJ1aWxkVGFnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pCiAKICAg
ICBpdCgic2hvdWxkIGFkZCB0aGUgcGxhdGZvcm0iLCAoKSA9PiB7CkBAIC0zMDgsOCArMzA4LDgg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0
QWxsKCdwbGF0Zm9ybXMnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBM
aW9uJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjcsMTQgKzMyNywxNCBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXBv
c2l0b3JpZXMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0
WzFdOwogICAgICAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0WzJd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1sn
bmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5z
b3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0
c1JlbGF0aW9ucy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29t
bWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29t
bWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
Q29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9u
c1sxXVsnY29tbWl0X2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENv
bW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydp
ZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCdd
LCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKIAogICAgICAgICAg
ICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OwogICAgICAgICAgICAgZm9yIChsZXQgcmVw
b3NpdG9yeSBvZiByZXBvc2l0b3JpZXMpCkBAIC0zNDQsOSArMzQ0LDkgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZm9yIChsZXQgY29tbWl0IG9m
IGNvbW1pdHMpCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3Jl
cG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUydd
WydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3
NycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJv
d1snV2ViS2l0J11bJ3RpbWUnXS50b1N0cmluZygpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwg
JzEwLjguMiAxMkM2MCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3db
J1dlYktpdCddWyd0aW1lJ10udG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgn
MjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtMzYwLDE2ICszNjAsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNl
bGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRSZXBvcnRd
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4o
KGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzgyLDE2ICszODIsMTYgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9y
dChlbXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1
aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7
CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
cy5sZW5ndGgsIDIpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDE1LDE3ICs0MTUsMTcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkQnVpbGRlckZvclJlcG9ydChmaXJzdFJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAg
ICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzbWF0Y2hpbmdDb21taXRSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5nQ29tbWl0UmV2aXNpb24nKTsK
ICAgICAgICAgICAgIGFzc2VydChKU09OLnN0cmluZ2lmeShyZXNwb25zZSkuaW5kZXhPZignMTQx
OTc3JykgPj0gMCk7CiAgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2Up
LmluZGV4T2YoJzE1MDAwMCcpID49IDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNDg3LDggKzQ4Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICBmdW5jdGlvbiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dy
ZWdhdG9ycyhyZXBvcnQpCiAgICAgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdC
dWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVT
dG9yZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICAgICB9
KTsKICAgICB9CkBAIC01MTEsNyArNTExLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdn
cmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0ZXN0
cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0ZXN0cy5tYXAoKHJvdykgPT4geyByZXR1cm4gcm93WyduYW1lJ107IH0pLnNvcnQo
KSwKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdHMubWFwKChyb3cpID0+
IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydDU1Mn
LCAnRE9NJywgJ0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9k
ZXMnLCAnVHJhdmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC01MjYsMTQgKzUyNiwxNCBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNz
W3Jvd1sndGVzdF9uYW1lJ11dID0gbmV3IEFycmF5OwogICAgICAgICAgICAgICAgIHRlc3ROYW1l
VG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1lJ11dLnB1c2goW3Jvd1snbWV0cmljX25hbWUnXSwgcm93
WydhZ2dyZWdhdG9yX25hbWUnXV0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5z
b3J0KCksIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVu
Y2htYXJrJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUn
LCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWydNb2RpZnlOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1sn
VGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9N
ZXRyaWNzWydhcHBsZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBu
dWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0
cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0Fy
aXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydU
aW1lJywgJ0FyaXRobWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRo
bWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRv
TWV0cmljc1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10s
IFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snYXBwbGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9y
ZyddLCBbWydUaW1lJywgbnVsbF1dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU0Miw3
ICs1NDIsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoYFNFTEVDVCAqIEZST00gdGVzdHMs
IHRlc3RfbWV0cmljcywgdGVzdF9jb25maWd1cmF0aW9ucwogICAgICAgICAgICAgV0hFUkUgdGVz
dF9pZCA9IG1ldHJpY190ZXN0IEFORCBtZXRyaWNfaWQgPSBjb25maWdfbWV0cmljCiAgICAgICAg
ICAgICBBTkQgdGVzdF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDJgLCBbdGVzdE5hbWUs
IG1ldHJpY05hbWVdKS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0LnJvd3NbMF07CiAgICAgICAgICAgICB9KTsKICAgICB9CkBAIC01NjUsMjAgKzU2NSwy
MCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAg
ICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MDAsIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZh
bHVlOiA1MTAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MjAsIHJlbGF0aXZlX3RpbWU6IG51
bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGws
IHZhbHVlOiA1MzAsIHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7CiAgICAgICAgICAgICBjb25zdCBz
dW0gPSA1MDAgKyA1MTAgKyA1MjAgKyA1MzA7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICogNTEw
ICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1MDAg
KiA1MDAgKyA1MTAgKiA1MTAgKyA1MjAgKiA1MjAgKyA1MzAgKiA1MzApOwogICAgICAgICAgICAg
cmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0NTUycsICdUaW1lJyk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVz
dWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAg
IHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVlOiAxMDEsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6
IDAsIHZhbHVlOiAxMDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHty
dW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IDAsIHZhbHVlOiAxMDMsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LApAQCAtNjAwLDkgKzYwMCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBzdW0gKz0gdmFsdWU7CiAgICAgICAgICAgICAgICAg
c3F1YXJlU3VtICs9IHZhbHVlICogdmFsdWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJl
U3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNjEzLDE1ICs2MTMsMTUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAgICAg
ICAgICAgIGNvbnN0IHJ1bklkID0gcmVzdWx0LnJ1blsnaWQnXTsKICAgICAgICAgICAgIGNvbnN0
IGV4cGVjdGVkVmFsdWVzID0gWyg1MDAgKyAxMDApIC8gMiwgKDUxMCArIDExMCkgLyAyLCAoNTIw
ICsgMTIwKSAvIDIsICg1MzAgKyAxMzApIC8gMl07Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9y
ZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCByZWxhdGl2ZV90
aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3Vw
OiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAog
ICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVl
OiBleHBlY3RlZFZhbHVlc1syXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAgICAg
ICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFs
dWVzWzNdLCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0g
ZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0g
KyB2YWx1ZTsgfSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hl
J10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChz
dW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5p
dGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydz
dW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZh
bHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC02NDIsMTAgKzY0MiwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUg
KiBleHBlY3RlZFZhbHVlOwogICAgICAgICAgICAgICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNo
KHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6IE1hdGguZmxvb3IoaSAvIDUpLCB2YWx1ZTog
ZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVy
YXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3Vt
IC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1
YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0
ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1
bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1
YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
NzAzLDEwICs3MDMsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOwog
ICAgICAgICAgICAgZXhwZWN0ZWRJdGVyYXRpb25zLnB1c2goe3J1bjogcnVuSWQsIG9yZGVyOiBp
LCBncm91cDogTWF0aC5mbG9vcihpIC8gMiksIHZhbHVlOiBleHBlY3RlZFZhbHVlLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7CiAgICAgICAgIH0KLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJl
c3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNr
aXAgc3VidGVzdHMgd2l0aG91dCBhbnkgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5j
ICgpID0+IHsKQEAgLTczNywyNyArNzM3LDI3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hU
ZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAg
ICAgICAgIGxldCBydW4gPSBiZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6
IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRp
b25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikg
LyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVu
Y2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFs
dWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3Jk
ZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0
ZXJhdGlvbnMubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1
ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVu
LCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgo
MyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3Jk
ZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0pOwogCiAgICAgICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRp
b25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDApOwogICAgICAg
ICBjb25zdCBzcXVhcmVTdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRv
dGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwg
c3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNo
bWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgc3F1YXJlU3VtKTsKIAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0
IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0FTdWJUZXN0JywgJ1RpbWUnKTsKICAg
ICAgICAgcnVuID0gc29tZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzb21lVGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBv
cmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAg
ICAgICAgICAgICB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMiwgcmVsYXRp
dmVfdGltZTogbnVsbH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRl
c3RSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIDMxLjUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
c29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgNjMpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDMxICogMzEgKyAzMiAq
IDMyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnbWVh
bl9jYWNoZSddLCAzMS41KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVz
dWx0LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNv
bWVUZXN0UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7
CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMgbWlzc2luZyB0aGUgbWF0
Y2hpbmcgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAgLTc5Miwy
NyArNzkyLDI3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBydW4gPSBi
ZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1
ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRl
cjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1l
OiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJh
dGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIz
KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChi
ZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2
YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0
aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEp
IC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6
IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNb
Ml0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIs
IHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChi
ZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAxLCB2
YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogCiAgICAg
ICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90YWws
IHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVhcmVTdW0g
PSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFs
ICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNo
bWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJl
U3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21l
YW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1h
cmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsK
IAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJh
dGlvbnNGb3JNZXRyaWMoJ0F1eGlsaWFyeVJlc3VsdCcsICdBbGxvY2F0aW9ucycpOwogICAgICAg
ICBydW4gPSBzb21lVGVzdFJlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgIHtydW4sIG9yZGVy
OiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDMxICsgNDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAog
ICAgICAgICAgICAge3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIgKyA0Miwg
cmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwo
c29tZVRlc3RSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sICgzMSArIDQxICsgMzIgKyA0MikgLyAy
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10s
IDMxICsgNDEgKyAzMiArIDQyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBNYXRoLnBvdygzMSArIDQxLCAyKSArIE1hdGgucG93
KDMyICsgNDIsIDIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQx
ICsgMzIgKyA0Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5y
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygz
MiArIDQyLCAyKSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBhIHJlcG9ydCB3
aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG5vbi1tYXRjaGluZyBhZ2dyZWdhdG9ycyBpbiBh
IHN1YnRlc3QiLCBhc3luYyAoKSA9PiB7CkBAIC04NDgsNyArODQ4LDcgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfX07CiAKICAgICAgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9y
c1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQW1iaWdpb3VzQWdncmVnYXRvcnMpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1
ZUluU3VidGVzdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcpOwogICAgIH0pOwogCiAg
ICAgZnVuY3Rpb24gcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpCkBAIC04OTIsMTYgKzg5Miwx
NiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1
YnRlc3ROYW1lKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgbGV0
IG5ld1JlcG9ydCA9IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKTsKICAgICAgICAgICAgIG5l
d1JlcG9ydC5idWlsZFRhZyA9ICIxMjUiOwogICAgICAgICAgICAgbmV3UmVwb3J0LmJ1aWxkVGlt
ZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtuZXdSZXBvcnRdKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAgfSkudGhlbigodGVzdHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC05MzAsMTcgKzkzMCwxNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygndGVzdDEnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3N1bV9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA5KTsKICAgICAgICAgICAgIHJldHVybiBmZXRj
aFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdzdWl0ZScsICdDb21iaW5lZCcpOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5y
dW47Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUn
XSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NjIsMTMgKzk2MiwxMyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVu
SXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdCcsICdGcmFtZVJhdGUnKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCAxMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDE2ICsgMjUgKyA5KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiAr
IDI1ICsgOSk7CiAKICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAg
ICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA0LCByZWxhdGl2
ZV90aW1lOiAwfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3Vw
OiBudWxsLCB2YWx1ZTogNSwgcmVsYXRpdmVfdGltZTogMTAwfSwKICAgICAgICAgICAgICAgICB7
cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogMywgcmVsYXRpdmVfdGlt
ZTogMjA1fV0pOwpAQCAtMTAwNiw3ICsxMDA2LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRz
VXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9y
dHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScp
OwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENvbmZpZykgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBv
cnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1syXV0pLnRoZW4oKCkgPT4gewpAQCAtMTAyMywxNiAr
MTAyMywxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3Rz
WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHNbMF1dKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1
cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKG9y
aWdpbmFsQ29uZmlnKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRl
c3RzWzFdXSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChjb25maWcpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQob3JpZ2luYWxDb25maWdbJ2Nv
bmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAgICAg
ICAgIGFzc2VydChjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9m
IERhdGUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2Nv
bmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2Rp
ZmllZCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK29yaWdpbmFsQ29u
ZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC0xMDY5LDcgKzEwNjksNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNl
KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVp
bGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJlcXVlc3QpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTEwNzcsMjIgKzEwNzcsMjIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFz
ZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1
aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6ICcxMjMnfSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RSb3dzKCdwbGF0Zm9ybXMnLCB7bmFtZTogJ01vdW50YWluIExpb24nfSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIFthbm90aGVyUmVwb3J0V2l0aFNhbWVCdWlsZFJlcXVlc3RdKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVxdWVzdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvVXBk
YXRlQnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6ICcxMjQnfSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwg
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdwbGF0
Zm9ybXMnLCB7bmFtZTogJ0xpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktdGVzdC1ncm91cHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwppbmRleCBjMDE5YTQyZGIxNzI0MTIxOTMyNTg4MjUwZWI5
MzU5MDExMWQ5NGY5Li4xNjI5ZDRiYjBhZjFmZjRiMmQ2OTNjMWNhNzVkZjcwN2U4MDhiYmNhIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10ZXN0
LWdyb3Vwcy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS10ZXN0LWdyb3Vwcy5qcwpAQCAtMTEsMzkgKzExLDM5IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3Qt
Z3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzL3Jl
YWR5LWZvci1ub3RpZmljYXRpb24nLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgZ2l2ZSBh
biBlbXB0eSBsaXN0IGlmIHRoZXJlIGlzIG5vdCBleGlzdGluZyB0ZXN0IGdyb3VwIGF0IGFsbCcs
IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlm
aWNhdGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0sn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNl
dHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21t
aXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBs
b2FkZWRGaWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBp
bmNsdWRlIGEgdGVzdCBncm91cCB3aXRoICJjYW5jZWxlZCIgc3RhdGUgaW4gYXQgbGVhc3Qgb25l
IGJ1aWxkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0
YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2NvbXBs
ZXRlZCcsICdjb21wbGV0ZWQnLCAnY2FuY2VsZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250
ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3Jv
dXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQu
Y29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9h
ZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0
YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
dGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAg
ICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdyb3VwcyB3aXRoIHBlbmRpbmcgbm90aWZpY2F0
aW9uJywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0Rh
dGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29t
cGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHkt
Zm9yLW5vdGlmaWNhdGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQudGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnQudGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0g
Y29udGVudC50ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5pZCwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAudGFzaywgNTAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBn
cm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24sIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAn
LCc3MDEnLCAnNzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVz
dEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5pZCksIDYwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnRhc2spLCA1
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29t
ZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmhpZGRlbiwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5uZWVkc05vdGlmaWNhdGlvbiwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAn
NzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdy
b3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9
KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGhpZGRlbiB0ZXN0IGdyb3VwJywgYXN5
bmMgKCkgPT4gewpAQCAtNTEsMTIgKzUxLDEyIEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBz
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEo
ZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxl
dGVkJ10pOwogICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNp
c190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX2hpZGRlbiA9IFRSVUUgV0hFUkUgdGVzdGdyb3Vw
X2lkID0gNjAwJyk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmlj
YXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9h
ZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbGlz
dCB0ZXN0IGdyb3VwcyB3aXRob3V0IG5lZWRzIG5vdGlmaWNhdGlvbiBmbGFnJywgYXN5bmMgKCkg
PT4gewpAQCAtNjQsMjQgKzY0LDI0IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0YWJh
c2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10p
OwogICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190ZXN0
X2dyb3VwcyBTRVQgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiA9IEZBTFNFIFdIRVJFIHRl
c3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3It
bm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMs
ICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3Rz
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29t
bWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
bm90IGxpc3QgYSB0ZXN0IGdyb3VwIHRoYXQgaGFzIHNvbWUgaW5jb21wbGV0ZWQgYnVpbGQgcmVx
dWVzdHMnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRh
KGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1bm5p
bmcnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24n
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmls
ZXMsIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOCwxOCArMTM4LDE4IEBAIGRl
c2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdh
aXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRl
ZCcsICdjb21wbGV0ZWQnLCAnZmFpbGVkJywgJ2NvbXBsZXRlZCddLCBmYWxzZSk7CiAgICAgICAg
ICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190
ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdI
RVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVk
LW1vcmUtcmVxdWVzdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
LnRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNv
bnRlbnQudGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
aWQsIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3Jv
dXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50
YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFt
ZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAu
aGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0
cyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcw
MCcsJzcwMScsICc3MDInLCAnNzAzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
ZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3JtKSwg
NjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0
MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGxpc3QgYWxs
IHRlc3QgZ3JvdXBzIG1heSBuZWVkIGFkZGl0aW9uYWwgYnVpbGQgcmVxdWVzdHMnLCBhc3luYyAo
KSA9PiB7CkBAIC0xNTgsMzEgKzE1OCwzMSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5x
dWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25lZWRf
bW9yZV9yZXF1ZXN0cyA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CiAgICAgICAg
ICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNpc190
ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVFIFdI
RVJFIHRlc3Rncm91cF9pZCA9IDYwMScpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9uZWVk
LW1vcmUtcmVxdWVzdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RH
cm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
LnRlc3RHcm91cHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgY29uc3Qgb25lVGVzdEdyb3Vw
ID0gY29udGVudC50ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRl
c3RHcm91cC5pZCwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAu
dGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAubmFtZSwg
J3NvbWUgdGVzdCBncm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91
cC5hdXRob3IsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9uZVRlc3RHcm91cC5pZCksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQob25lVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9uZVRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soIW9uZVRlc3RHcm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKG9uZVRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3Nl
cnQub2sob25lVGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvbmVUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAy
JywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob25lVGVzdEdyb3VwLmNv
bW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAx
JywgJzQwMiddKTsKIAogICAgICAgICAgICAgY29uc3QgYW5vdGhlclRlc3RHcm91cCA9IGNvbnRl
bnQudGVzdEdyb3Vwc1sxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdy
b3VwLmlkLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAu
dGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLm5h
bWUsICdhbm90aGVyIHRlc3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyVGVzdEdyb3VwLmF1dGhvciwgJ3dlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAuaWQpLCA2MDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAudGFzayksIDUwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAn
YW5vdGhlciB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5v
dGhlclRlc3RHcm91cC5hdXRob3IsICd3ZWJraXQnKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YW5vdGhlclRlc3RHcm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFhbm90aGVy
VGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayhhbm90
aGVyVGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcxMCcsJzcxMScsICc3
MTInLCAnNzEzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChhbm90aGVyVGVzdEdy
b3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0p
LCA2NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMyddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRTZXRzLCBb
JzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFi
bGUtdGVzdHMuanMKaW5kZXggZmZmMmFjZjFmYjYzOWFiM2U5OGEyYjFiN2IzZDQwNmRmMWFjYzdl
MS4uYmJmOTMzNjY1MGU1ZWE0MTU3ZGZmYTRkOTYyZWJiOTU5MDQ3ZTk0MCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJh
YmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMzAsMTQgKzMwLDE0IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgn
c2hvdWxkIHJlamVjdCB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZycsICgpID0+IHsKICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIHt9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVO
YW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hl
biB0aGVyZSBhcmUgbm8gc2xhdmVzJywgKCkgPT4gewogICAgICAgICBjb25zdCB1cGRhdGUgPSB7
c2xhdmVOYW1lOiBlbXB0eVVwZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6IGVtcHR5VXBk
YXRlLnNsYXZlUGFzc3dvcmR9OwogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J1NsYXZlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC00OCw3ICs0OCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSB7c2xhdmVOYW1lOiBlbXB0eVVw
ZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6ICdiYWRQYXNzd29yZCd9OwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01OCw3ICs1OCw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MywxMCArNzMsMTAg
QEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAg
fSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04NywxMiArODcsMTIgQEAgZGVzY3JpYmUoJy9hcGkv
dXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc21hbGxVcGRhdGUpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdWyd0ZXN0J10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25z
WzBdWyd0ZXN0J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ3BsYXRmb3Jt
J10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9u
c1swXVsndGVzdCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdWydw
bGF0Zm9ybSddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDgsNyArMTA4LDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH07CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
Q29uZmlndXJhdGlvbkVudHJ5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3VyYXRpb25FbnRyeScpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTM3LDcgKzEzNyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZFJlcG9zaXRvcnlHcm91cHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwcycpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJl
cG9zaXRvcnlHcm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0
b3J5R3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNzMsNyArMTczLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdy
b3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTg1LDcgKzE4NSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlEYXRhJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJlcG9zaXRvcnlEYXRhJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTcsNyAr
MTk3LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRl
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0
b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdEdXBsaWNhdGVSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlUmVwb3NpdG9yeScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjIxLDE4ICsyMjEsMTggQEAgZGVzY3JpYmUoJy9hcGkv
dXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91cCgp
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndGVz
dCcpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJyldKTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJh
dGlvbnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb25maWd1cmF0aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b25maWd1cmF0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10sIE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10s
IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEu
ZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSdd
LCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMjUzLDggKzI1Myw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNd
ID0gaW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVw
b3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0aWFs
Q29uZmlndXJhdGlvbnMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAgICAgIH0pCiAgICAg
fSk7CiAKQEAgLTI3NSw4ICsyNzUsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3Jv
dXBzXSA9IGluaXRpYWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMs
IHJlcG9zaXRvcnlHcm91cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5p
dGlhbENvbmZpZ3VyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQog
ICAgIH0pOwogCkBAIC0yOTAsMTQgKzI5MCwxNCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJp
Z2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygn
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3Jv
dXBzJykpLnRoZW4oKHJlcG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4oKHJl
cG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCAndGhpcyBncm91cCBpcyBhd2Vz
b21lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMg
YXdlc29tZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM5ICszNDQsMzkgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91
cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLmFsbCgpKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdXZWJLaXQn
KTsKICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5h
bWUoJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0u
bmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3Rv
bVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVt
LW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRl
c2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5h
Y2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnko
bWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdz
eXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNj
ZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHkn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRl
c2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBv
c2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gTWFu
aWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5
R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJs
ZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAgICBjb25zdCBt
YWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNj
cmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVz
KCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25s
eScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0
c0N1c3RvbVJvb3RzKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdz
eXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3Vz
dG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1Bh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFj
b3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHkn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFj
b3MpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRh
dGUpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM5NSwyOSArMzk1LDI5IEBAIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9n
cm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycs
ICdyZXBvc2l0b3J5JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3Rl
bS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsn
dHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2Js
ZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmln
Z2VyYWdibGVJZCgpKTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3Jv
dXBzOwogCiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3Np
dG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9i
amVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsn
aWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNC
eUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0
b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0s
IFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNC
eUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0
b3J5SWQoKV0pOwogCiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0
ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2Uu
YWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUn
KSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScp
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3Jl
cG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxHcm91cHMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBz
KTsKIAogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRv
cmllc0J5R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmpl
Y3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11d
LCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3Np
dG9yeUlkKCldKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlH
cm91cFtpbml0aWFsR3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlk
KCldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0
b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCld
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91
cFtpbml0aWFsR3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQzNiwxNyArNDM2LDE3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9n
cm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycs
ICdyZXBvc2l0b3J5JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3Rl
bS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsn
dHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2Js
ZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmln
Z2VyYWdibGVJZCgpKTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5R3Jv
dXBzOwogCiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3Np
dG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9i
amVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsn
aWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNC
eUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0
b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQnXV0s
IFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXNC
eUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0
b3J5SWQoKV0pOwogICAgICAgICAgICAgaW5pdGlhbFJlcG9zaXRvcmllcyA9IHJlcG9zaXRvcmll
czsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwpAQCAt
NDU1LDEzICs0NTUsMTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJh
YmxlJ10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dl
cmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ21hYy1v
bmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSddLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBzWzBdWyd0cmlnZ2Vy
YWJsZSddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMsIGlu
aXRpYWxSZXBvc2l0b3JpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXBvc2l0b3JpZXMsIGluaXRpYWxSZXBvc2l0b3JpZXMpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
dXBsb2FkLXJvb3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwppbmRleCBhOGIxOTFkNzVmYzFjODAxNjZiYTM2
ZTEzNTMzNWIwMTA2MTg4OWY4Li40OTgyZjA5OGJlODE3NjU5NTdmYTE1MjNjYjdmZGFhM2Q2NzA3
NWY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS11cGxvYWQtcm9vdC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwpAQCAtMTIxLDcgKzEyMSw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCdzaG91
bGQgcmVqZWN0IHdoZW4gcm9vdCBmaWxlIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxl
Lm1ha2VUZW1wb3JhcnlGaWxlKCdzb21lLmRhdCcsICdzb21lIGNvbnRlbnQnKS50aGVuKChyb290
RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUpKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTM5LDcgKzEzOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9h
ZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQuc2xhdmVO
YW1lOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1E
YXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
TWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxkZXJOYW1lOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxk
ZXJOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZEJ1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NTksNyArMTU5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8n
LCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRhZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRC
dWlsZFRhZycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDcgKzE3MCw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
cG9ydC5idWlsZE51bWJlciA9ICcxYWJjJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51bWJlcicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51bWJl
cicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTc5LDcgKzE3OSw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVwb3J0
ID0gbWFrZVJlcG9ydChyb290RmlsZSk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICc0
NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0Y2gn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxk
ZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBhY2NlcHQg
aWYgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyBleGlzdHMgd2l0aCBzYW1lIHZhbHVl
JywgYXN5bmMgKCkgPT4gewpAQCAtMTg4LDM5ICsxODgsMzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAg
ICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVu
ZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgY29u
c3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRj
aC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0
IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgIGNvbnN0IHJvb3RGaWxlID0gYXdhaXQgYWRkU2xhdmVBbmRDcmVhdGVSb290Rmls
ZSgpOwogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJl
cXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJl
cG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIGNvbnRpbnVlIHdvcmtpbmcgd2l0aCBidWlsZCBudW1iZXIgaWYgYnVp
bGQgdGFnIGlzIG5vdCBwcmVzZW50JywgYXN5bmMgKCkgPT4gewpAQCAtMjI5LDQwICsyMjksNDAg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBj
b25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBv
c2l0b3J5SWQoKSk7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0IHJvb3RGaWxlID0gYXdhaXQgYWRk
U2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVw
b3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgIGRl
bGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICcxMjMn
OwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91
bGQgcmVqZWN0IHdoZW4gYnVpbGQgdGltZSBpcyBtaXNzaW5nJywgKCkgPT4gewpAQCAtMjcxLDcg
KzI3MSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUaW1lOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJl
cG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGltZScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWls
ZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MSw3ICsyODEsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBv
cnQuYnVpbGRUaW1lID0gJ1dlZCwgMTAgTWF5IDIwMTcgMDM6MDI6MzAgR01UJzsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxv
YWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRp
bWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yOTEsNyAr
MjkxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFJlcXVlc3Q7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywg
cmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZEJ1aWxkUmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAxLDcgKzMwMSw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJlcG9ydC5idWlsZFJlcXVlc3QgPSAnYWJjJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBv
cnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVp
bGRSZXF1ZXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDksNyArMzA5LDcgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkv
dXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSkpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdFR5cGUnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxOSw3ICszMTksNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnJl
cG9zaXRvcnlMaXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjksNyArMzI5LDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9zaXRv
cnlMaXN0ID0gJ2ErYic7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Nyw2NiArMzQ3LDY2IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3Vw
ID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAg
ICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSku
dGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBv
cnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQt
cm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAg
ICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107
CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9u
KHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3Nv
bWUuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWls
ZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAg
ICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0
LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRC
dWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9v
dEZpbGVzKCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxlLm1ha2VUZW1w
b3JhcnlGaWxlKCdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZhU2NyaXB0IENvbnRlbnQg
MCcpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3Qg
cmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFt7b3duZXJS
ZXBvc2l0b3J5V3JvbmdLZXk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0
Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywg
cmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5Rm9yUmVwb3NpdG9yeScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRLZXlGb3JSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00MjQs
NjYgKzQyNCw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7
CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdv
d25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02
MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkx
OTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2Mt
OTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0
ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwg
WydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0g
cmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBs
b2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRl
ZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmls
ZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBs
b2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgp
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91
cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RH
cm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0
R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJv
b3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2Fk
ZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICByZXR1
cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5k
YXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUp
ID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1
aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdDInLCBvd25lZFJlcG9z
aXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9h
cGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC01MDEsNzkgKzUwMSw3OSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlv
biAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFy
ZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJl
ZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFu
ZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkv
dXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCkpKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRl
ZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBs
b2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdE
YXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1
cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29t
ZVVzZXInKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxk
UmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVz
dCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVk
QnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFy
ZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdCwgdXBsb2FkZWRSb290
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJl
ZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
c2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAy
MjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01ODcsNyArNTg3LDcgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJyJhIic7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVw
b3NpdG9yeUxpc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYwMSw4ICs2MDEsOCBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAiQmFkUmVwb3NpdG9yeU5hbWUi
XSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURh
dGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmVwb3NpdG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydy
ZXBvc2l0b3J5TmFtZSddLCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSdd
LCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYxNiw4
ICs2MTYsOCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAibWFjT1MiXSc7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydyZXBv
c2l0b3J5TmFtZSddLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSddLCAnbWFjT1MnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYzNSwzNCArNjM1LDM0IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3VwID0g
Z3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAg
ICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
c2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSkudGhl
bigocm9vdEZpbGUpID0+IHsKQEAgLTY3MCw0NSArNjcwLDQ1IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5
TGlzdCA9ICdbIldlYktpdCIsICJTaGFyZWQiXSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxv
YWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAg
dXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RS
YXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAn
c29tZVVzZXInKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1
aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1
cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBs
b2FkZWRSb290KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCB3ZWJraXRQYXRjaCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkUm9vdCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCB1cGxv
YWRlZFJvb3QpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
c2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAy
MjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MjcsODcgKzcyNyw4NyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7
CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBv
cnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3Vw
bG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVu
c3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRh
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3Nv
bWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZp
bGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAg
ICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91
cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRl
ZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNG
aW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxs
Um9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5
RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNj
cmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5p
ZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFT
Y3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAg
ICAgICAgICAgICBqc2NSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRl
ZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ0phdmFT
Y3JpcHRDb3JlLVJvb3QuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVk
QnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaGFzRmlu
aXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290LCBqc2NSb290XSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwg
anNjUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICB9KTsKICAg
ICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKaW5kZXggYmVkYzU0Nzdk
NTVhNGM3NDdiMjFkNzA5NDg1NTJlMzU3ZjQ2MmE5NC4uMDJlMWQ4OWZjYzFkMjJlYTY4NmFjZWQx
NjAyMjkyMzIxZmRkZDhkMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCkBAIC03
LDE5ICs3LDE4IEBAIGdsb2JhbC5Gb3JtRGF0YSA9IHJlcXVpcmUoJ2Zvcm0tZGF0YScpOwogCiBj
b25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsK
IGNvbnN0IFRlbXBvcmFyeUZpbGUgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZW1wb3JhcnktZmls
ZS5qcycpLlRlbXBvcmFyeUZpbGU7Citjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7CiAK
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7Ci0gICAgdGhpcy50
aW1lb3V0KDUwMDApOwotICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7Ci0KKyAgICBwcmVwYXJlU2Vy
dmVyVGVzdCh0aGlzKTsKICAgICBUZW1wb3JhcnlGaWxlLmluamVjdCgpOwogCiAgICAgaXQoJ3No
b3VsZCByZXR1cm4gIkludmFsaWRBcmd1bWVudHMiIHdoZW4gbmVpdGhlciBwYXRoIG5vciBzaGEy
NTYgcXVlcnkgaXMgc2V0JywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUnKS50aGVuKChjb250ZW50KSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlkQXJn
dW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvJyk7CiAgICAgICAgIH0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0
dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTI3LDcgKzI2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS91cGxvYWRlZC1maWxlLzEnKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTM1LDcgKzM0LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS91cGxvYWRlZC1maWxlL2ZvbycpLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAg
IH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MDQpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNDcsNyArNDYsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3Vw
bG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHt1cGxvYWRlZEZpbGVbJ2lkJ119
YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29u
dGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjgsMTMg
KzY3LDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAK
ICAgICBpdCgnc2hvdWxkIHJldHVybiAiTm90Rm91bmQiIHdoZW4gdGhlIHNwZWNpZmllZCBTSEEy
NTYgaXMgaW52YWxpZCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9YWJjJykudGhlbigoY29u
dGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAn
Tm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0
dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3Vs
ZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZXJlIGlzIG5vIGZpbGUgbWF0Y2hpbmcgdGhlIHNw
ZWNpZmllZCBTSEEyNTYgJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1Nj01MjU2ZWMxOGYxMTYy
NDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1JykudGhl
bigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1
cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04Niw3
ICs4NSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL3VwbG9h
ZGVkLWZpbGUvP3NoYTI1Nj0ke3VwbG9hZGVkRmlsZVsnc2hhMjU2J119YCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9h
ZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlLCByZXNwb25zZVsndXBsb2FkZWRGaWxlJ10pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcsMTEgKzk2LDExIEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxl
J107CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKLSAgICAg
ICAgICAgIHJldHVybiBkYi5jb25uZWN0KCkudGhlbigoKSA9PiBkYi5xdWVyeShgVVBEQVRFIHVw
bG9hZGVkX2ZpbGVzIFNFVCBmaWxlX2RlbGV0ZWRfYXQgPSBub3coKSBhdCB0aW1lIHpvbmUgJ3V0
YydgKSk7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9maWxl
cyBTRVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9JHt1cGxvYWRlZEZpbGVb
J3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTExNywxNiArMTE2LDE2IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJz
ID0gcmVzcG9uc2UuaGVhZGVyczsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhl
YWRlcnMpLmluY2x1ZGVzKCdldGFnJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRl
cnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoaGVhZGVyc1snZXRhZyddLCB1cGxvYWRlZEZpbGVbJ3NoYTI1NiddKTsKIAog
ICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdhY2NlcHQt
cmFuZ2VzJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1yYW5n
ZXMnXSwgJ2J5dGVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1sn
YWNjZXB0LXJhbmdlcyddLCAnYnl0ZXMnKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5r
ZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdjb250ZW50LWRpc3Bvc2l0aW9uJykpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXSwgYGF0dGFjaG1l
bnQ7IGZpbGVuYW1lKj11dGYtOCcnc29tZS5kYXRgKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxl
bmFtZSo9dXRmLTgnJ3NvbWUuZGF0YCk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5
cyhoZWFkZXJzKS5pbmNsdWRlcygnY29udGVudC1sZW5ndGgnKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSwgdXBsb2FkZWRGaWxlWydzaXplJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3Ro
J10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5r
ZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdsYXN0LW1vZGlmaWVkJykpOwogICAgICAgICB9KTsKQEAg
LTE0NCw3ICsxNDMsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgbGFzdE1vZGlmaWVkID0gcmVzcG9uc2UuaGVhZGVyc1snbGFzdC1t
b2RpZmllZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2Vu
ZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVs
bCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddLCBsYXN0TW9kaWZpZWQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9k
aWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw5
ICsxNTUsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0
KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6
IHsnUmFuZ2UnOiAnYnl0ZXM9NS0nfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA1LTExLzEyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnY29udGVu
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUs
IDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1y
YW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE3MCw5ICsxNjksOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2Vu
ZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVs
bCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9NC05J319KTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFk
ZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0
ZXMgNC05LzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VU
ZXh0LCAnIGNvbnRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJz
Wydjb250ZW50LXJhbmdlJ10sICdieXRlcyA0LTkvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICcgY29udGUnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTE4NCw5ICsxODMsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywg
bnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTQnfX0pOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3Bv
bnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdl
J10sICdieXRlcyA4LTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAndGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOC0xMS8xMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3RlbnQnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5OCw5ICsxOTcsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAn
R0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTEwMCd9fSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJz
ID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRl
bnQtcmFuZ2UnXSwgJ2J5dGVzIDAtMTEvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDAtMTEvMTIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQs
ICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsyMDks
NyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaWQgPSByZXNwb25z
ZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdH
RVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz0xMi0nfX0pCi0gICAg
ICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuZXF1YWwoZXJyb3IsIDQxNikpOworICAgICAgICAg
ICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
JyksIChlcnJvcikgPT4gYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MTYpKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTIyMCw3ICsyMTksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRl
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewog
ICAgICAgICAgICAgY29uc3QgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3Qo
YC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczog
eydSYW5nZSc6ICdieXRlcz0yLTEnfX0pCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQu
ZXF1YWwoZXJyb3IsIDQxNikpOworICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCA0MTYpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIzMiwxNSAr
MjMxLDE1IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91
cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VU
ZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1m
aWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6
IHsnUmFuZ2UnOiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1sn
bGFzdC1tb2RpZmllZCddfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAg
ICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5
dGVzIDktMTAvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5y
ZXNwb25zZVRleHQsICdlbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjUyLDE1ICsy
NTEsMTUgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3Vw
bG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRl
eHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZp
bGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICB7aGVhZGVyczog
eydSYW5nZSc6ICdieXRlcyA9IDktMTAnLCAnSWYtUmFuZ2UnOiByZXNwb25zZS5oZWFkZXJzWydl
dGFnJ119fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhl
YWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8x
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dCwgJ2VuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzIsMTMgKzI3MSwxMyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
aWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmls
ZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVz
cG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAs
ICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHsnUmFuZ2UnOiAnYnl0ZXMgPSA5
LTEwJywgJ0lmLVJhbmdlJzogJ2Zvbyd9KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29u
dGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9u
c2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDMs
NyArMzAyLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5kQnl0ZSAtIHN0YXJ0Qnl0ZSArIDE7
IGkrKykgewogICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IHJlc3BvbnNlQnVmZmVyW2ld
OwogICAgICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYnVmZmVyW3N0YXJ0Qnl0ZSArIGld
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBgVGhlIGJ5
dGUgYXQgaW5kZXggJHtpfSBzaG91bGQgYmUgaWRlbnRpY2FsLiBFeHBlY3RlZCAke2V4cGVjdGVk
fSBidXQgZ290ICR7YWN0dWFsfWApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChhY3R1YWwsIGV4cGVjdGVkLCBgVGhlIGJ5dGUgYXQgaW5kZXggJHtpfSBzaG91bGQgYmUgaWRl
bnRpY2FsLiBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKQEAgLTMxNSw4ICszMTQsOCBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7
J1JhbmdlJzogYGJ5dGVzID0gJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX1gfSwgcmVzcG9uc2VIYW5k
bGVyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25z
dCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRl
cnNbJ2NvbnRlbnQtcmFuZ2UnXSwgYGJ5dGVzICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9LyR7Zmls
ZVNpemV9YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250
ZW50LXJhbmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWAp
OwogICAgICAgICAgICAgdmVyaWZ5QnVmZmVyKCk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5q
cwppbmRleCAxNGU5NDU2ZDJlNjdhNWM3MTAwMTIwYjE1NDY0ODBjMjcxNmRlYmY0Li5iMTA3NDlh
MGQxZTkwMzhlMWZiMmU5MTM5MzRhNjNhYTIyNTBkZDVlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1
ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwpAQCAtNzksNyArNzks
NyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2aXNp
b25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQg
ZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0Lm1l
dHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAgIGNvbnN0IHRl
c3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmln
Um93WydpZCddfSk7CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBjb25zdCBjb250
ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRh
c2snLCB7CiAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1sw
XVsnaWQnXSwKQEAgLTE0MCwyMyArMTQwLDIzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
YWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGF3YWl0IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywgeydncm91cCc6IGluc2VydGVk
R3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0IHRl
c3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10s
IHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVl
ZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmluaXRpYWxSZXBl
dGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpLCAyKTsKIAog
ICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVz
dHMnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KTsKIAogICAgICAgICBj
b25zdCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRb
J3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVu
Z3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ucmVwZXRpdGlv
bkNvdW50KCksIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pbml0
aWFsUmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVw
ZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHVwZGF0ZWRHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCkpLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0aXRp
b25Db3VudCgpKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIHRydWUpOwogICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiB1
cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RlZENvbW1pdFNldHMoKSkgewogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0cyA9IHVwZGF0ZWRHcm91cHNbMF0ucmVxdWVzdHNGb3JDb21taXRTZXQo
Y29tbWl0U2V0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDQpOwogICAgICAgICB9CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAog
ICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhy
ZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpKSwgMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChncm91cC5pbml0aWFsUmVwZXRpdGlv
bkNvdW50KCkpLCAyKTsKICAgICAgICAgYXdhaXQgZ3JvdXAudXBkYXRlSGlkZGVuRmxhZyh0cnVl
KTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdEFkZFRvSGlkZGVuVGVzdEdy
b3VwJywgYXN5bmMgKCkgPT4gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1
aWxkLXJlcXVlc3RzJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSkpCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVn
ZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10
ZXN0cy5qcwppbmRleCA5OTZkMmRkMzJkNzZiYTU0NzUzZTYzOWZmOGFmOWIzNTZmMjc5N2Q4Li4w
ZTY4NjFiN2VjNmJlYmU1NTJhNjRkODczZmU1NzY2YjVkMTE3NDJmIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1h
bmFseXNpcy10YXNrLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKQEAg
LTExMyw3ICsxMTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7fSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsICdNaXNzaW5nTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnTWlzc2luZ05hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTog
J2hpJywgZW5kUnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMX0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTM3LDcgKzEzNyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAn
aGknLCBzdGFydFJ1bjogImZvbyIsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52
YWxpZFN0YXJ0UnVuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJ
bnZhbGlkU3RhcnRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0NSw3ICsxNDUs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRS
dW46IDEsIGVuZFJ1bjogImZvbyJ9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRFbmRSdW4n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRFbmRSdW4n
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxl
Z2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxMDAsIGVu
ZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVu
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0
YXJ0UnVuJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNjgs
NyArMTY4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFz
ayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAn
aGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAxMDB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAg
ICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgJ0ludmFsaWRFbmRSdW4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CkBAIC0xODAsNyArMTgwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlz
aXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAxfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGltZVJhbmdlJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTkyLDcgKzE5Miw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHBy
aXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEs
IGVuZFJ1bjogMn0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlz
bWF0Y2gnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSdW5D
b25maWdNaXNtYXRjaCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMjEyLDIwICsyMTIsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSku
dGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygn
dGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIp
OwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1h
bmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwg
ZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0
YXNrSWQnXSk7CiAgICAgICAgIH0pLnRoZW4oKHRhc2spID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGFzay5uYW1lKCksICdoaScpOwogICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3Vs
dHMoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3Jt
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCku
bGFiZWwoKSwgJ3Rlc3QxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNDQsMjIgKzI0
NCwyMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdS
b3cpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7
Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2sn
LCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RS
dW5zWzFdWydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKICAg
ICAgICAgfSkudGhlbigodGFzaykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
bmFtZSgpLCAnaGknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUo
KSwgJ2hpJyk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAg
ICAgICAgIGFzc2VydCghdGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VU
eXBlKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5s
YWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
bWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5NjAwOTEwMDApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2suZW5kVGltZSgpLCAxNDQ1OTY2ODYxMDAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwg
J3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5zdGFydFRpbWUo
KSwgMTQ0NTk2MDA5MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5l
bmRUaW1lKCksIDE0NDU5NjY4NjEwMDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgw
LDcgKzI4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRh
c2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNv
bmZpZ1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVu
cycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVu
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIHN0YXJ0SWQgPSB0ZXN0UnVuc1swXVsnaWQnXTsKICAgICAgICAgICAgIGVuZElkID0g
dGVzdFJ1bnNbMV1bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHN0
YXJ0SWQsIGVuZFJ1bjogZW5kSWR9KTsKQEAgLTI4OCwxMiArMjg4LDEyIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVn
ZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHN0YXJ0SWQs
IGVuZFJ1bjogZW5kSWR9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRHVwbGljYXRlQW5hbHlz
aXNUYXNrJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRHVw
bGljYXRlQW5hbHlzaXNUYXNrJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdhbmFseXNpc190YXNrcycp
OwogICAgICAgICB9KS50aGVuKCh0YXNrcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRhc2tzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFza3Mu
bGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxMiw3ICszMTIsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3Nl
ciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAg
ICAgICAgICAgICAgbmFtZTogJ2hpJywKICAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1
bnNbMF1bJ2lkJ10sCkBAIC0zMzAsOCArMzMwLDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4K
ICAgICAgICAgICAgIGZvciAobGV0IHN0cmF0ZWd5IG9mIHN0cmF0ZWdpZXMpCiAgICAgICAgICAg
ICAgICAgc3RyYXRlZ3lJZE1hcFtzdHJhdGVneVsnaWQnXV0gPSBzdHJhdGVneTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1snc2VnbWVudGF0aW9uJ11d
WyduYW1lJ10sICJ0aW1lIHNlcmllcyBzZWdtZW50YXRpb24iKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3Rlc3RfcmFuZ2UnXV1bJ25hbWUnXSwgInN0
dWRlbnQncyB0LXRlc3QiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdHJhdGVn
eUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSddLCAidGltZSBzZXJpZXMgc2Vn
bWVudGF0aW9uIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1h
cFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3MgdC10ZXN0Iik7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDYsNyArMzQ2LDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFt
ZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5z
ZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJp
Y3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29u
c3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwg
Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAg
ICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJv
dygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdlYmtp
dElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM3MSw3ICszNzEsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2
aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRC
eU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQg
ZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5t
ZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29u
c3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwg
Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAg
ICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJv
dygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdlYmtp
dElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM4NywxOCArMzg3LDE4IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHBy
aXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CiAKICAg
ICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsn
dGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAg
ICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCghdGFzay5o
YXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdz
KCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAg
ICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
LmlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDApOwogICAgIH0pOwog
CiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW4gYW5hbHlzaXMgdGFzayB3aXRoIHRlc3QgZ3JvdXAg
d2hlbiBjb21taXQgc2V0IGxpc3QgYW5kIGEgcG9zaXRpdmUgcmVwZXRpdGlvbiBjb3VudCBpcyBz
cGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7CkBAIC00MjYsNyArNDI2LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlk
KHBsYXRmb3JtSWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RG
aXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVsw
XS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVz
dFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAg
IGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9
fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZp
c2lvbjogJzE5MTYyMyd9fTsKQEAgLTQzNiwzOCArNDM2LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBp
JywgZnVuCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjog
dGVzdFJ1bnNbMV1bJ2lkJ119KTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlz
aXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2submFtZSgpLCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygp
KTsKICAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4
ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBs
YXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJl
bCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3Mo
KSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtd
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0
Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCku
bGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwogICAg
ICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgp
LCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJh
YmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgp
LCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBs
YXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCks
IHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5p
ZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlz
aXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQub2soIWJ1aWxk
UmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzFdLmlzQnVpbGQoKSk7CkBAIC00NzcsOCArNDc3LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBm
dW4KICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzFd
LmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3NpdG9y
eS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNl
dC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2
MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBv
c2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3Np
dG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogfSk7CiAKQEAgLTUwMCw3ICs1
MDAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBzb21lUGxhdGZv
cm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CiAgICAgICAgIGNvbnN0
IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25z
Jywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZv
cm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3Mo
J3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeVJvdyA9
IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dlYktpdCd9
KTsKICAgICAgICAgY29uc3Qgd2Via2l0SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93LmlkOwpAQCAt
NTQ4LDcgKzU0OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGxldCBzb21l
UGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKICAgICAgICAgY29uc3Qg
Y29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMn
LCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9y
bS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygn
dGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Vi
a2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0IGFub3RoZXJSZXZp
c2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CkBAIC01NTgsMzgg
KzU1OCwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
IHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICAgICAgc3RhcnRSdW46
IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7CiAKICAgICAg
ICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFz
a0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAg
ICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1Bl
bmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwg
W10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
cGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1
YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNr
LmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBs
YXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAg
IGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJh
YmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCku
aWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVz
dEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
KCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBs
YXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5w
bGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwogCi0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lk
KCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7
CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAtNTk5LDggKzU5
OSw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2Vjb25k
Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qg
d2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0SWQpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRS
ZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZp
c2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1p
dFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcx
OTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsK
ICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0
ZXN0IGdyb3VwIGFuZCByZXNwZWN0IHRoZSAibmVlZHNOb3RpZmljYXRpb24iIGZsYWcgaW4gdGhl
IGh0dHAgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKQEAgLTYyOCw3ICs2MjgsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxl
Z2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmlu
ZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNl
bGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmlj
cygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBjb25z
dCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAg
ICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkx
NjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXTog
e3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNjM4LDM4ICs2MzgsMzggQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBh
cGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5k
UnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAogICAg
ICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0
YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAg
ICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgYXNzZXJ0KHRhc2suaGFz
UGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygp
LCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFz
ay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
cGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5p
ZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwogICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCAyKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2Vy
YWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgp
LmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRl
c3RHcm91cCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91
cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5w
bGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlk
KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJ
ZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEp
OwogCiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTY3OSw3ICs2
NzksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29u
ZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0
IHdlYmtpdFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0
UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
c2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2
aXNpb24oKSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21t
aXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAn
MTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7
CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10
ZXN0LWdyb3VwLXRlc3RzLmpzCmluZGV4IDA5Y2QzN2FiNDM2Y2IzYTdiYjdjYjhmODQ5YmNhOWRl
MjI3YzE0NDEuLmRkZjQ5OTNhNGY4ZTE5NmQ5YzMyMzRlZjZkZGIxNTA3MjBiYzNhMTQgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5q
cwpAQCAtODMsNyArODMsNyBAQCBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Vi
a2l0UmV2aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgfSkudGhlbigoY29uZmln
Um93KSA9PiB7CiAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29u
ZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAgICAgIG5h
bWU6IG5hbWUsCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBAIC0x
MzcsNyArMTM3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0s
IChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZE5h
bWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWROYW1l
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0lu
dmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZh
bGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTUzLDcgKzE1Myw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6ICdmb28nLCBjb21taXRTZXRzOiBbWzFdXX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNjEsNyArMTYxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRp
dGlvbkNvdW50OiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCByZXBldGl0aW9uQ291bnQ6IDEsIGNvbW1pdFNldHM6IHt9
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3Qn
LCB0YXNrOiAxLCByZXBldGl0aW9uQ291bnQ6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE4NSw3ICsxODUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCBy
ZXBldGl0aW9uQ291bnQ6ICdmb28nLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTkzLDcgKzE5Myw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogLTUsIGNvbW1pdFNldHM6IHsnV2ViS2l0Jzog
W119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMDEsNyArMjAxLDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywg
e25hbWU6ICd0ZXN0JywgdGFzazogMSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJy
b3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMjAsNyArMjIwLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydXZWJL
aXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRT
ZXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxp
ZENvbW1pdFNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCByZXZpc2lvblNldHM6IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7
fV19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2
aXNpb25TZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0y
NDIsNyArMjQyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwg
cmV2aXNpb25TZXRzOiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fV19KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25T
ZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNTIsNyAr
MjUyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0
U2V0czogeydGb28nOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0s
IChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JlcG9z
aXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtMjYyLDcgKzI2Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmls
ZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0
YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogWycxJ119fSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjc0LDcgKzI3NCw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3Jv
dXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI4Niw3ICsyODYsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0
LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnQW1iaWd1b3VzUmV2aXNpb24nKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI5OCw3ICsyOTgsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5k
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMTAsNyArMzEw
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25T
ZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVXBsb2FkZWRGaWxl
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFVw
bG9hZGVkRmlsZScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MzIxLDcgKzMyMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJl
cG9zaXRvcnknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJ
bnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtMzMxLDcgKzMzMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0
YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ10sICdtYWNP
Uyc6IFsnMTVBMjg0J119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlk
Q29tbWl0U2V0cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
J0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3IsICdEdXBsaWNhdGVUZXN0R3JvdXBOYW1lJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzYyLDcgKzM2Miw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkT3duZXJSZXZpc2lvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3OCw3ICszNzgsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZENvbW1pdE93bmVyc2hpcCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdE93bmVyc2hpcCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzkzLDE3ICszOTMsMTcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7
W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3Jldmlz
aW9uOiAnMTVBMjg0J30sIFtvd25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNjLTkx
OTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKICAgICAg
ICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBncm91cElkID0gY29udGVudFsndGVz
dEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBn
cm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3Rz
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAg
ICAgYXNzZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXJl
cXVlc3RzWzBdLmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCkpOwpAQCAtNDE4LDE0ICs0MTgsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IG93bmVk
SlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgp
KTsKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAg
ICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwg
bWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3du
ZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3Np
dG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTkxOTEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ0MCwxNyArNDQw
LDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAnMTVB
Mjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJSZXZp
c2lvbjogJzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElkKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChyZXF1
ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1swXS5pc1Rl
c3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTQ2
NSwxMyArNDY1LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAg
ICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25z
dCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBtYWNvc10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBtYWNvc10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1q
c2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05
MTkxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00ODIsMjggKzQ4MiwyOCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1hY29z
UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1
QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIzJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAg
PSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBy
ZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9z
aXRvcnlHcm91cCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2Nl
cHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2Vw
dHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC01MjEsMjQgKzUyMSwyNCBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
Y29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAgICAg
ICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRd
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMycpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVx
dWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICd3ZWJraXQtb25seScpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91
cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
Lm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cCwgcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAgICAg
ICAgICAgIH0pOwpAQCAtNTUzLDMzICs1NTMsMzMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNl
cnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1l
KCkgPT0gJ1dlYktpdCcpWzBdOwogICAgICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3Np
dG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdt
YWNPUycpWzBdOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNv
bW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5j
b21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVB
Mjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3Nd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3Jv
dXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUo
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3Np
dG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ucmVw
b3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0
b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRv
cnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBv
c2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9z
aXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwpAQCAtNjAwLDI4ICs2
MDAsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0
ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNh
dGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29z
XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQz
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2ZkMWEy
OWM2MzNiYTU3ZTg3OTUzMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzJjZWRhNDVkM2NkNjNjZGU1OGQwZGJmNTc2NzcxNGUwM2Q5MDJlNDMn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICc1NDcxYThkZGMxZjY2
MTY2M2NjZmQxYTI5YzYzM2JhNTdlODc5NTMzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMCA9IHJlcXVlc3RzWzBdLnJl
cG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMC5u
YW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMSA9IHJlcXVlc3RzWzFdLnJl
cG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXAxLCByZXBvc2l0b3J5R3JvdXAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3VwMSwgcmVwb3NpdG9yeUdyb3VwMCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9
KTsKQEAgLTY0MiwzMiArNjQyLDMyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91
cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVz
dHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygp
LCBbd2Via2l0XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVB
Mjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKIAog
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBv
c2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3VwMC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFt
ZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydCghcmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDEpKTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5y
ZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3VwMS5uYW1lKCksICd3ZWJraXQtb25seScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDEubmFtZSgp
LCAnd2Via2l0LW9ubHknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3VwMSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydCghcmVwb3NpdG9yeUdyb3VwMS5hY2NlcHRzKHNldDApKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMS5hY2NlcHRzKHNldDEpKTsKICAgICAgICAg
ICAgIH0pOwpAQCAtNjkxLDI4ICs2OTEsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtd
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFj
b3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMo
KSwgW1VwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1cGxv
YWRlZEZpbGUpXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwg
c2V0MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNv
bW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRv
cmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbVXBsb2FkZWRG
aWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZEZpbGVbJ2lkJ10sIHVwbG9hZGVkRmlsZSldKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29t
bWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhz
ZXQxKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC03NDAsNTAgKzc0MCw1MCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQn
XTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05v
dGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRl
c3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBs
YXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3Qo
KSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdy
b3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWls
ZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxk
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQo
KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3Qo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgp
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxk
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlz
QnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0
cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgp
OwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21t
aXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0
b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0
MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVk
RmlsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0
Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKICAgICAgICAgICAg
IGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTgw
NSw2MCArODA1LDYwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50
Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3Jt
LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0
IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0
XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0u
aXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sw
XS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVz
dCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0
KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRT
ZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0
U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJr
aXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9v
dHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRC
eU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdl
YmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21S
b290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JS
ZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNv
cyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwg
c2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29tbWl0
U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkoanNjKSwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC04ODAsNjEgKzg4MCw2MSBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9j
a0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxh
dGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVz
dHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVp
bGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVd
LmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAg
ICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAg
Y29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZv
clJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNj
LTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRT
ZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0u
Y29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29z
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
OTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0
cnVlKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTk2Myw2OCArOTYzLDY4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRl
ZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21l
VGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQ
bGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBs
YXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgp
LCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25z
dCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBv
c2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJl
cG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQo
KSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29t
bWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10p
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwg
dHJ1ZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29z
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwg
ZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05
MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRy
dWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtMTA1Nyw3NyArMTA1Nyw3NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0
ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRl
c3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVz
dElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNl
cnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50
ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5w
bGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7
CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQo
KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0u
aXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29u
c3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0
MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVw
b3NpdG9yaWVzKCkpLCBbanNjLCBvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCBvd25lZEpTQywgd2Via2l0LCBtYWNvc10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIHRydWUpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3du
ZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
dHJ1ZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1
aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21t
aXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0
b3JpZXMoKSksIFtvd25lZEpTQywganNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywganNjLCB3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9t
Um9vdHMoKSwgW10pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkod2Via2l0KSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICdqc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdqc2MtOTE5MScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KGpzYyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKICAgICAgICAgICAgIGFzc2VydCgh
c2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTExNTQsNDUgKzEx
NTQsNDUgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RH
cm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAu
bmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVz
dCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNC
dWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sw
XS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7
CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAg
ICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29t
bWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkobWFjb3MpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0
MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEyMTcsNyArMTIxNyw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdQYXRjaE5vdEFjY2VwdGVkJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdQYXRjaE5vdEFjY2VwdGVkJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMjMwLDI0ICsxMjMwLDI0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IGluc2Vy
dGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCBbYW5h
bHlzaXNUYXNrLCB0ZXN0R3JvdXBzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2su
ZmV0Y2hCeUlkKHJlc3VsdFsndGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3Vs
dFsndGFza0lkJ10sIHRydWUpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2su
bmFtZSgpLCAnb3RoZXIgdGFzaycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5hbHlz
aXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgYXNzZXJ0
Lm9rKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIp
OwogCiAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAg
ICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwg
W10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJv
b3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAgICB9KTsK
IAogICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSB0ZXN0IGdyb3VwIHdpdGggbmVl
ZHMtbm90aWZpY2F0aW9uIGZsYWcgdW5zZXQnLCBhc3luYyAoKSA9PiB7CkBAIC0xMjU5LDI0ICsx
MjU5LDI0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVz
dEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0ZXN0R3JvdXBzXSA9
IGF3YWl0IFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3VsdFsndGFza0lk
J10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpXSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRh
c2snKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNh
dGlvbigpKTsKICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBzZXQw
ID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0
c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRv
cmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21S
b290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMo
KSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0
ZSBhIGN1c3RvbSB0ZXN0IGdyb3VwIGZvciBhbiBleGlzdGluZyBjdXN0b20gYW5hbHlzaXMgdGFz
aycsICgpID0+IHsKQEAgLTEyOTYsNDMgKzEyOTYsNDQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7
bmFtZTogJ3Rlc3QyJywgdGFzazogcmVzdWx0Wyd0YXNrSWQnXSwgcGxhdGZvcm06IE1vY2tEYXRh
Lm90aGVyUGxhdGZvcm1JZCgpLCB0ZXN0LCByZXZpc2lvblNldHMsIHJlcGV0aXRpb25Db3VudDog
Mn0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHNlY29uZFJl
c3VsdCA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFJlc3VsdFsndGFz
a0lkJ10sIHNlY29uZFJlc3VsdFsndGFza0lkJ10pOworICAgICAgICAgICAgLy8gcGcgZnVudGlv
bnMgd2lsbCByZXR1cm4gYWxsIGRhdGEgYXMgc3RyaW5nLCBzbyB3ZSBuZWVkIG1ha2Ugc3VyZSB0
aGF0IHdlIGNvbXBhcmUgYXMgaW50CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoZmlyc3RSZXN1bHRbJ3Rhc2tJZCddKSwgcGFyc2VJbnQoc2Vjb25kUmVzdWx0Wyd0YXNr
SWQnXSkpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0
Y2hCeUlkKHJlc3VsdFsndGFza0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsn
dGFza0lkJ10sIHRydWUpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSByZXN1bHQ7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhl
ciB0YXNrJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDIp
OwogICAgICAgICAgICAgVGVzdEdyb3VwLnNvcnRCeU5hbWUodGVzdEdyb3Vwcyk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzWzBdLm5hbWUoKSwgJ3Rlc3QxJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1swXS5uYW1lKCksICd0
ZXN0MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMF0ucmVw
ZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICAgICAgbGV0IHJlcXVlc3RzID0gdGVzdEdyb3Vw
c1swXS5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOwogICAgICAgICAgICAgbGV0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgICAgIGxldCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHNbMV0ubmFtZSgpLCAndGVzdDInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzWzFdLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJv
b3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1sxXS5uYW1lKCksICd0
ZXN0MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMV0ucmVw
ZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgcmVxdWVzdHMgPSB0ZXN0R3JvdXBzWzFd
LmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
NCk7CiAgICAgICAgICAgICBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAg
ICAgICBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRv
cmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1z
dGF0dXMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVn
ZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMKaW5kZXggNDNiNDA3ZWNhOWRkMDI5ZGFhYWI4NDYz
N2E2ZGMxMjU2M2RmMTU5MS4uYjU3YTAyMTFlNjg3ZjlhM2M3Mjc0Yzc3NDliNmQ1ZTFmZmFhZGEx
YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2
aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcwpAQCAt
MzksMTMgKzM5LDEzIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0
dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhSZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJl
dmlzaW9uKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1
cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtZWFuX2Nh
Y2hlJ10sIDExKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydp
dGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgaWQg
PSBydW5Sb3dzWzBdWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVx
dWVzdENTUkZUb2tlbigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUzLDEwICs1Mywx
MCBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9u
X2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNjUsMTEgKzY1LDExIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1z
dGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0
aFJldmlzaW9uKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVy
J10sIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JG
VG9rZW4oKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBSZW1vdGVBUEku
Y2xlYXJDb29raWVzKCk7CkBAIC03Nyw3ICs3Nyw3IEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJy
b3IsICdJbnZhbGlkVG9rZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ludmFsaWRUb2tlbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODUsMTggKzg1
LDE4IEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhS
ZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4o
KHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRf
b3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1
ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFJlbW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUt
cnVuLXN0YXR1cycsIHt0b2tlbjogJ2JhZCd9KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0lu
dmFsaWRUb2tlbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52
YWxpZFRva2VuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDUsMjMgKzEwNSwyMyBA
QCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNp
b25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAg
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1zdGF0
dXMnLCB7J3J1bic6IHJ1blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVyJzogdHJ1ZX0pOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwo
J3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycs
IHsncnVuJzogcnVuUm93c1swXVsnaWQnXSwgJ21hcmtlZE91dGxpZXInOiBmYWxzZX0pOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rl
c3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRl
LXRlc3QtZ3JvdXAtdGVzdHMuanMKaW5kZXggMDIxMTZlZDhkOGJiZTkyMGRiZjE4ZDYxN2U4Zjk1
OTMyYzc4MzU5OS4uMjJmZDBmZWM2ZTM0YjE4YmMyMWE5ZGJkYTViOWExNWMxNDZhODU5MCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3Rz
LmpzCkBAIC03OSw3ICs3OSw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuYWx5c2lzVGFzayhu
YW1lLCB3ZWJraXRSZXZpc2lvbnMgPSBbIjE5MTYyMiIsICIxOTE2MjMiXSkKICAgICBjb25zdCBj
b25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycs
IHttZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgp
fSk7CiAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMn
LCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKIAotICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVu
cy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIp
OwogICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgc3Rh
cnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTY1LDIwICsxNjUsMjAgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAg
IGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAg
ICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRb
J3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5l
ZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3Vw
Lm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgICAgICBjb25zdCBub3RpZmljYXRpb25TZW50
QXQgPSBuZXcgRGF0ZTsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
dXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbmVlZHNOb3RpZmlj
YXRpb246IGZhbHNlLCBub3RpZmljYXRpb25TZW50QXQ6IG5vdGlmaWNhdGlvblNlbnRBdC50b0lT
T1N0cmluZygpfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RH
cm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1
cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCkudG9JU09TdHJp
bmcoKSwgbm90aWZpY2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlvblNl
bnRBdCgpLnRvSVNPU3RyaW5nKCksIG5vdGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpKTsK
ICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGRhdGUgIm5lZWRzX25vdGlm
aWNhdGlvbiIgZmllbGQgdG8gdHJ1ZScsIGFzeW5jICgpID0+IHsKQEAgLTE5MCwxOCArMTkwLDE4
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
bigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElk
J107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZv
clRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOwogICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgICAgICBhd2FpdCBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5z
ZXJ0ZWRHcm91cElkLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0
IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFz
a0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgs
IDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNh
dGlvbigpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0u
bmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90
aWZpY2F0aW9uU2VudEF0KCkpOwogICAgIH0pOwogCkBAIC0yMTQsMTAgKzIxNCwxMCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAg
ICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAgICAgICAg
IGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAgICAgfSk7CkBAIC0y
MzEsMjIgKzIzMSwyMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0
Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91
cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxz
ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0
cygpLCBmYWxzZSk7CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
dXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVS
ZXF1ZXN0czogdHJ1ZX0pOwogCiAgICAgICAgIGxldCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0
cnVlKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUt
dGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3Rz
OiBmYWxzZX0pOwogCiAgICAgICAgIHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdy
b3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CiAg
ICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGNsZWFyICJtYXlfbmVlZF9tb3JlX3JlcXVlc3RzIiB3
aGVuIGhpZGluZyBhIHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CkBAIC0yNTgsMjIgKzI1OCwy
MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJ
ZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7
CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3Qt
Z3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1
ZX0pOwogCiAgICAgICAgIGxldCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91
cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKIAogICAg
ICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcs
IHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBoaWRkZW46IHRydWV9KTsKIAogICAgICAgICB1cGRh
dGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCdd
LCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVSZXF1ZXN0
cygpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLmlzSGlk
ZGVuKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5t
YXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwZGF0ZWRHcm91cHNbMF0uaXNIaWRkZW4oKSwgdHJ1ZSk7CiAgICAgfSk7CiB9KTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQt
ZmlsZS10ZXN0cy5qcwppbmRleCBlMGY4YTI4ZGZlNjEzMTI4OWE5MjYxNjlkMTE4OTE2OTBiZGZh
ZmIwLi40N2U5MzhhMjMzNDk4OTI3NGExYjkwYjdlYWQ3MTQ5YTdkMDk4NGQ5IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
bG9hZC1maWxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKQEAgLTI3LDcgKzI3LDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywg
e30sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzYsNyArMzYsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0
cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxl
U2l6ZUxpbWl0RXhjZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
ZXJyb3IsICdGaWxlU2l6ZUxpbWl0RXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTUxLDE1ICs1MSwxNSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxl
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVj
dEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUuaWQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlLnNpemUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZS5m
aWxlbmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMx
OGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmls
ZS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1
cGxvYWRlZEZpbGUuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2Fk
ZWRGaWxlLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3
ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTc5LDE2ICs3OSwxNiBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBs
b2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4o
KHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRGaWxlMSwg
dXBsb2FkZWRGaWxlMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAy
NCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2Fk
ZWRGaWxlMS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1l
LCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1l
LCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3
N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNo
YTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAq
IDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
b3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUx
LmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVu
c2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNo
YTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2Vk
NWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBd
LnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTA4LDE2ICsxMDgsMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNwb25zZVsn
dXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRl
ZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmlsZTIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFt
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYy
NDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hh
MjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlMSwg
dXBsb2FkZWRGaWxlMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNl
SW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQo
dXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAy
NTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEu
c2hhMjU2KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOSwyNiArMTM5LDI2IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAg
ICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHVwbG9h
ZGVkRmlsZTEuaWQsIHVwbG9hZGVkRmlsZTIuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1
cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmlkLCB1
cGxvYWRlZEZpbGUyLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh1cGxv
YWRlZEZpbGUxLmlkLCB1cGxvYWRlZEZpbGUyLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIuaWQpKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmls
ZTEuZmlsZW5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUs
ICdvdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1l
LCB1cGxvYWRlZEZpbGUyLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2Fk
ZWRGaWxlMi5maWxlbmFtZSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNp
emUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUyLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uc2l6ZSwgcm93c1sxXS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3
YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAx
MDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93
c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgcGFyc2VJbnQodXBsb2Fk
ZWRGaWxlMi5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5z
aXplLCByb3dzWzFdLnNpemUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1
Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTIuc2hhMjU2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1Niwgcm93c1sxXS5zaGEyNTYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZXh0ZW5zaW9uLCAn
LmRhdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDEyICsxNzAsMTIgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxv
YWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLm90aGVyLnRh
ci5nejUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50
YXIuZ3o1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2
ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4
NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxp
bWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLm1pbWUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFy
Lmd6NScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAn
NTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFj
ZTZkODRiNScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk1LDEzICsxOTUsMTMgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1
cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3Ry
aWN0RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwog
ICAgICAgICB9KQogICAgIH0pOwogCkBAIC0yMTcsMTQgKzIxNywxNCBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdh
aXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3Ry
ZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSk7CiAgICAgICAgIH0KICAgICAgICAgbGV0IHJvd3Mg
PSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChyb3dzLmxlbmd0aCwgc3BsaXRDb3VudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzLmxlbmd0aCwgc3BsaXRDb3VudCk7CiAKICAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZU9mU2l6ZUluTUIoJ2xpbWl0LmRhdCcs
IGxpbWl0SW5NQiwgJ2EnKTsKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSk7
CiAgICAgICAgIHJvd3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgc3BsaXRDb3VudCArIDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKICAgICAg
ICAgY29uc3QgZGVsZXRlZEZpbGVzID0gcm93cy5maWx0ZXIoKHJvdykgPT4gcm93WydkZWxldGVk
X2F0J10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoZGVsZXRlZEZpbGVzLmxlbmd0aCwgMTYpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVsZXRlZEZpbGVzLmxlbmd0aCwgMTYpOwogICAg
IH0pOwogCiAgICAgaXQoJ3Nob3VsZCBub3QgcHJ1bmUgZmlsZXMgdGhhdCBoYXZlIGJlZW4gZGVs
ZXRlZCcsIGFzeW5jICgpID0+IHsKQEAgLTI4MSw3ICsyODEsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVh
bX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdGaWxlU2l6
ZVF1b3RhRXhjZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJy
b3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTMxMiwxMyArMzEyLDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsK
ICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3MubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1l
LCAnc29tZS5wYXRjaCcpOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHJvd3NbMF0uZGVs
ZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFt
ZSwgJ290aGVyLnBhdGNoJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5kZWxl
dGVkX2F0LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1l
LCAnYW5vdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0
ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAn
c29tZS5wYXRjaCcpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMF0u
ZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sx
XS5maWxlbmFtZSwgJ290aGVyLnBhdGNoJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzQ2LDEzICszNDYsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91
cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAg
ICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdz
b21lLnBhdGNoJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5kZWxldGVkX2F0
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAncm9v
dC50YXIuZ3onKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRf
YXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdh
bm90aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRlZF9h
dCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21l
LnBhdGNoJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5kZWxldGVk
X2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVu
YW1lLCAncm9vdC50YXIuZ3onKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChy
b3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0zODIsNyArMzgyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6
IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90
YUV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9j
b21tb24tb3BlcmF0aW9ucy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzCmluZGV4IDU4YjUxMTMxMTliZjYxMGM0
N2UyODQ3ZmEwNzMwN2UxZTVhZjJmNmYuLjE5YjljMTFmZjBjZjNjNGFmM2M5MjQzYTkwMzE5NDI5
NjNmMzc0NTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzCkBAIC01
Niw3ICs1Niw3IEBAIGFzeW5jIGZ1bmN0aW9uIGFzc2VydFRocm93cyhleHBlY3RlZEVycm9yLCB0
ZXN0RnVuY3Rpb24pCiAgICAgICAgICAgICBhd2FpdCB0ZXN0RnVuY3Rpb24oKQogICAgIH0gY2F0
Y2goZXJyb3IpIHsKICAgICAgICAgdGhyb3duRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCBleHBlY3RlZEVycm9yKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCBleHBlY3RlZEVycm9yKTsKICAgICB9CiAgICAgYXNzZXJ0Lm9rKHRocm93bkV4
Y2VwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzCmluZGV4IDdiODRi
MjRiZmU2YTg4MzdlZWM3NDI3Yzg3NjBlNGIyMDFkZGIwYzcuLjI2MmIyZmQ0ZTE3MjBiNjM1NjY4
YjY2ZTBkOGViODc1ZDA4NjA4OWYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpz
CkBAIC0xMiw3ICsxMiw3IEBAIGNsYXNzIFRlbXBvcmFyeUZpbGUgewogICAgICAgICBsZXQgbWVn
YWJ5dGVTdHJpbmcgPSBjaGFyYWN0ZXJUb0ZpbGw7CiAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMjA7IGkrKykKICAgICAgICAgICAgIG1lZ2FieXRlU3RyaW5nID0gbWVnYWJ5dGVTdHJpbmcg
KyBtZWdhYnl0ZVN0cmluZzsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG1lZ2FieXRlU3RyaW5nLmxl
bmd0aCwgMTAyNCAqIDEwMjQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWVnYWJ5dGVT
dHJpbmcubGVuZ3RoLCAxMDI0ICogMTAyNCk7CiAKICAgICAgICAgbGV0IGNvbnRlbnQgPSAnJzsK
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplSW5NQjsgaSsrKQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmln
Z2VyYWJsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKaW5kZXggNjA0ZGE3MzRkYTBjZTNi
MGNlYzBiMDk1YWZmOTAxNWNkZDk3NzFkOS4uNDUwZjBjM2E4MzM2ZjU0ZGZmMmRmZjhjMDE5Njhk
OTA0ZWVlZjYwNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRl
c3RzLmpzCkBAIC0xMSw4ICsxMSw4IEBAIGNvbnN0IE1vY2tMb2dnZXIgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy9tb2NrLWxvZ2dlci5qcycpLk1vY2tMb2dnZXI7CiAKIGZ1bmN0aW9uIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKHJlcXVlc3QsIG1ldGhvZCwgdXJsLCBjb250ZW50KQogewotICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKLSAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdC51cmwsIHVybCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QubWV0aG9kLCBt
ZXRob2QpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKICAgICBy
ZXF1ZXN0LnJlc29sdmUoY29udGVudCk7CiB9CiAKQEAgLTQwLDQ1ICs0MCw0NSBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRl
ci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLmRhdGEsIHsnaWQnOiA3MDIsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAn
Zm9yY2UnLCAncGFyYW1zJzoKLSAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAn
b3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiA3MDIsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6
ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMics
ICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoeydi
dWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVl
c3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2lu
Z2xlQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtOTcsMzggKzk3LDM4IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0
YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5
bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmln
V2l0aFNpbmdsZUJ1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Nyw3MCArMTQ3LDcwIEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJs
LCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0
YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0
YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjEx
IDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVl
c3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5m
ZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWls
ZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0zNDksNjIgKzM0OSw2MiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
cmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxk
Ym90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwp
OwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJs
ZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVk
dWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1
ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVs
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
cmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDIzLDcwICs0MjMsNzAg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRo
b2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWls
ZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9k
JzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9k
JzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIy
JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRS
ZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJl
c29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3
MDB9KV19KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2Zh
aWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDEyMykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
IApAQCAtNTA1LDUwICs1MDUsNTAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1
aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3lu
Y0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTU3MCw4NiArNTcwLDg2IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAy
LCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHti
dWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7
J2lkJzogJzcxMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7
J2lkJzogJzcxMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVB
Mjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDcxMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7
J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmln
V2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwg
J3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1i
dWlsZGVyLTEnLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
MCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
IApAQCAtNjcxLDkxICs2NzEsOTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElk
OiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9T
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeydp
ZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzExJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEn
fX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgn
T0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzExLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNv
bHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURG
b3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAxLCBidWlsZGJvdEJ1
aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5yZXNvbHZl
KE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCku
c3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0
U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDEyNCkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3Nj
aGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRy
ZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5p
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAx
MjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDEyNCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCku
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtNzc2LDYwICs3NzYsNjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAg
ICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAg
ICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGlt
ZW91dChyZXNvbHZlLCAxMCkpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAg
ICAgcmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVz
dHNbNF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dp
dGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
MSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMiku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3Rh
dHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC04NTQs
MjcgKzg1NCwyNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwg
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnIDogW01v
Y2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbMl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRl
ci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6
ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMScsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpLAogICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKQEAgLTg4MywyMCArODgzLDIwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0
YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
OSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
OSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAg
IHJldHVybiBzeW5jUHJvbWlzZTsKQEAgLTkxOCw1OCArOTE4LDU4IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRh
LCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRh
LCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
NSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtOTg4LDQyICs5ODgsNDIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIHJldHVybiBC
dWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25m
aWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzKCksICdmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTA0NSwyMyArMTA0NSwyMyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwogCi0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAn
NzEwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5kYXRhLCB7J2lkJzogJzcxMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9y
Y2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3Mn
OiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsKQEAgLTEw
NzksNzEgKzEwNzksNzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAg
IGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzog
W01vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
ODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
IAogICAgICAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAg
ICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAg
ICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHJldXNlIHRoZSByb290cyBmcm9tIGEgY29tcGxldGVkIGJ1aWxkIHJlcXVlc3Qg
d2l0aCB0aGUgc2FtZSBjb21taXQgc2V0JywgYXN5bmMgKCkgPT4gewpAQCAtMTE1OCw3OCArMTE1
OCw3OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxk
UmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgbGV0IGFu
b3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1pdFNldCA9IGFub3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0U2V0
LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1pdFNldCkpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQgc3luY1Byb21p
c2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShN
b2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVyKCkudHJp
Z2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdj
b21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgZGVmZXIgc2NoZWR1bGluZyBhIGJ1aWxk
IHJlcXVlc3QgaWYgdGhlcmUgaXMgYSAicnVubmluZyIgYnVpbGQgcmVxdWVzdCB3aXRoIHNhbWUg
Y29tbWl0IHNldCwgYnV0IHNob3VsZCBzY2hlZHVsZSB0aGUgYnVpbGQgcmVxdWVzdCBpZiAicnVu
bmluZyIgYnVpbGQgcmVxdWVzdCB3aXRoIHNhbWUgY29tbWl0IHNldCBmYWlscyBsYXRlciBvbics
IGFzeW5jICgpID0+IHsKQEAgLTEyNDQsMTE0ICsxMjQ0LDExNCBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg4MDApOwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5v
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAg
bGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGxl
dCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJD
b21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90
aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzog
W01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUo
e30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZl
KHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQg
QnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29u
ZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAg
ICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAg
ICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdmYWls
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMTIzKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5v
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IHNlY29uZFN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1
aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSld
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BP
U1QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0uZGF0
YSwgeydpZCc6IDkwMCwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOgorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hl
ZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0uZGF0YSwgeydpZCc6ICc5MDAnLCAn
anNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAg
ICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ3drLXBhdGNoJzog
J2h0dHA6Ly9sb2NhbGhvc3Q6ODE4MC9hcGkvdXBsb2FkZWQtZmlsZS8xMDAudHh0JywKICAgICAg
ICAgICAgICAgICAnYnVpbGQtcmVxdWVzdC1pZCc6ICc5MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAgICB9KTsKQEAgLTEzNjgsNzggKzEzNjgs
NzggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGxldCBidWlsZFJl
cXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90
aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5l
cXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogOTAwLCBidWlsZGVySWQ6IDN9
KV19KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAg
YXdhaXQgc3luY1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hG
b3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRp
bmdCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1
aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzMvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzMvYnVpbGRzLzEyNCcpOwogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIG5vdCB1cGRhdGUgYnVpbGQgcmVxdWVzdHMgZnJvbSBhbm90aGVy
IHRyaWdnZXJhYmxlJywgYXN5bmMgKCkgPT4gewpAQCAtMTUzNCwyMiArMTUzNCwyMiBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKICAgICAgICAg
ICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7
CiAKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmFsbCgp
WzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdi
dWlsZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dl
cmFibGUubmFtZSgpLCAnYnVpbGQtd2Via2l0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCB0
ZXN0ID0gVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRC
eVRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9u
KHRlc3QsIHBsYXRmb3JtKSwgbnVsbCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMg
PSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9z
aXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAn
d2Via2l0LXN2bicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXBzWzBd
LnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdCwgbWFjb3NdKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRh
Lm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAgICAgICAgICAg
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7CkBAIC0xNTg0LDIyICsxNTg0LDIyIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuYWxsKCku
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5kQnlJZChN
b2NrRGF0YS5zb21lVGVzdElkKCkpOwogICAgICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9IFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwogICAgICAgICAgICAg
ICAgIGxldCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9u
KHRlc3QsIHBsYXRmb3JtKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFi
bGUubmFtZSgpLCAnYnVpbGQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLXdlYmtpdCcpOwogCiAgICAgICAgICAg
ICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFt
ZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdDdXN0b20gUm9vdHMnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRz
Q3VzdG9tUm9vdHMoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
c1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3Rz
KCksIHRydWUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5h
bWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdDdXN0b20gUm9vdHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5h
Y2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBb
d2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwogCiAgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIo
KTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IFsgXTsKQEAgLTE2
MTEsMTMgKzE2MTEsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1h
bmlmZXN0KCkpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmln
Z2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFi
bGUuYWxsKClbMF0ucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJr
aXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0
b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNv
c10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgp
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKICAgICAg
ICAgICAgIH0pCiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTYzMiwxMiArMTYzMiwxMiBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGNvbnN0IGdldEJ1aWxkZXJOYW1lVG9JRE1hcFByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxl
LmdldEJ1aWxkZXJOYW1lVG9JRE1hcCgpOwogICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICBnZXRCdWlsZGVyTmFtZVRvSURNYXBQcm9taXNlLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1h
cCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBb
InNvbWUgYnVpbGRlciJdLCAxKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVy
TmFtZVRvSURNYXBbInNvbWUtYnVpbGRlci0xIl0sIDIpCi0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIDIiXSwgMykKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJvdGhlciBidWlsZGVyIl0s
IDQpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29t
ZSB0ZXN0ZXIiXSwgNSkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVU
b0lETWFwWyJhbm90aGVyIHRlc3RlciJdLCA2KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRlciJdLCAxKQorICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUtYnVpbGRl
ci0xIl0sIDIpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1l
VG9JRE1hcFsic29tZSBidWlsZGVyIDIiXSwgMykKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJvdGhlciBidWlsZGVyIl0sIDQpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSB0ZXN0
ZXIiXSwgNSkKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVU
b0lETWFwWyJhbm90aGVyIHRlc3RlciJdLCA2KQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCmluZGV4
IDdiMmU1MTdjMzFmMDU1OWExMjEzYzExMmM0OWQ0YWFkYmQyNjcxZDMuLmUzMTMzY2E0ZDBlNmFi
ZTViYTc1YjI4MWJiN2FhMGI1YzNhYzg2MWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZl
dGNoZXItdGVzdHMuanMKQEAgLTExMCwxMyArMTEwLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0
Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgIGRlc2NyaWJlKCdPU0J1aWxkZXJGZXRjaGVyLl9jb21w
dXRlT3JkZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgY2FsY3VsYXRlIHRoZSByaWdo
dCBvcmRlciBmb3IgYSBnaXZlbiB2YWxpZCByZXZpc2lvbicsICgpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignU2llcnJhMTZEMzInKSwgMTYwMzAwMzIw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNkQz
MjEnKSwgMTYwMzAzMjEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29t
cHV0ZU9yZGVyKCcxNmQzMjEnKSwgMTYwMzAzMjEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNkQzMjF6JyksIDE2MDMwMzIxMjYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxWicpLCAxNjAz
MDMyMTI2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIo
JzEwLjEyLjMgMTZEMzInKSwgMTYwMzAwMzIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIFNpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcign
U2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNkQzMjEnKSwgMTYwMzAzMjEwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxNmQzMjEnKSwg
MTYwMzAzMjEwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29t
cHV0ZU9yZGVyKCcxNkQzMjF6JyksIDE2MDMwMzIxMjYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxWicpLCAxNjAzMDMyMTI2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEw
LjEyLjMgMTZEMzInKSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIFNpZXJyYTE2RDMyJyksIDE2MDMwMDMy
MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93IGFzc2VydGlvbiBl
cnJvciB3aGVuIGdpdmVuIGEgaW52YWxpZCByZXZpc2lvbicsICgpID0+IHsKQEAgLTE0MSwxMyAr
MTQxLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgY29uc3QgZmV0Y2hDb21taXRzUHJvbWlzZSA9IGZldGNoZXIuX2NvbW1pdHNGb3JBdmFp
bGFibGVCdWlsZHMoWydsaXN0JywgJ2J1aWxkMSddLCAnXlxcLiokJyk7CiAKICAgICAgICAgICAg
IGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYnVpbGQxJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0cyA9IHthbGxS
ZXZpc2lvbnM6IFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sIGNvbW1pdHNXaXRoVGVz
dGFiaWxpdHk6IHt9fTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLnJlc29sdmUoJzE2RDMyMVxuMTZFMzIxelxuXG4xNkYzMjEnKTsKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkSW5mbyA9IGF3YWl0IGZldGNoQ29tbWl0c1Byb21pc2U7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGV4cGVjdGVkUmVzdWx0cywgYnVpbGRJbmZvKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZXhwZWN0ZWRSZXN1bHRzLCBidWlsZEluZm8pOwog
ICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRoZSBjb21tYW5kIG91dHB1
dCBhcyBKU09OIGZvcm1hdCcsIGFzeW5jICgpID0+IHsKQEAgLTE1NywxMyArMTU3LDEzIEBAIGRl
c2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qg
ZmV0Y2hDb21taXRzUHJvbWlzZSA9IGZldGNoZXIuX2NvbW1pdHNGb3JBdmFpbGFibGVCdWlsZHMo
WydsaXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRp
b25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3V0cHV0T2JqZWN0ID0ge2FsbFJldmlzaW9uczogWyIxNkQzMjEiLCAiMTZF
MzIxeiIsICIxNkYzMjEiXSwgY29tbWl0c1dpdGhUZXN0YWJpbGl0eTogeyIxNkQzMjEiOiAiUGFu
aWMifX07CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KG91dHB1dE9iamVjdCkpOwogICAgICAgICAgICAgY29uc3Qg
YnVpbGRJbmZvID0gYXdhaXQgZmV0Y2hDb21taXRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3V0cHV0T2JqZWN0LCBidWlsZEluZm8pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChvdXRwdXRPYmplY3QsIGJ1aWxkSW5mbyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xNzMsOSArMTczLDkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsK
ICAgICAgICAgICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGws
IG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0
cyA9IGZldGNoZXIuX2NvbW1pdHNXaXRoaW5SYW5nZShbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2
RjMyMSJdLCAiT1NYIiwgMTYwNDAwMDAwMCwgMTYwNjAwMDAwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZp
c2lvbjogJzE2RTMyMXonfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNb
MV0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAsIHJldmlzaW9uOiAnMTZG
MzIxJ30pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1swXSwge3JlcG9z
aXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcxNkUzMjF6J30pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzFdLCB7cmVwb3NpdG9y
eTogJ09TWCcsIG9yZGVyOiAxNjA1MDMyMTAwLCByZXZpc2lvbjogJzE2RjMyMSd9KTsKIAogICAg
ICAgICB9KTsKIApAQCAtMTgzLDggKzE4Myw4IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcics
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7
CiAgICAgICAgICAgICBjb25zdCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxs
LCBudWxsLCBNb2NrU3VicHJvY2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3Vs
dHMgPSBmZXRjaGVyLl9jb21taXRzV2l0aGluUmFuZ2UoWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIx
NkYzMjEiXSwgIk9TWCIsIDE2MDQwMDAwMDAsIDE2MDUwMDAwMDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzdWx0c1swXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2
aXNpb246ICcxNkUzMjF6J30pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0
c1swXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcx
NkUzMjF6J30pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk2LDI0ICsxOTYsMjQgQEAg
ZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25z
dCBhZGRvd25lZENvbW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNGb3JCdWls
ZChbb3N4Q29tbWl0LCBhbm90aGVyT1NYQ29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nXSk7CiAKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21p
c2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9j
ZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vz
cy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzInXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdT
aWVycmExNkUzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dHNbMF1bJ3JlcG9zaXRvcnknXSwgb3N4Q29tbWl0WydyZXBvc2l0b3J5J10pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzBdWydyZXZpc2lvbiddLCBvc3hDb21taXRbJ3Jl
dmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1swXVsn
b3duZWRDb21taXRzJ10sIG93bmVkQ29tbWl0V2l0aFdlYktpdCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdHNbMV1bJ3JlcG9zaXRvcnknXSwgYW5vdGhlck9TWENvbW1pdFsn
cmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1sxXVsn
cmV2aXNpb24nXSwgYW5vdGhlck9TWENvbW1pdFsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzFdWydvd25lZENvbW1pdHMnXSwgYW5vdGhlcm93
bmVkQ29tbWl0V2l0aFdlYktpdCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0c1swXVsncmVwb3NpdG9yeSddLCBvc3hDb21taXRbJ3JlcG9zaXRvcnknXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMF1bJ3JldmlzaW9uJ10sIG9z
eENvbW1pdFsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXN1bHRzWzBdWydvd25lZENvbW1pdHMnXSwgb3duZWRDb21taXRXaXRoV2ViS2l0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0c1sxXVsncmVwb3NpdG9y
eSddLCBhbm90aGVyT1NYQ29tbWl0WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzFdWydyZXZpc2lvbiddLCBhbm90aGVyT1NYQ29tbWl0
WydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3VsdHNbMV1bJ293bmVkQ29tbWl0cyddLCBhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjI0LDE1ICsyMjQsMTUgQEAgZGVz
Y3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBh
ZGRvd25lZENvbW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZChb
b3N4Q29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSkKIAogICAgICAg
ICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
U3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
Wydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVqZWN0KCdGYWlsZWQg
Z2V0dGluZyBvd25lZC1jb21taXQnKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBhZGRvd25l
ZENvbW1pdFByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICAgICAgfSwgKGVy
cm9yX291dHB1dCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZXJyb3Jfb3V0cHV0
KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yX291dHB1dCwgJ0ZhaWxl
ZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3Jfb3V0cHV0LCAnRmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0Jyk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yNDUs
MTUgKzI0NSwxNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIuX2FkZE93bmVk
Q29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbiddKQogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkQzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1sw
XS5yZXNvbHZlKCd7IldlYktpdCI6eyJSYW5kb21LZXkiOiAiUmFuZG9tVmFsdWUifX0nKTsKIAog
ICAgICAgICAgICAgICAgIHJldHVybiBhZGRvd25lZENvbW1pdFByb21pc2UudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgICAgICAgICAgfSwgKGVycm9yX291dHB1dCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQoZXJyb3Jfb3V0cHV0KTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yX291dHB1dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3IgW0VSUl9BU1NFUlRJ
T05dJyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvcl9vdXRw
dXQubmFtZSwgJ0Fzc2VydGlvbkVycm9yJyk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSkKQEAgLTI5MCw0MCArMjkwLDQwIEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAw
Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmEx
NkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
NjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocGFyc2VJ
bnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pKSwgMTYwMzAwNjgwMCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0
Y2hlci5fZmV0Y2hBdmFpbGFibGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2Fp
dEZvckludm9jYXRpb25Qcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgn
XG5cblNpZXJyYTE2RDY4XG5TaWVycmExNkQ2OVxuJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4
eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMy
XG5TaWVycmExNkUzM1xuU2llcnJhMTZFMzNoXG5TaWVycmExNkUzNCcpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAg
ICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21t
aXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2ll
cnJhMTZFMzQnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0zMzEsMjkgKzMzMSwyOSBAQCBkZXNjcmli
ZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBmZXRjaFJl
cG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRl
QnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxk
cyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJh
MTZENjhcblNpZXJyYTE2RDY5XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2
RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcydd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2
RTMzXG5TaWVycmExNkUzM2hcblNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0
aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJL
aXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRD
b21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1p
dCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtMzcwLDM0ICszNzAsMzQgQEAgZGVzY3JpYmUo
J09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21t
aXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEw
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5
WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
b3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlcidd
LCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSks
IDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSdd
LCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENv
bW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAz
MDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zy
b209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0
MDAzNDAwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDIzLDQwICs0MjMs
NDAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAz
MDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDAp
OwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5
OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAg
ICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJv
bWlzZSA9IGZldGNoZXIuX2ZldGNoQXZhaWxhYmxlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBd
LnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdl
YktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4
IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdT
aWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsK
ICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFu
b3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKQEAgLTQ2NCwyOSArNDY0LDI5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0
Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVwb3J0QW5kVXBkYXRl
QnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0Zv
clNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRB
bmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQ2OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3Ry
aW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAg
ICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3Ro
ZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1
YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0
cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RTM0J10pOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmVwb3J0QW5kVXBk
YXRlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNTAzLDM0
ICs1MDMsMzQgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAg
ICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYw
MzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2
OTAwKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAx
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1p
dDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0
MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7
CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMw
OTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkQ2OScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIApAQCAtNTU1LDQxICs1NTUsNDEgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVu
Y3Rpb24oKSB7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2
MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgw
MCk7CiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89
MTYwNDA5OTkwMCcpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKIAogICAg
ICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRj
aFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nl
c3Mud2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1sw
XS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0
V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRX
YWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAg
YXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25l
ZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgIGF3YWl0ICBNb2NrU3VicHJvY2Vzcy5y
ZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENv
cmUpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUz
NCddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzNCddKTsKIAogICAgICAgICAgICAgYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9t
aXNlOwogCkBAIC02MDEsNDMgKzYwMSw0MyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IGF3YWl0IGRi
LnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzaCd9KTsKICAg
ICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29t
bWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZFMzQnfSk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTAp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjgubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4
WzBdWyd0ZXN0YWJpbGl0eSddLCAiUGFuaWMiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQxNkQ2OC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXInXSks
IDE2MDMwMDY4MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RDY4WzBdWyd0ZXN0YWJpbGl0eSddLCAiUGFuaWMiKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsndGVzdGFiaWxpdHknXSwgIlNwaW4g
Q1BVIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVsw
XVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsndGVzdGFiaWxpdHknXSwg
IlNwaW4gQ1BVIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
MVswXVsnb3JkZXInXSwgMTYwNDAwMzEwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzFbMF1bJ3Rlc3RhYmlsaXR5J10sICJXZWJLaXQgY3Jhc2hlcyIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMxLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1p
dDE2RTMxWzBdWydvcmRlciddKSwgMTYwNDAwMzEwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3Rlc3RhYmlsaXR5J10sICJXZWJLaXQgY3Jhc2hl
cyIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1b
J29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYw
NDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFsw
XVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0
MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAw
MDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAog
ICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQw
OTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCByZXBvcnQgY29tbWl0cyB3aXRob3V0IG93bmVkLWNvbW1pdHMg
aWYgIm93bmVkQ29tbWl0Q29tbWFuZCIgaXMgbm90IHNwZWNpZmllZCBpbiBjb25maWcnLCBhc3lu
YyAoKSA9PiB7CkBAIC02NTksMjUgKzY1OSwyNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXIn
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3Jl
cG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQw
MDMzMDcsICdyZXBvcnRlZCc6IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
NjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQw
MDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2
MDQwMDMzMDcpOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2Ug
PSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3Qg
ZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0
ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJl
c3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNb
MF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAg
ICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC02OTQs
MzAgKzY5NCwzMCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAg
ICBjb25zdCBvc3hDb21taXQxNkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9y
eSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29t
bWl0MTZENjlbMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9z
eENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9z
eENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJl
c3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10s
IDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
KSwgMTYwNDAwMzQwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVwb3J0
IGNvbW1pdHMgd2l0aGluIHNwZWNpZmllZCByZXZpc2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsK
QEAgLTczOCwyNSArNzM4LDI1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6
IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3Jl
cG9ydGVkJzogdHJ1ZX0pXSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRl
ZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAz
MDA2ODAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2
MDMwMDY4MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQw
MDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7
CiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJv
Y2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRB
bmRVcGRhdGVQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwog
CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZE
eHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNp
ZXJyYUQpKTsKIAogICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxs
IG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3Vs
dCA9IGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTc3MywzMCArNzczLDMw
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
Y29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0IG9z
eENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NS
ZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVsw
XVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZF
MzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZF
MzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjkn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJv
bT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAz
NDAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1cGRhdGUgY29tbWl0cyB3
aXRoaW4gc3BlY2lmaWVkIHJldmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpAQCAtODE3LDI5
ICs4MTcsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZp
c2lvbic6ICdTaWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0
cnVlfSldKTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYw
MzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7
CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0x
NjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAg
ICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaEF2YWlsYWJsZUJ1aWxkc1By
b21pc2UgPSBmZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogCiAgICAgICAgICAgICBh
d2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAg
ICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWls
ZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNo
QXZhaWxhYmxlQnVpbGRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQu
Y29tbWl0c1RvVXBkYXRlLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0LmNvbW1pdHNUb1VwZGF0ZS5sZW5ndGgsIDApOwogICAgICAgICB9KTsKIAogICAg
ICAgICBpdCgnc2hvdWxkIHVzZSAibGFzdC1yZXBvcnRlZCIgb3JkZXIgKyAxIGFzICJtaW5PcmRl
ciInLCBhc3luYyAoKSA9PiB7CkBAIC04NTMsMTUgKzg1MywxNSBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29t
bWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZEMTAwJywgJ29y
ZGVyJzogMTYwMzAxMDAwMCwgJ3JlcG9ydGVkJzogdHJ1ZX0pOwogCiAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZEMTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDAn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSksIDE2MDMwMTAwMDApOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigp
OwogICAgICAgICAgICAgY29uc3QgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRj
aFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9
IGF3YWl0IGZldGNoQW5kUmVwb3J0UHJvbWlzZTsKQEAgLTg3NiwxOSArODc2LDE5IEBAIGRlc2Ny
aWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0MTZENjkgPSByZXN1bHRzWzJdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZE
MTAwYSA9IHJlc3VsdHNbM107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9y
eS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBv
c2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQ2OS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RDY5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQxMDBhLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZE
MTAwYVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZEMTAwYVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwYS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDEw
MGFbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAxKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAw
YScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDEwMDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwYScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddKSwgMTYwMzAxMDAwMSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
dXNlIG1pblJldmlzaW9uIGluIHRoZSBjb25maWcgaWYgdGhlcmUgaXMgbm8gY29tbWl0JywgYXN5
bmMgKCkgPT4gewpAQCAtOTAxLDEzICs5MDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVy
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmll
cycsIHsnaWQnOiAxMCwgJ25hbWUnOiAnT1NYJ30pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NY
L2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNz
LndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVw
ZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAg
ICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAg
IGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQp
KTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9t
aXNlOwpAQCAtOTI0LDIzICs5MjQsMjMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDAgPSByZXN1bHRzWzNd
OwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAxID0gcmVzdWx0c1s0XTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMC5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsncmVwb3NpdG9yeSddLCAxMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwWzBdWydvcmRlciddLCAx
NjAzMDEwMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQx
MDAubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkQxMDBbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSksIDE2MDMwMTAwMDApOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDFbMF1bJ29yZGVy
J10sIDE2MDMwMTAxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RDEwMS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RDEwMVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddKSwgMTYwMzAxMDEw
MCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0
bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDEwMTAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZEMTAxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAwKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzdG9wIHJlcG9ydGluZyBpZiBhbnkgY3VzdG9t
IGNvbW1hbmQgZmFpbHMnLCAoKSA9PiB7CkBAIC05NjMsNjAgKzk2Myw2MCBAQCBkZXNjcmliZSgn
T1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5
OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZENjgnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RDY4Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
T1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgICAgIGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0
Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZv
ckludm9jYXRpb25Qcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4
eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAn
U2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIE1vY2tTdWJwcm9j
ZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRo
V2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5k
V2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZF
eHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNP
Ti5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktp
dCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10p
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlamVjdCgnQ29tbWFuZCBmYWlsZWQn
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hBbmRSZXBvcnRQcm9taXNlLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxlZCcpOworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0LCAnQ29tbWFuZCBmYWls
ZWQnKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkw
MCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZENjgnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RDY4Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NY
L2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwg
MTYwNDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkK
ICAgICB9KQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9u
LXRlc3RzLmpzCmluZGV4IDcxYTFkNTM5ZWI2MmZlZjJhZWI3Y2UwYzE5NjQwYjE2NGMyZmNmMTAu
LjY5YTkxZjVlNjExMzA2ZWFkYjhmMjEyN2I4OGQwNWRlYWI5NWIxMGIgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKQEAgLTE0NSw4
ICsxNDUsOCBAQCBjb25zdCBjb25maWdXaXRoVHdvVGVzdGVycyA9IHsKIAogZnVuY3Rpb24gYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRlbnRUb1Jlc29s
dmUpCiB7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9kLCBtZXRob2QpOwotICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdC5tZXRob2QsIG1ldGhvZCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QudXJs
LCB1cmwpOwogICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50VG9SZXNvbHZlKTsKIH0KIApAQCAt
MjY1LDIzICsyNjUsMjMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVl
c3RJZDogc2Vjb25kVGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRl
c3RlcicpLCBidWlsZFJlcXVlc3RJZDogZmlyc3RUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0p
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdhbm90aGVyIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAn
YnVpbGRzJzogWwogICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRh
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1
aWxkUmVxdWVzdElkOiBzZWNvbmRUZXN0R3JvdXBGaXJzdEJ1aWxkUmVxdWVzdH0pLApAQCAtMjky
LDQ1ICsyOTIsNDUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2soYW5vdGhlclRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCkpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDQsMzYgKzM0NCwz
NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBj
b25zdCB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgIGxldCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAg
ICBsZXQgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgbGV0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgbGV0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTM4MSwzMiArMzgxLDMyIEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAn
T0snKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzog
JzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcv
YXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxk
LXdrJzogdHJ1ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1hYi1idWlsZHMnfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEs
IGJ1aWxkTnVtYmVyOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0J1aWxk
aW5nIFdlYktpdCd9KSk7CkBAIC00MTUsMzkgKzQxNSwzOSBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBsZXQgdGVzdEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0J1aWxkaW5nIFdlYktp
dCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwpAQCAtNDU2LDI2ICs0NTYsMjYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7
CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVu
bmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVp
bGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0
YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CiAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2NyaXB0aW9u
OiAnQ29tcGlsaW5nIFdURid9KSk7CkBAIC00ODQsODAgKzQ4NCw4MCBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdD
b21waWxpbmcgV1RGJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAg
ICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0g
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICBhd2Fp
dCB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCBmaXJzdEJ1aWxkTnVtYmVyKTsKKyAgICAg
ICAgYXdhaXQgdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIGZpcnN0QnVp
bGROdW1iZXIpOwogCiAgICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgJ0NvbXBpbGluZyBXVEYnKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAg
ICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwogICAgICAgICBsZXQgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtNTY2LDMyICs1NjYsMzIgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAg
ICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURG
b3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJz
dEJ1aWxkTnVtYmVyfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVj
a2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgJ2J1aWxkcyc6
IFsKQEAgLTYwMyw4MyArNjAzLDgzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogCiAgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RC
dWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAg
ICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5u
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51
bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKLSAgICAgICAgYXdh
aXQgdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICBhd2Fp
dCB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogCiAg
ICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAg
ICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0
QnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3Qg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAg
ICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVp
bGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CiAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3Qg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJX
ZWJraXRSb290XSk7CiAgICAgfSk7CiAKQEAgLTY5NCwzNCArNjk0LDM0IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXAp
ID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAt
NzI5LDMyICs3MjksMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwg
J1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAn
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAg
ICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9h
cGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQt
d2snOiB0cnVlLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLWFiLWJ1aWxkcyd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
KSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAx
fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURG
b3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC03NjMsNzYg
Kzc2Myw3NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9y
VGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1
bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1
ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChi
dWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2gg
PSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC04NDEsMzIgKzg0MSwz
MiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Ml0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAg
ICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVy
SURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92
Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3dr
JzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1
ZX19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVp
bGRzJzogWwpAQCAtODc4LDgwICs4NzgsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5u
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQo
KSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0g
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0
KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAg
ICB9KTsKQEAgLTk2NywzNCArOTY3LDM0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAg
IHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtMTAwMiwzMiArMTAwMiwzMiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2sn
OiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxl
LzEuZGF0JyksICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwg
J3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVp
bGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyks
IGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBN
b2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDF9KSk7CkBAIC0xMDM2LDc2ICsxMDM2LDc2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4g
dXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1
cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29t
bWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKQEAgLTExMTQsMzIgKzExMTQsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxk
ZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAy
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycs
ICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7
J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6
CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcy
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWls
ZC13aycsICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0n
fX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWls
ZHMnOiBbCkBAIC0xMTUxLDgwICsxMTUxLDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0Lmlk
KCksIDEyNCk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1
aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91
cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9
IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0
KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0xMjQxLDIyICsxMjQxLDIyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAg
ICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LmlkKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
aWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJC
dWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KDEsIDQ1KTsK
QEAgLTEyNjUsMzkgKzEyNjUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogCiAgICAgICAg
ICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKICAgICAgICAgICAgIGNvbnN0IHJvb3RzID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvb3RzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm9vdHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGZpcnN0Um9vdCA9IHJvb3RzWzBdOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ1LmRhdCcpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyUm9v
dHMgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlclJvb3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlclJvb3RzWzBdLmZpbGVuYW1lKCksICdyb290NDYuZGF0Jyk7CiAg
ICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigo
KSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAg
ICAnYnVpbGRzJzogWwpAQCAtMTMwNywxMyArMTMwNywxMyBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi10
ZXN0cycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5k
YXRhLCB7J2lkJzogJzMnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CiAgICAgICAgICAgICAgICAgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2
MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICczJywnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
dGVzdHMnLCAncm9vdHMnOiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290LnVybCgpfV0p
fX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIFsK
ICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwK
ICAgICAgICAgICAgIF0pOwpAQCAtMTMyMSw3ICsxMzIxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTM0MywzNiArMTM0MywzNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuaWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW01vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKSwgdXBsb2FkUm9vdCgxLCAxMjMp
XSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRz
JzogWwpAQCAtMTM4MywxMyArMTM4MywxMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA5KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRz
JzogWwpAQCAtMTQwMSwyNCArMTQwMSwyNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKIAogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwg
MSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMDAyKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEwMDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQzMiw0OSArMTQzMiw0OSBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBjcmVh
dGVUZXN0R3JvdXBXaXRoUGF0Y2goKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7
CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
aWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnb3RoZXIgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IDMxMn0pKTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA5KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicsIDIpLApAQCAtMTQ4MywyOCArMTQ4MywyOCBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXFldXN0cyA9
IHRlc3RHcm91cHNbMF0uYnVpbGRSZXF1ZXN0cygpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxZXVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0
c1swXS5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1sw
XS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXFldXN0c1swXS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhlciBidWls
ZGVyJywgMzEyKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
ZXVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnb3RoZXIgYnVpbGRlcicsIDMxMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxZXVzdHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxZXVzdHNbMV0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXFldXN0c1sxXS5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFl
dXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXFldXN0c1sxXS5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ0ZhaWxl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
ZXVzdHNbMV0uYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gYXNzZXJ0
VGVzdEJ1aWxkSGFzRmFpbGVkKHJlcXVlc3QpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0KCFyZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGFzc2VydFRlc3RCdWlsZEhhc0ZhaWxlZChidWlsZFJlcWV1
c3RzWzJdKTsKQEAgLTE1MjQsMzYgKzE1MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlk
KCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOwpAQCAtMTU2MSwzMiArMTU2MSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1h
Yi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNb
Nl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQt
Y29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9z
aXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAg
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRl
cicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTE1OTUsODUgKzE1OTUsODUgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25z
dCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0
b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEy
MykudGhlbigoKSA9PiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMsIFt7b3duZXJS
ZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0s
ICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRS
b290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKS50aGVuKCgpID0+IHVwbG9hZFJv
b3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAn
V2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEw
VDAyOjU0OjA5LjY2NicpKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
LndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9
IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0
KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwpAQCAtMTY4MiwzMiArMTY4MiwzMiBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIn
KSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
YWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVk
LWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBv
c2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6
IFsKQEAgLTE3MTksOTUgKzE3MTksOTUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRS
b290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1
bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1
cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpLnRoZW4oKCkgPT4gdXBs
b2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAn
V2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEw
VDAyOjU0OjA5LjY2NicpKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChwYXJz
ZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dl
YktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQw
Mjo1NDowOS42NjYnKSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53
ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAg
ICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IG90aGVySlNDUm9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckpTQ1Jvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVySlNDUm9vdC5maWxl
bmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRS
b290LCBvdGhlckpTQ1Jvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xODI0LDM2ICsx
ODI0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTE4NjEsMzIg
KzE4NjEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1Qn
LCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdq
c29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAg
ICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7
InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUi
LCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1
aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIp
LAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9
KSk7CkBAIC0xODk1LDEyNiArMTg5NSwxMjYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0
dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1
cm4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAg
ICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
b3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAg
ICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRS
b290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywg
b3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5
LjY2NicpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0LmlkKCkpLCAxMjMsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0
b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qg
anNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSgob3duZWRKU0MpKTsKICAgICAg
ICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMu
ZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAgLTIw
MjMsMzIgKzIwMjMsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIp
LAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAx
fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQ
T1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzIn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAg
ICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0
IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRD
b3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0yMDYwLDE0MSArMjA2
MCwxNDEgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAg
ICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
b3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAg
ICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NS
b290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAg
IGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhl
ckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qo
cGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAg
ICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NS
ZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3Qg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChq
c2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJv
b3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQsIFt7b3duZXJSZXBv
c2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcy
MDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qo
cGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6
ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUt
MTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0
YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2Vy
dCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAg
ICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAg
ICAgICAgIGNvbnN0IG90aGVySlNDUm9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckpTQ1Jvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVySlNDUm9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJr
aXRSb290LCBvdGhlckpTQ1Jvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwppbmRl
eCAzMGJkMjVmMGFjZDAxN2U0NWY4YTgwODFmY2VlMWI4ZDA5N2Y2ODgxLi41MmNiMWVjMjQzYjlm
MTY1ZGY3ZGM3ZDY5MGU0MDdhMDgwOWVlODRhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTEyLDcgKzEyLDcgQEAg
Y2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKIAogICAgIGluaXRpYWxpemUoc3luY2VyLCByYXdE
YXRhKQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwgcmF3
RGF0YVsnYnVpbGRlcmlkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
c3luY2VyLmJ1aWxkZXJJRCgpKSwgcGFyc2VJbnQocmF3RGF0YVsnYnVpbGRlcmlkJ10pKTsKIAog
ICAgICAgICB0aGlzLl9zeW5jZXIgPSBzeW5jZXI7CiAgICAgICAgIHRoaXMuX2J1aWxkYm90QnVp
bGRSZXF1ZXN0SWQgPSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddOwpAQCAtNDEsNyArNDEsNyBA
QCBjbGFzcyBCdWlsZGJvdEJ1aWxkRW50cnkgewogCiAgICAgYnVpbGRSZXF1ZXN0U3RhdHVzSWZV
cGRhdGVJc05lZWRlZChyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3QuaWQoKSwgdGhpcy5fYnVpbGRSZXF1ZXN0SWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdC5pZCgpLCB0aGlzLl9idWlsZFJlcXVlc3RJZCk7CiAgICAgICAgIGlmICghcmVx
dWVzdCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICBpZiAodGhpcy5pc1BlbmRp
bmcoKSkgewpAQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAg
ICAgbGV0IHByb3BlcnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KG5ld1Jl
cXVlc3QsIHJlcXVlc3RzSW5Hcm91cCk7CiAKICAgICAgICAgYXNzZXJ0KHByb3BlcnRpZXNbJ2Zv
cmNlc2NoZWR1bGVyJ10sIGBmb3JjZXNjaGVkdWxlciB3YXMgbm90IHNwZWNpZmllZCBpbiBidWls
ZGJvdCBwcm9wZXJ0aWVzIGZvciBidWlsZCByZXF1ZXN0ICR7bmV3UmVxdWVzdC5pZCgpfSBvbiBw
bGF0Zm9ybSAiJHtuZXdSZXF1ZXN0LnBsYXRmb3JtKCkubmFtZSgpfSIgZm9yIGJ1aWxkZXIgIiR7
dGhpcy5idWlsZGVyTmFtZSgpfSJgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKCF0aGlzLl9zbGF2
ZVByb3BlcnR5TmFtZSwgIXNsYXZlTmFtZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgh
dGhpcy5fc2xhdmVQcm9wZXJ0eU5hbWUsICFzbGF2ZU5hbWUpOwogICAgICAgICBpZiAodGhpcy5f
c2xhdmVQcm9wZXJ0eU5hbWUpCiAgICAgICAgICAgICBwcm9wZXJ0aWVzW3RoaXMuX3NsYXZlUHJv
cGVydHlOYW1lXSA9IHNsYXZlTmFtZTsKIApAQCAtMzM3LDcgKzMzNyw3IEBAIGNsYXNzIEJ1aWxk
Ym90U3luY2VyIHsKIAogICAgICAgICBhc3NlcnQoY29uZmlnLmJ1aWxkUmVxdWVzdEFyZ3VtZW50
LCAnYnVpbGRSZXF1ZXN0QXJndW1lbnQgbXVzdCBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBwcm9w
ZXJ0eSB1c2VkIHRvIHN0b3JlIHRoZSBidWlsZCByZXF1ZXN0IElEJyk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHR5cGVvZihjb25maWcucmVwb3NpdG9yeUdyb3VwcyksICdvYmplY3QnLCAncmVw
b3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8g
aXRzIGRlZmluaXRpb24nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihjb25m
aWcucmVwb3NpdG9yeUdyb3VwcyksICdvYmplY3QnLCAncmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNw
ZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24nKTsKIAog
ICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0ge307CiAgICAgICAgIGZvciAoY29uc3Qg
bmFtZSBpbiBjb25maWcucmVwb3NpdG9yeUdyb3VwcykKQEAgLTQxNiw3ICs0MTYsNyBAQCBjbGFz
cyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICBzdGF0aWMgX3BhcnNlUmVwb3NpdG9yeUdyb3VwKG5h
bWUsIGdyb3VwKQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC5yZXBv
c2l0b3JpZXMpLCAnb2JqZWN0JywKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihn
cm91cC5yZXBvc2l0b3JpZXMpLCAnb2JqZWN0JywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdy
b3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3Jp
ZXNgKTsKICAgICAgICAgYXNzZXJ0KCEoJ2Rlc2NyaXB0aW9uJyBpbiBncm91cCkgfHwgdHlwZW9m
KGdyb3VwWydkZXNjcmlwdGlvbiddKSA9PSAnc3RyaW5nJywKICAgICAgICAgICAgIGBSZXBvc2l0
b3J5IGdyb3VwICIke25hbWV9IiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb25gKTsKQEAgLTQz
MSw3ICs0MzEsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUocmVwb3NpdG9yeU5hbWUp
OwogICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnksIGAiJHtyZXBvc2l0b3J5TmFtZX0iIGlz
IG5vdCBhIHZhbGlkIHJlcG9zaXRvcnkgbmFtZWApOwogICAgICAgICAgICAgcmVwb3NpdG9yeUJ5
TmFtZVtyZXBvc2l0b3J5TmFtZV0gPSByZXBvc2l0b3J5OwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHR5cGVvZihvcHRpb25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNp
ZmllcyBhIG5vbi1kaWN0aW9uYXJ5IHZhbHVlYCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHlwZW9mKG9wdGlvbnMpLCAnb2JqZWN0JywgYCIke3JlcG9zaXRvcnlOYW1lfSIgc3Bl
Y2lmaWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWVgKTsKICAgICAgICAgICAgIGFzc2VydChbdW5k
ZWZpbmVkLCB0cnVlLCBmYWxzZV0uaW5jbHVkZXMob3B0aW9ucy5hY2NlcHRzUGF0Y2gpLAogICAg
ICAgICAgICAgICAgIGAiJHtyZXBvc2l0b3J5TmFtZX0iIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0
c1BhdGNoIHZhbHVlOiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuYWNjZXB0c1BhdGNoKX1gKTsK
ICAgICAgICAgICAgIGlmIChvcHRpb25zLmFjY2VwdHNQYXRjaCkKQEAgLTQ0MSw3ICs0NDEsNyBA
QCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0KICAgICAgICAgYXNzZXJ0KHBhcnNl
ZFJlcG9zaXRvcnlMaXN0Lmxlbmd0aCwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMg
bm90IHNwZWNpZnkgYW55IHJlcG9zaXRvcnlgKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodHlw
ZW9mKGdyb3VwLnRlc3RQcm9wZXJ0aWVzKSwgJ29iamVjdCcsIGBSZXBvc2l0b3J5IGdyb3VwICIk
e25hbWV9IiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlk
IHR5cGVgKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihncm91cC50ZXN0UHJv
cGVydGllcyksICdvYmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVz
IHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7CiAKICAgICAg
ICAgY29uc3QgcmVzb2x2ZVJlcG9zaXRvcnkgPSAocmVwb3NpdG9yeU5hbWUpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlOYW1l
XTsKQEAgLTQ3MCw3ICs0NzAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0p
OwogICAgICAgICBhc3NlcnQoIWdyb3VwLmFjY2VwdHNSb290cyA9PSAhc3BlY2lmaWVzUm9vdHMs
CiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgYWNjZXB0cyByb290cyBi
dXQgZG9lcyBub3Qgc3BlY2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllc2ApOwotICAgICAgICBh
c3NlcnQuZXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9yaWVz
LnNpemUsCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWRSZXBvc2l0b3J5TGlzdC5s
ZW5ndGgsIHRlc3RSZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdy
b3VwICIke25hbWV9IiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3Rl
ZCBpbiB0ZXN0aW5nYCk7CiAKICAgICAgICAgbGV0IGJ1aWxkUHJvcGVydGllc1RlbXBsYXRlID0g
bnVsbDsKQEAgLTUwNCw3ICs1MDQsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAg
ICAgICBhc3NlcnQocGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplIHx8IGhhc093bmVk
UmV2aXNpb25zLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSBwcm9w
ZXJ0aWVzIGZvciBidWlsZGluZyBidXQgZG9lcyBub3QgYWNjZXB0IGFueSBwYXRjaGVzIG9yIG5l
ZWQgdG8gYnVpbGQgb3duZWQgY29tcG9uZW50c2ApOwogICAgICAgICAgICAgZm9yIChjb25zdCBy
ZXBvc2l0b3J5IG9mIHBhdGNoUmVwb3NpdG9yaWVzKQogICAgICAgICAgICAgICAgIGFzc2VydChy
ZXZpc2lvblJlcG9zaXRvcmllcy5oYXMocmVwb3NpdG9yeSksIGBSZXBvc2l0b3J5IGdyb3VwICIk
e25hbWV9IiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgIiR7cmVwb3NpdG9yeS5uYW1lKCl9IiBidXQg
ZG9lcyBub3Qgc3BlY2lmeSBhIHJldmlzaW9uYCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplLCBwYXRjaFJlcG9zaXRvcmllcy5zaXpl
LAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9y
eUxpc3Quc2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgICAgICBgUmVw
b3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRv
cmllcyBsaXN0ZWQgaW4gYnVpbGRpbmcgYSBwYXRjaGApOwogICAgICAgICB9CiAKQEAgLTU2NCwx
MiArNTY0LDEyIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgICAgICAgICAgc3dpdGNo
IChuYW1lKSB7CiAgICAgICAgICAgICBjYXNlICdwcm9wZXJ0aWVzJzogLy8gRmFsbHRocm91Z2gK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdC
dWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnknKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdCdWlsZCBwcm9w
ZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnknKTsKICAgICAgICAgICAgICAgICBpZiAoIWNv
bmZpZ1sncHJvcGVydGllcyddKQogICAgICAgICAgICAgICAgICAgICBjb25maWdbJ3Byb3BlcnRp
ZXMnXSA9IHt9OwogICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjb25maWdbJ3By
b3BlcnRpZXMnXTsKICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdmFsdWUpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSksICdz
dHJpbmcnLCBgQnVpbGQgcHJvcGVydGllcyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0cmlu
ZyB2YWx1ZSBvZiB0eXBlICIke3R5cGVvZih2YWx1ZSl9ImApOworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0cmluZycsIGBCdWls
ZCBwcm9wZXJ0aWVzICIke25hbWV9IiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5
cGUgIiR7dHlwZW9mKHZhbHVlKX0iYCk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNb
bmFtZV0gPSB2YWx1ZVtuYW1lXTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC01ODAsNyArNTgwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAg
ICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlLnNsaWNlKCk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlICdidWlsZGVyJzogLy8gRmFsbHRocm91Z2gKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9
IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlwZWApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0eXBlb2YodmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9mIHN0
cmluZyB0eXBlYCk7CiAgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdidWlsZGVySUQnOgpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJh
YmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdn
ZXJhYmxlLmpzCmluZGV4IDQwZGUwYTU2OTdjODdjZWIwOTgzNTg3MmQ3ZTJlMDg1MzM5YmIzYzMu
LjI5YzFlNTA4Y2ZlZDY1NjRjNWMyMzlmMDYwNTk4NGU4ZTQxOTZmMzIgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFzc2Vy
dCh0cmlnZ2VyYWJsZSBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlLCAnTXVzdCBzcGVjaWZ5IGEgdmFs
aWQgdHJpZ2dlcmFibGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5u
YW1lKCksIHRoaXMuX25hbWUsICdNdXN0IHNwZWNpZnkgdGhlIHRyaWdnZXJhYmxlIG9mIHRoaXMg
c3luY2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFt
ZSgpLCB0aGlzLl9uYW1lLCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5
bmNlcicpOwogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdC5yZXBv
c2l0b3J5R3JvdXAoKTsKICAgICAgICAgICAgIGlmICghcmVwb3NpdG9yeUdyb3VwKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKGBCdWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5p
ZCgpfSBkb2VzIG5vdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSBncm91cC4gU3VjaCBhIGJ1aWxkIHJl
cXVlc3QgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC5gKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKaW5kZXggYWNmMDQ5ZDM4
OGZjNjc3YWZhMDg0ODg4MDYxNWRhNjFjYzFjZWUzOS4uMjY0MjU1MmRlY2YzMDFmYWE1NDA0NDQ3
ZDhkOTNkZDQwYzRhNzA1OCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKQEAgLTEsNCArMSw2IEBACisndXNlIHN0cmlj
dCc7CiAKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogY29uc3QgTWFya3VwRG9j
dW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogICAgIGNvbnN0cnVjdG9yKCkKICAg
ICB7CkBAIC0yNyw3ICsyOSw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3IGNsYXNzIE1h
cmt1cERvY3VtZW50IHsKIAogICAgIF9pZEZvckNsb25lKG9yaWdpbmFsKQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQob3JpZ2luYWwgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKKyAgICAg
ICAgYXNzZXJ0Lm9rKG9yaWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAgICAgICAgIHJl
dHVybiB0aGlzLl9ub2RlSWQrKzsKICAgICB9CiAKQEAgLTM4LDcgKzQwLDcgQEAgY29uc3QgTWFy
a3VwRG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogCiAgICAgbWFya3VwKG5v
ZGUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChub2RlIGluc3RhbmNlb2YgTWFya3Vw
Tm9kZSk7CisgICAgICAgIGFzc2VydC5vayhub2RlIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAg
ICAgICAgIHJldHVybiBub2RlLl9tYXJrdXAoKTsKICAgICB9CiAKQEAgLTU2LDcgKzU4LDcgQEAg
Y29uc3QgTWFya3VwRG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogY2xhc3Mg
TWFya3VwTm9kZSB7CiAgICAgY29uc3RydWN0b3IoaWQpCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydCh0eXBlb2YoaWQpID09ICdudW1iZXInKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHR5cGVv
ZihpZCkgPT0gJ251bWJlcicpOwogICAgICAgICB0aGlzLl9pZCA9IGlkOwogICAgICAgICB0aGlz
Ll9wYXJlbnROb2RlID0gbnVsbDsKICAgICB9CkBAIC03Myw5ICs3NSw5IEBAIGNsYXNzIE1hcmt1
cE5vZGUgewogCiAgICAgX2Nsb25lTm9kZURhdGEoY2xvbmVkTm9kZSkKICAgICB7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHR5cGVvZihjbG9uZWROb2RlLl9pZCkgPT0gJ251bWJlcicpOwotICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGNsb25lZE5vZGUuX3BhcmVudE5vZGUgPT0gbnVsbCk7CisgICAgICAg
IGFzc2VydC5vayh0eXBlb2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKKyAgICAgICAg
YXNzZXJ0Lm9rKHRoaXMuX2lkICE9IGNsb25lZE5vZGUuX2lkKTsKKyAgICAgICAgYXNzZXJ0Lm9r
KGNsb25lZE5vZGUuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAgICAgfQogCiAgICAgcmVtb3ZlKCkK
QEAgLTExMyw3ICsxMTUsNyBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFya3Vw
Tm9kZSB7CiAgICAgICAgIGlmIChjaGlsZC5fcGFyZW50Tm9kZSkKICAgICAgICAgICAgIGNoaWxk
LnJlbW92ZSgpOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNoaWxkLl9wYXJlbnROb2RlID09
IG51bGwpOworICAgICAgICBhc3NlcnQub2soY2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAg
ICAgICAgIHRoaXMuX2NoaWxkTm9kZXMucHVzaChjaGlsZCk7CiAgICAgICAgIGNoaWxkLl9wYXJl
bnROb2RlID0gdGhpczsKICAgICB9CkBAIC0xMjMsNyArMTI1LDcgQEAgY2xhc3MgTWFya3VwUGFy
ZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewogICAgICAgICBpZiAoY2hpbGQuX3BhcmVudE5v
ZGUgIT0gdGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29uc3QgaW5kZXggPSB0
aGlzLl9jaGlsZE5vZGVzLmluZGV4T2YoY2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChp
bmRleCA+PSAwKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0aGlz
Ll9jaGlsZE5vZGVzLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgIGNoaWxkLl9wYXJlbnROb2Rl
ID0gbnVsbDsKICAgICB9CkBAIC0xNDIsMTAgKzE0NCwxMCBAQCBjbGFzcyBNYXJrdXBQYXJlbnRO
b2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiAKICAgICAgICAgaWYgKG5ld0NoaWxkLl9wYXJlbnRO
b2RlKQogICAgICAgICAgICAgbmV3Q2hpbGQucmVtb3ZlKCk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KG5ld0NoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQub2sobmV3
Q2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAKICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlz
Ll9jaGlsZE5vZGVzLmluZGV4T2Yob2xkQ2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChp
bmRleCA+PSAwKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0aGlz
Ll9jaGlsZE5vZGVzLnNwbGljZShpbmRleCwgMSwgbmV3Q2hpbGQpOwogICAgICAgICBvbGRDaGls
ZC5fcGFyZW50Tm9kZSA9IG51bGw7CiAgICAgICAgIG5ld0NoaWxkLl9wYXJlbnROb2RlID0gdGhp
czsKQEAgLTE1NSw4ICsxNTcsOCBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFy
a3VwTm9kZSB7CiBjbGFzcyBNYXJrdXBDb250ZW50Um9vdCBleHRlbmRzIE1hcmt1cFBhcmVudE5v
ZGUgewogICAgIGNvbnN0cnVjdG9yKGlkLCBob3N0KQogICAgIHsKLSAgICAgICAgY29uc29sZS5h
c3NlcnQoaG9zdCBpbnN0YW5jZW9mIE1hcmt1cEVsZW1lbnQpOwotICAgICAgICBjb25zb2xlLmFz
c2VydChob3N0Ll9jb250ZW50Um9vdCA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3Qg
aW5zdGFuY2VvZiBNYXJrdXBFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3QuX2NvbnRl
bnRSb290ID09IG51bGwpOwogICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2hvc3RF
bGVtZW50ID0gbnVsbDsKICAgICAgICAgaG9zdC5fY29udGVudFJvb3QgPSB0aGlzOwpAQCAtMTc1
LDcgKzE3Nyw3IEBAIGNsYXNzIE1hcmt1cEVsZW1lbnQgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2Rl
IHsKICAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSkKICAgICB7CiAgICAgICAgIHN1cGVyKGlkKTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mKG5hbWUpID09ICdzdHJpbmcnKTsKKyAgICAg
ICAgYXNzZXJ0Lm9rKHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgIHRoaXMuX25h
bWUgPSBuYW1lOwogICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gbmV3IE1hcDsKICAgICAgICAg
dGhpcy5fdmFsdWUgPSBudWxsOwpAQCAtMzY0LDcgKzM2Niw3IEBAIGNsYXNzIE1hcmt1cENvbXBv
bmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKICAgICAgICAgc3VwZXIoKTsK
ICAgICAgICAgdGhpcy5fbmFtZSA9IGNvbXBvbmVudHNCeUNsYXNzLmdldChuZXcudGFyZ2V0KTsK
ICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbXBvbmVudCwgYENvbXBvbmVudCAiJHt0aGlzLl9u
YW1lfSIgaGFzIG5vdCBiZWVuIGRlZmluZWRgKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGNvbXBvbmVu
dCwgYENvbXBvbmVudCAiJHt0aGlzLl9uYW1lfSIgaGFzIG5vdCBiZWVuIGRlZmluZWRgKTsKICAg
ICAgICAgdGhpcy5fY29tcG9uZW50SWQgPSBjb21wb25lbnQuaWQ7CiAgICAgICAgIHRoaXMuX2Vs
ZW1lbnQgPSBudWxsOwogICAgICAgICB0aGlzLl9jb250ZW50Um9vdCA9IG51bGw7CkBAIC00MTIs
NyArNDE0LDcgQEAgY2xhc3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBv
bmVudEJhc2UgewogCiAgICAgc3RhdGljIHJ1blJlbmRlckxvb3AoKQogICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoIWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFz
c2VydC5vayghY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKICAgICAgICAgZG8gewogICAg
ICAgICAgICAgY29uc3QgY3VycmVudFNldCA9IFsuLi5jb21wb25lbnRzVG9SZW5kZXJdOwogICAg
ICAgICAgICAgY29tcG9uZW50c1RvUmVuZGVyLmNsZWFyKCk7CkBAIC00MjksMTQgKzQzMSwxNCBA
QCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7
CiAKICAgICByZW5kZXJSZXBsYWNlKHBhcmVudE5vZGUsIGNvbnRlbnQpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJlbnRO
b2RlKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9PSB0
aGlzKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJl
bnROb2RlKTsKICAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAgICAg
ICBpZiAoY29udGVudCkgewogICAgICAgICAgICAgTWFya3VwQ29tcG9uZW50QmFzZS5fYWRkQ29u
dGVudFRvRWxlbWVudChwYXJlbnROb2RlLCBjb250ZW50KTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tcG9uZW50ID0gY29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7Ci0gICAgICAgICAgICBj
b25zb2xlLmFzc2VydChjb21wb25lbnQpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbXBvbmVu
dCk7CiAgICAgICAgICAgICB0aGlzLl9hcHBseVN0eWxlT3ZlcnJpZGVzKHBhcmVudE5vZGUsIGNv
bXBvbmVudC5zdHlsZU92ZXJyaWRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ5Myw3ICs0OTUs
NyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFz
ZSB7CiAKICAgICBzdGF0aWMgcmVzZXQoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
IWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFzc2VydC5vayghY3VycmVu
dGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKICAgICAgICAgTWFya3VwRG9jdW1lbnQucmVzZXQoKTsK
ICAgICAgICAgY29tcG9uZW50c01hcC5jbGVhcigpOwogICAgICAgICBjb21wb25lbnRzQnlDbGFz
cy5jbGVhcigpOwpAQCAtNTY3LDkgKzU2OSw5IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2Ug
ZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKIAogICAgIHN0YXRpYyBkZWZpbmVFbGVtZW50
KG5hbWUsIGNvbXBvbmVudENsYXNzKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWNv
bXBvbmVudHNNYXAuZ2V0KG5hbWUpLCBgVGhlIGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFscmVh
ZHkgYmVlbiBkZWZpbmVkYCk7CisgICAgICAgIGFzc2VydC5vayghY29tcG9uZW50c01hcC5nZXQo
bmFtZSksIGBUaGUgY29tcG9uZW50ICIke25hbWV9IiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWRg
KTsKICAgICAgICAgY29uc3QgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcyA9IGNvbXBvbmVudHNC
eUNsYXNzLmdldChjb21wb25lbnRDbGFzcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFleGlz
dGluZ0NvbXBvbmVudEZvckNsYXNzLCBleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzCisgICAgICAg
IGFzc2VydC5vayghZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25lbnRG
b3JDbGFzcwogICAgICAgICAgICAgPyBgVGhlIGNvbXBvbmVudCBjbGFzcyAiJHtleGlzdGluZ0Nv
bXBvbmVudEZvckNsYXNzfSIgaGFzIGFscmVhZHkgYmVlbiB1c2VkIHRvIGRlZmluZSBhbm90aGVy
IGNvbXBvbmVudCAiJHtleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzLm5hbWV9ImAgOiAnJyk7CiAg
ICAgICAgIGNvbXBvbmVudHNNYXAuc2V0KG5hbWUsIHsKICAgICAgICAgICAgIGNsYXNzOiBjb21w
b25lbnRDbGFzcywKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9vcy1idWlsZC1mZXRjaGVyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L29zLWJ1aWxkLWZldGNoZXIuanMKaW5kZXggOTkzNDA3OWQ2YjNhYTQ5ZDg3ZWU0M2RhNTk1MWE3
ZGMxMDJjMDlmYy4uMmQ2ZjUwYTk1NzMwZGNkNjZjNDc0NTgzMWJiOGViN2ViN2YyM2E2YiAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNo
ZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZl
dGNoZXIuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBjbGFzcyBPU0J1aWxkRmV0Y2hlciB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgR290ICR7T2JqZWN0LmtleXMoKG93bmVkQ29t
bWl0cykpLmxlbmd0aH0gb3duZWQgY29tbWl0cyBmb3IgIiR7Y29tbWl0WydyZXZpc2lvbiddfSJg
KTsKICAgICAgICAgICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5TmFtZSBpbiBvd25lZENvbW1p
dHMpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3duZWRDb21taXQgPSBvd25lZENvbW1p
dHNbcmVwb3NpdG9yeU5hbWVdOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE9iamVjdC5rZXlzKG93bmVkQ29tbWl0KSwgWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhvd25lZENvbW1pdCksIFsn
cmV2aXNpb24nXSk7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2Yob3duZWRDb21t
aXRbJ3JldmlzaW9uJ10pID09ICdzdHJpbmcnKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgY29tbWl0Wydvd25lZENvbW1pdHMnXSA9IG93bmVkQ29tbWl0czsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCmluZGV4IGFmNmFhMzY4ZWY1MGJi
ODc4MzE3NjdmNmFiNzU2MzFjMjgxZGUwYzcuLjQ3NzM3NjY2MDY2MGI4MDZkNDExMTk5MjA3Zjk0
MjhkY2E0NDcyNjAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9yZW1vdGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90
ZS5qcwpAQCAtMzEsMTQgKzMxLDE0IEBAIGNsYXNzIE5vZGVSZW1vdGVBUEkgZXh0ZW5kcyBDb21t
b25SZW1vdGVBUEkgewogICAgIGNvbmZpZ3VyZShzZXJ2ZXIpCiAgICAgewogICAgICAgICBhc3Nl
cnQoc2VydmVyLnNjaGVtZSA9PT0gJ2h0dHAnIHx8IHNlcnZlci5zY2hlbWUgPT09ICdodHRwcycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycsICdo
b3N0IHNob3VsZCBiZSBhIHN0cmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlw
ZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycsICdob3N0IHNob3VsZCBiZSBhIHN0cmluZycpOwog
ICAgICAgICBhc3NlcnQoIXNlcnZlci5wb3J0IHx8IHR5cGVvZihzZXJ2ZXIucG9ydCkgPT0gJ251
bWJlcicsICdwb3J0IHNob3VsZCBiZSBhIG51bWJlcicpOwogCiAgICAgICAgIGxldCBhdXRoID0g
bnVsbDsKICAgICAgICAgaWYgKHNlcnZlci5hdXRoKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodHlwZW9mKHNlcnZlci5hdXRoKSwgJ29iamVjdCcsICdhdXRoIHNob3VsZCBiZSBhIGRpY3Rp
b25hcnkgd2l0aCB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXMga2V5cycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC51c2VybmFtZSksICdzdHJpbmcnLCAnYXV0
aCBzaG91bGQgY29udGFpbiBhIHN0cmluZyB1c2VybmFtZScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC5wYXNzd29yZCksICdzdHJpbmcnLCAnYXV0aCBzaG91
bGQgY29udGFpbiBhIHN0cmluZyBwYXNzd29yZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBk
aWN0aW9uYXJ5IHdpdGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3Ry
aW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAnc3Ry
aW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcgcGFzc3dvcmQnKTsKICAgICAgICAg
ICAgIGF1dGggPSB7CiAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHNlcnZlci5hdXRoLnVzZXJu
YW1lLAogICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBzZXJ2ZXIuYXV0aC5wYXNzd29yZCwKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCmluZGV4IDZh
MTFkYmM2N2ZmNjM1NjIyYTM4ZTc3MTg5NGU5Mjg1YTM3NTc3MDcuLjk0ZmM3M2Q3OTE1MjI1NGJj
ZmIyZThmNzVjYTRmYzljYmIzMDcwNjEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL3YzLW1vZGVscy5qcwpAQCAtNDEsNSArNDEsNiBAQCBpbXBvcnRGcm9tVjMoJ2lu
c3RydW1lbnRhdGlvbi5qcycsICdJbnN0cnVtZW50YXRpb24nKTsKIGltcG9ydEZyb21WMygnbGF6
aWx5LWV2YWx1YXRlZC1mdW5jdGlvbi5qcycsICdMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbicpOwog
aW1wb3J0RnJvbVYzKCdjb21taXQtc2V0LXJhbmdlLWJpc2VjdG9yLmpzJywgJ0NvbW1pdFNldFJh
bmdlQmlzZWN0b3InKTsKIGltcG9ydEZyb21WMygnYXN5bmMtdGFzay5qcycsICdBc3luY1Rhc2sn
KTsKK2ltcG9ydEZyb21WMygnY29uc29sZS1hc3NlcnQuanMnLCAnY29uc29sZUFzc2VydCcpOwog
CiBnbG9iYWwuU3RhdGlzdGljcyA9IHJlcXVpcmUoJy4uLy4uL3B1YmxpYy9zaGFyZWQvc3RhdGlz
dGljcy5qcycpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422436</attachid>
            <date>2021-03-05 15:27:27 -0800</date>
            <delta_ts>2021-03-05 15:32:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305152724.patch</filename>
            <type>text/plain</type>
            <size>912601</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi5mZGM3ZmI0Mjlh
MDY4OWI2NDYyMWY3YmVkNDU2ZmUzNTFkMjQ1OTI0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxODggQEAKKzIwMjEtMDMtMDUgIFpoaWZlaSBGYW5nICA8emhpZmVp
X2ZhbmdAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2VydmVyIHRlc3QgcnVuIHdpdGggbmV3
IG5vZGUgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyNDYzCisKKyAgICAgICAgQ2hhbmdlIGFzc2VydC5lcXVhbCB0byBhc3NlcnQuc3Ry
aWN0RXF1YWwgc2luY2Ugbm9kZSBkZXByZWNhdGVkIHRoaXMgQVBJCisgICAgICAgIEFkZCBhIG5l
dyBmdW5jdGlvbiBjb25zb2xlQXNzZXJ0IHRvIG1ha2Ugc3VyZSBpdCB3aWxsIHRocm93IGFuIGVy
cm9yCisgICAgICAgIE1ha2Ugc3VyZSBtb2RlbCdzIG1ldGhvZHMgd2lsbCBhbHdheXMgcmV0dXJu
IG51bGwgaW5zdGVhZCBvZiB1bmRlZmllbmQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy92My9jb25zb2xlLWFzc2VydC5qczogQWRkZWQu
CisgICAgICAgIChjb25zb2xlQXNzZXJ0KToKKyAgICAgICAgKiBwdWJsaWMvdjMvaW5kZXguaHRt
bDoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanM6CisgICAg
ICAgIChBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmNvbnRhaW5zVGVzdCk6CisgICAgICAgIChB
bmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMu
cHJvdG90eXBlLnZpZXdGb3JNZXRyaWMpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYW5h
bHlzaXMtdGFzay5qczoKKyAgICAgICAgKEFuYWx5c2lzVGFzayk6CisgICAgICAgIChBbmFseXNp
c1Rhc2sucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChBbmFseXNpc1Rhc2su
cHJvdG90eXBlLmFzc29jaWF0ZUJ1Zyk6CisgICAgICAgIChBbmFseXNpc1Rhc2sucHJvdG90eXBl
LmRpc3NvY2lhdGVCdWcpOgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5hc3NvY2lh
dGVDb21taXQpOgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5kaXNzb2NpYXRlQ29t
bWl0KToKKyAgICAgICAgKEFuYWx5c2lzVGFzay5hc3luYyBjcmVhdGUpOgorICAgICAgICAqIHB1
YmxpYy92My9tb2RlbHMvYnVnLmpzOgorICAgICAgICAoQnVnKToKKyAgICAgICAgKEJ1Zy5lbnN1
cmVTaW5nbGV0b24pOgorICAgICAgICAoQnVnLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczoKKyAgICAgICAgKEJ1
aWxkUmVxdWVzdCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzOgorICAgICAgICAo
QnVpbGQpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qczoKKyAgICAg
ICAgKENvbW1pdExvZyk6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgIChDb21taXRMb2cuZmV0Y2hMYXRlc3RDb21taXRGb3JQbGF0Zm9ybSk6
CisgICAgICAgIChDb21taXRMb2cub3JkZXJUd29Db21taXRzKToKKyAgICAgICAgKENvbW1pdExv
Zy5vd25lZENvbW1pdERpZmZlcmVuY2VGb3JPd25lckNvbW1pdHMpOgorICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAgICAgICAgKENvbW1pdFNldC5wcm90b3R5cGUu
X3VwZGF0ZUZyb21PYmplY3QpOgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5wYXRjaEZv
clJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5yb290Rm9yUmVwb3Np
dG9yeSk6CisgICAgICAgIChDb21taXRTZXQuY29udGFpbnNNdWx0aXBsZUNvbW1pdHNGb3JSZXBv
c2l0b3J5LnNldCBjb25zdC5hbm90aGVyQ29tbWl0LnNldCBjb21taXRGb3JSZXBvc2l0b3J5KToK
KyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011bHRpcGxlQ29tbWl0c0ZvclJlcG9zaXRvcnku
c2V0IGNvbnN0KToKKyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011bHRpcGxlQ29tbWl0c0Zv
clJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0U2V0LmRpZmYpOgorICAgICAgICAoQ29tbWl0
U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKToKKyAgICAgICAgKENvbW1pdFNldCk6Cisg
ICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLnNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eSk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmVxdWFscyk6CisgICAgICAg
IChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmFkZEN1c3RvbVJvb3QpOgorICAgICAgICAoQ3Vz
dG9tQ29tbWl0U2V0KToKKyAgICAgICAgKEludGVybWVkaWF0ZUNvbW1pdFNldCk6CisgICAgICAg
IChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90eXBlLl9mZXRjaENvbW1pdExvZ0FuZE93bmVk
Q29tbWl0cyk6CisgICAgICAgIChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90eXBlLnNldENv
bW1pdEZvclJlcG9zaXRvcnkpOgorICAgICAgICAoSW50ZXJtZWRpYXRlQ29tbWl0U2V0LnByb3Rv
dHlwZS5yZW1vdmVDb21taXRGb3JSZXBvc2l0b3J5KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL2RhdGEtbW9kZWwuanM6CisgICAgICAgIChEYXRhTW9kZWxPYmplY3QuZmluZEJ5SWQpOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0LmpzOgorICAgICAgICAo
TWVhc3VyZW1lbnRTZXQucHJvdG90eXBlLl9kaWRGZXRjaEpTT04pOgorICAgICAgICAoTWVhc3Vy
ZW1lbnRTZXQucHJvdG90eXBlLmhhc0ZldGNoZWRSYW5nZSk6CisgICAgICAgICogcHVibGljL3Yz
L21vZGVscy9tZXRyaWMuanM6CisgICAgICAgIChNZXRyaWMucHJvdG90eXBlLmFkZFBsYXRmb3Jt
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzOgorICAgICAgICAoUGxh
dGZvcm0ucHJvdG90eXBlLmxhc3RNb2RpZmllZCk6CisgICAgICAgICogcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzOgorICAgICAgICAoUmVwb3NpdG9yeS5wcm90b3R5cGUub3duZWRSZXBv
c2l0b3JpZXMpOgorICAgICAgICAoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKToKKyAgICAgICAgKFJlcG9zaXRvcnkpOgorICAgICAgICAqIHB1YmxpYy92My9tb2Rl
bHMvdGVzdC1ncm91cC5qczoKKyAgICAgICAgKFRlc3RHcm91cCk6CisgICAgICAgIChUZXN0R3Jv
dXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChUZXN0R3JvdXAuX2NvbXB1
dGVSZXF1ZXN0ZWRDb21taXRTZXRzLnNldCByZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAg
KFRlc3RHcm91cC5fY29tcHV0ZVJlcXVlc3RlZENvbW1pdFNldHMuY29uc3Quc2V0IHJlcXVlc3Qp
OgorICAgICAgICAoVGVzdEdyb3VwLl9jb21wdXRlUmVxdWVzdGVkQ29tbWl0U2V0cyk6CisgICAg
ICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2spOgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0
ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RHcm91cC5jcmVhdGVBbmRS
ZWZldGNoVGVzdEdyb3Vwcyk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy90aW1lLXNlcmll
cy5qczoKKyAgICAgICAgKFRpbWVTZXJpZXMucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChU
aW1lU2VyaWVzLnByb3RvdHlwZS5wcmV2aW91c1BvaW50KToKKyAgICAgICAgKFRpbWVTZXJpZXMu
cHJvdG90eXBlLm5leHRQb2ludCk6CisgICAgICAgIChUaW1lU2VyaWVzLnByb3RvdHlwZS52aWV3
QmV0d2VlblBvaW50cyk6CisgICAgICAgIChUaW1lU2VyaWVzKToKKyAgICAgICAgKFRpbWVTZXJp
ZXNWaWV3KToKKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5maXJzdFBvaW50SW5U
aW1lUmFuZ2UpOgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLmxhc3RQb2ludElu
VGltZVJhbmdlKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzOgor
ICAgICAgICAoVHJpZ2dlcmFibGUpOgorICAgICAgICAoVHJpZ2dlcmFibGUudHJpZ2dlcmFibGVQ
bGF0Zm9ybXNGb3JUZXN0cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jt
cy10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1p
bi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgICog
c2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczoKKyAgICAgICAgKHJldHVy
bi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4p
OgorICAgICAgICAodGhlbik6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAoYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQpOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJ
LmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuKToKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzOgorICAgICAgICAocmV0
dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhl
bik6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4p
OgorICAgICAgICAoc2V0IHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGVtcHR5UmVwb3J0
LnRoZW4pOgorICAgICAgICAoYXN5bmMgaW5pdGlhbFJlcG9ydENvbW1pdHMpOgorICAgICAgICAo
YXN5bmMgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyk6CisgICAgICAgIChhc3luYyB0ZXN0
V2l0aEV4cGVjdGVkRmFpbHVyZSk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGVtcHR5UmVwb3J0LnRoZW4pOgor
ICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUt
dGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHVwZGF0ZS50aGVuKToKKyAgICAg
ICAgKHRoZW4ucmVzcG9uc2UuZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4p
OgorICAgICAgICAodGhlbi5kYi5zZWxlY3RBbGwuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6
CisgICAgICAgICh0aGVuLk1hbmlmZXN0LmZldGNoLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAg
KGFzeW5jIGNvbnN0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUt
dGVzdHMuanM6CisgICAgICAgIChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5z
dHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6Cisg
ICAgICAgIChhc3luYyBjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAgICAoY29uc3QuY29tbWl0
U2V0Lm9mLnVwZGF0ZWRHcm91cHMuMC5yZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanM6
CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
Y3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChjcmVhdGVBbmFseXNpc1Rhc2sp
OgorICAgICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lzVGFzay5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKHJldHVybi5hZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2suc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50
aGVuKToKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOgorICAg
ICAgICAoYXN5bmMgY3JlYXRlQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanM6CisgICAgICAgIChUZXN0U2VydmVy
LnRlc3RDb25maWcudXBsb2FkRmlsZUxpbWl0SW5NQi4xLnRoZW4pOgorICAgICAgICAodGhlbik6
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qczoK
KyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jl
c291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoKKyAgICAgICAgKFRlbXBvcmFyeUZpbGUubWFrZVRl
bXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVp
bGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgIChhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZSk6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRo
ZW4pOgorICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5q
czoKKyAgICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90
eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5i
dWlsZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAgICAgICAgKEJ1aWxkYm90QnVp
bGRFbnRyeSk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1
ZXN0KToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKToKKyAgICAgICAgKEJ1
aWxkYm90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6CisgICAgICAgIChCdWlsZGJvdFN5
bmNlci5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlcik6
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChC
dWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAg
ICogdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qczoKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERv
Y3VtZW50Lm5ldy5NYXJrdXBEb2N1bWVudC5wcm90b3R5cGUuX2lkRm9yQ2xvbmUpOgorICAgICAg
ICAoY29uc3QuTWFya3VwRG9jdW1lbnQubmV3Lk1hcmt1cERvY3VtZW50LnByb3RvdHlwZS5tYXJr
dXApOgorICAgICAgICAqIHRvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanM6CisgICAgICAgIChw
cm90b3R5cGUuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKToKKyAgICAgICAgKiB0b29scy9qcy9y
ZW1vdGUuanM6CisgICAgICAgIChOb2RlUmVtb3RlQVBJLnByb3RvdHlwZS5jb25maWd1cmUpOgor
ICAgICAgICAqIHRvb2xzL2pzL3YzLW1vZGVscy5qczoKKwogMjAyMS0wMi0xOCAgRGV3ZWkgWmh1
ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBidWcgdGhhdCBhIHN5bmNp
bmcgc2NyaXB0IG1heSB0cnkgdG8gcmV1c2UgYSBkZWxldGUgcm9vdC4KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29uc29sZS1hc3NlcnQuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbnNvbGUtYXNzZXJ0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyZGUzMTk4MjI0NmFhNmFiM2M4OWU0N2Q0ZWJjMDYwNGVlMjVlYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbnNvbGUtYXNzZXJ0
LmpzCkBAIC0wLDAgKzEsMTEgQEAKKyd1c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gY29uc29sZUFz
c2VydCAoY29uZGl0aW9uLCBtZXNzYWdlPSJBc3NlcnRpb24gZmFpbGVkIikgeworICAgIC8vTWFr
ZSBzdXJlIHRoYXQgYnJvd3NlciBzaWRlIHdlIGRvIHByaW50IG91dCB0aGUgZXJyb3IKKyAgICBj
b25zb2xlLmFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpOworICAgIGlmICghY29uZGl0aW9uKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2lmICh0eXBlb2YgbW9kdWxl
ICE9ICd1bmRlZmluZWQnKQorICAgIG1vZHVsZS5leHBvcnRzLmNvbnNvbGVBc3NlcnQgPSBjb25z
b2xlQXNzZXJ0OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbAppbmRleCBmNTMxMDAzZWQ1ZTY3MzUwOWU0
MzdlNDgxMWJiMDlmOGFjMzM3MmQzLi5iNzdiMzVhYTljNDYzYmNiZThkMDE2OTU3OWNiZDZkYjQ1
NTgwMDQ0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2lu
ZGV4Lmh0bWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5o
dG1sCkBAIC00Nyw2ICs0Nyw3IEBAIFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVl
ZCB1cCB0aGUgbG9hZCB0aW1lIGZvciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2NyaXB0IHNy
Yz0iYXN5bmMtdGFzay5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJsYXppbHkt
ZXZhbHVhdGVkLWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9ImNv
bW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iY29uc29sZS1hc3NlcnQuanMiPjwvc2NyaXB0PgogCiAgICAgICAgIDxzY3JpcHQgc3JjPSJt
b2RlbHMvdGltZS1zZXJpZXMuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9k
ZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3Vs
dHMuanMKaW5kZXggMjU5NTUzY2NiYjQxZTFlMWQ1ZTg4ZjNmNWFlMDBhM2IwZWE5NGFiYS4uZWU5
OTM5MDlhOGJiMzIzOGY4NTk2OTFmMDZkOTlkNmUxNWM3MGU4YyAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1y
ZXN1bHRzLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiAKICAg
ICBjb250YWluc1Rlc3QodGVzdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRlc3Qg
aW5zdGFuY2VvZiBUZXN0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0ZXN0IGluc3RhbmNlb2Yg
VGVzdCk7CiAgICAgICAgIGZvciAoY29uc3QgbWV0cmljIG9mIHRlc3QubWV0cmljcygpKSB7CiAg
ICAgICAgICAgICBpZiAobWV0cmljLmlkKCkgaW4gdGhpcy5fbWV0cmljVG9CdWlsZE1hcCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU0LDE0ICs1NCwxNCBAQCBjbGFzcyBBbmFs
eXNpc1Jlc3VsdHMgewogCiAgICAgYWRkKG1lYXN1cmVtZW50KQogICAgIHsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQobWVhc3VyZW1lbnQuY29uZmlnVHlwZSA9PSAnY3VycmVudCcpOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KG1lYXN1cmVtZW50LmNvbmZpZ1R5cGUgPT0gJ2N1cnJlbnQnKTsKICAg
ICAgICAgY29uc3QgbWV0cmljSWQgPSBtZWFzdXJlbWVudC5tZXRyaWNJZDsKICAgICAgICAgaWYg
KCEobWV0cmljSWQgaW4gdGhpcy5fbWV0cmljVG9CdWlsZE1hcCkpIHsKICAgICAgICAgICAgIHRo
aXMuX21ldHJpY1RvQnVpbGRNYXBbbWV0cmljSWRdID0ge307CiAgICAgICAgICAgICB0aGlzLl9t
ZXRyaWNJZHMgPSBPYmplY3Qua2V5cyh0aGlzLl9tZXRyaWNUb0J1aWxkTWFwKTsKICAgICAgICAg
fQogICAgICAgICBjb25zdCBtYXAgPSB0aGlzLl9tZXRyaWNUb0J1aWxkTWFwW21ldHJpY0lkXTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoIW1hcFttZWFzdXJlbWVudC5idWlsZElkXSk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoIW1hcFttZWFzdXJlbWVudC5idWlsZElkXSk7CiAgICAgICAgIG1h
cFttZWFzdXJlbWVudC5idWlsZElkXSA9IG1lYXN1cmVtZW50OwogICAgIH0KIApAQCAtNzcsNyAr
NzcsNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHMgewogCiAgICAgdmlld0Zvck1ldHJpYyhtZXRy
aWMpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBNZXRy
aWMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KG1ldHJpYyBpbnN0YW5jZW9mIE1ldHJpYyk7CiAg
ICAgICAgIHJldHVybiBuZXcgQW5hbHlzaXNSZXN1bHRzVmlldyh0aGlzLCBtZXRyaWMpOwogICAg
IH0KIApAQCAtMTAzLDggKzEwMyw4IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiBjbGFzcyBB
bmFseXNpc1Jlc3VsdHNWaWV3IHsKICAgICBjb25zdHJ1Y3RvcihhbmFseXNpc1Jlc3VsdHMsIG1l
dHJpYykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuYWx5c2lzUmVzdWx0cyBpbnN0
YW5jZW9mIEFuYWx5c2lzUmVzdWx0cyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1ldHJpYyBp
bnN0YW5jZW9mIE1ldHJpYyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYW5hbHlzaXNSZXN1bHRz
IGluc3RhbmNlb2YgQW5hbHlzaXNSZXN1bHRzKTsKKyAgICAgICAgY29uc29sZUFzc2VydChtZXRy
aWMgaW5zdGFuY2VvZiBNZXRyaWMpOwogICAgICAgICB0aGlzLl9yZXN1bHRzID0gYW5hbHlzaXNS
ZXN1bHRzOwogICAgICAgICB0aGlzLl9tZXRyaWMgPSBtZXRyaWM7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFz
ay5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lz
LXRhc2suanMKaW5kZXggMTc3NmE4MTdiYzMxOTk2OTI5NzJhNDBhYTRlZDY4YzFhOTVjZGVlZS4u
YzZlNzllZjhlZTM3MjViNWUyMGVlMTBiODdiNzZiNDZjMTZiMWU1MCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10
YXNrLmpzCkBAIC03LDEwICs3LDEwIEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVs
ZWRPYmplY3QgewogICAgICAgICB0aGlzLl9hdXRob3IgPSBvYmplY3QuYXV0aG9yOwogICAgICAg
ICB0aGlzLl9jcmVhdGVkQXQgPSBvYmplY3QuY3JlYXRlZEF0OwogCi0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxh
dGZvcm0pOworICAgICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0
LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9
IG9iamVjdC5wbGF0Zm9ybTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0Lm1ldHJp
YyB8fCBvYmplY3QubWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsKKyAgICAgICAgY29uc29sZUFz
c2VydCghb2JqZWN0Lm1ldHJpYyB8fCBvYmplY3QubWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsK
ICAgICAgICAgdGhpcy5fbWV0cmljID0gb2JqZWN0Lm1ldHJpYzsKIAogICAgICAgICB0aGlzLl9z
dGFydE1lYXN1cmVtZW50SWQgPSBvYmplY3Quc3RhcnRSdW47CkBAIC00MCwxNCArNDAsMTQgQEAg
Y2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgewogICAgICAg
ICBzdXBlci51cGRhdGVTaW5nbGV0b24ob2JqZWN0KTsKIAotICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl9hdXRob3IgPT0gb2JqZWN0LmF1dGhvcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCt0aGlzLl9jcmVhdGVkQXQgPT0gK29iamVjdC5jcmVhdGVkQXQpOwotICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwotICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9tZXRyaWMgPT0gb2JqZWN0Lm1ldHJpYyk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRoaXMuX3N0YXJ0TWVhc3VyZW1lbnRJZCA9PSBvYmplY3Quc3RhcnRSdW4pOwot
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zdGFydFRpbWUgPT0gb2JqZWN0LnN0YXJ0UnVu
VGltZSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuZE1lYXN1cmVtZW50SWQgPT0g
b2JqZWN0LmVuZFJ1bik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuZFRpbWUgPT0g
b2JqZWN0LmVuZFJ1blRpbWUpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2F1dGhvciA9
PSBvYmplY3QuYXV0aG9yKTsKKyAgICAgICAgY29uc29sZUFzc2VydCgrdGhpcy5fY3JlYXRlZEF0
ID09ICtvYmplY3QuY3JlYXRlZEF0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9wbGF0
Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX21l
dHJpYyA9PSBvYmplY3QubWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9zdGFy
dE1lYXN1cmVtZW50SWQgPT0gb2JqZWN0LnN0YXJ0UnVuKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCh0aGlzLl9zdGFydFRpbWUgPT0gb2JqZWN0LnN0YXJ0UnVuVGltZSk7CisgICAgICAgIGNvbnNv
bGVBc3NlcnQodGhpcy5fZW5kTWVhc3VyZW1lbnRJZCA9PSBvYmplY3QuZW5kUnVuKTsKKyAgICAg
ICAgY29uc29sZUFzc2VydCh0aGlzLl9lbmRUaW1lID09IG9iamVjdC5lbmRSdW5UaW1lKTsKIAog
ICAgICAgICB0aGlzLl9jYXRlZ29yeSA9IG9iamVjdC5jYXRlZ29yeTsKICAgICAgICAgdGhpcy5f
Y2hhbmdlVHlwZSA9IG9iamVjdC5yZXN1bHQ7IC8vIENhbid0IGNoYW5nZSBkdWUgdG8gdjIgY29t
cGF0aWJpbGl0eS4KQEAgLTkzLDggKzkzLDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAKICAgICBhc3NvY2lhdGVCdWcodHJhY2tlciwgYnVnTnVtYmVyKQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNr
ZXIpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YoYnVnTnVtYmVyKSA9PSAnbnVtYmVy
Jyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNrZXIp
OworICAgICAgICBjb25zb2xlQXNzZXJ0KHR5cGVvZihidWdOdW1iZXIpID09ICdudW1iZXInKTsK
ICAgICAgICAgdmFyIGlkID0gdGhpcy5pZCgpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnYXNzb2NpYXRlLWJ1ZycsIHsKICAgICAgICAgICAgIHRhc2s6IGlkLApA
QCAtMTA4LDggKzEwOCw4IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmpl
Y3QgewogCiAgICAgZGlzc29jaWF0ZUJ1ZyhidWcpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChidWcgaW5zdGFuY2VvZiBCdWcpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmJ1
Z3MoKS5pbmNsdWRlcyhidWcpKTsKKyAgICAgICAgY29uc29sZUFzc2VydChidWcgaW5zdGFuY2Vv
ZiBCdWcpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuYnVncygpLmluY2x1ZGVzKGJ1Zykp
OwogICAgICAgICB2YXIgaWQgPSB0aGlzLmlkKCk7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdhc3NvY2lhdGUtYnVnJywgewogICAgICAgICAgICAgdGFzazogaWQs
CkBAIC0xMjQsOCArMTI0LDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9i
amVjdCB7CiAKICAgICBhc3NvY2lhdGVDb21taXQoa2luZCwgcmVwb3NpdG9yeSwgcmV2aXNpb24p
CiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChraW5kID09ICdjYXVzZScgfHwga2luZCA9
PSAnZml4Jyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBS
ZXBvc2l0b3J5KTsKKyAgICAgICAgY29uc29sZUFzc2VydChraW5kID09ICdjYXVzZScgfHwga2lu
ZCA9PSAnZml4Jyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9m
IFJlcG9zaXRvcnkpOwogICAgICAgICBpZiAocmV2aXNpb24uc3RhcnRzV2l0aCgncicpKQogICAg
ICAgICAgICAgcmV2aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMSk7CiAgICAgICAgIGNvbnN0
IGlkID0gdGhpcy5pZCgpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBl
eHRlbmRzIExhYmVsZWRPYmplY3QgewogCiAgICAgZGlzc29jaWF0ZUNvbW1pdChjb21taXQpCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cp
OworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7CiAg
ICAgICAgIHZhciBpZCA9IHRoaXMuaWQoKTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2Fzc29jaWF0ZS1jb21taXQnLCB7CiAgICAgICAgICAgICB0YXNrOiBpZCwK
QEAgLTMyOCw3ICszMjgsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2Jq
ZWN0IHsKICAgICB7CiAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7bmFtZSwgc3RhcnRSdW46
IHN0YXJ0UG9pbnQuaWQsIGVuZFJ1bjogZW5kUG9pbnQuaWR9OwogICAgICAgICBpZiAodGVzdEdy
b3VwTmFtZSkgewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwZXRpdGlvbkNvdW50KTsK
KyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwZXRpdGlvbkNvdW50KTsKICAgICAgICAgICAg
IHBhcmFtZXRlcnNbJ3JldmlzaW9uU2V0cyddID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21D
b21taXRTZXRzKFtzdGFydFBvaW50LmNvbW1pdFNldCgpLCBlbmRQb2ludC5jb21taXRTZXQoKV0p
OwogICAgICAgICAgICAgcGFyYW1ldGVyc1sncmVwZXRpdGlvbkNvdW50J10gPSByZXBldGl0aW9u
Q291bnQ7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWyd0ZXN0R3JvdXBOYW1lJ10gPSB0ZXN0R3Jv
dXBOYW1lOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvYnVnLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
YnVnLmpzCmluZGV4IGMxNTg4NjcxOTJhNmQwZjc3ZGU5M2FmOGE3OGM5OTgyZTA1MWYxNjUuLmY3
OTAwMDljZTUzNzM3MmY4NzRhNWM0MTM1ODA5MDM4NzU1ODMyYTEgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1Zy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWcuanMKQEAgLTQsMTQgKzQsMTQg
QEAgY2xhc3MgQnVnIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAgICAgICAgIHN1
cGVyKGlkLCBvYmplY3QpOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdC5idWdUcmFj
a2VyIGluc3RhbmNlb2YgQnVnVHJhY2tlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQob2JqZWN0
LmJ1Z1RyYWNrZXIgaW5zdGFuY2VvZiBCdWdUcmFja2VyKTsKICAgICAgICAgdGhpcy5fYnVnVHJh
Y2tlciA9IG9iamVjdC5idWdUcmFja2VyOwogICAgICAgICB0aGlzLl9idWdOdW1iZXIgPSBvYmpl
Y3QubnVtYmVyOwogICAgIH0KIAogICAgIHN0YXRpYyBlbnN1cmVTaW5nbGV0b24ob2JqZWN0KQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQob2JqZWN0LmJ1Z1RyYWNrZXIgaW5zdGFuY2Vv
ZiBCdWdUcmFja2VyKTsKKyAgICAgICAgY29uc29sZUFzc2VydChvYmplY3QuYnVnVHJhY2tlciBp
bnN0YW5jZW9mIEJ1Z1RyYWNrZXIpOwogICAgICAgICB2YXIgaWQgPSBvYmplY3QuYnVnVHJhY2tl
ci5pZCgpICsgJy0nICsgb2JqZWN0Lm51bWJlcjsKICAgICAgICAgcmV0dXJuIHN1cGVyLmVuc3Vy
ZVNpbmdsZXRvbihpZCwgb2JqZWN0KTsKICAgICB9CkBAIC0xOSw4ICsxOSw4IEBAIGNsYXNzIEJ1
ZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgdXBkYXRlU2luZ2xldG9uKG9iamVjdCkK
ICAgICB7CiAgICAgICAgIHN1cGVyLnVwZGF0ZVNpbmdsZXRvbihvYmplY3QpOwotICAgICAgICBj
b25zb2xlLmFzc2VydCh0aGlzLl9idWdUcmFja2VyID09IG9iamVjdC5idWdUcmFja2VyKTsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fYnVnTnVtYmVyID09IG9iamVjdC5udW1iZXIpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2J1Z1RyYWNrZXIgPT0gb2JqZWN0LmJ1Z1RyYWNr
ZXIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2J1Z051bWJlciA9PSBvYmplY3QubnVt
YmVyKTsKICAgICB9CiAKICAgICBidWdUcmFja2VyKCkgeyByZXR1cm4gdGhpcy5fYnVnVHJhY2tl
cjsgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggZjA5NWUwZDdhYmU4NmEwMjY1MjE1MTYxMjc4
NGQyMWQxMDNhNTYxNi4uOTUyYTM3ZDU2YmFhNDNlNDI1ZTc5NzRlODA4NzMwOTFhOTJlZjQ1OCAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVp
bGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC02LDIwICs2LDIwIEBAIGNsYXNzIEJ1aWxkUmVxdWVz
dCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgewogICAgICAgICBzdXBlcihpZCwgb2Jq
ZWN0KTsKICAgICAgICAgdGhpcy5fdHJpZ2dlcmFibGUgPSBvYmplY3QudHJpZ2dlcmFibGU7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmplY3QucmVwb3NpdG9yeUdyb3VwIHx8IG9iamVjdC5y
ZXBvc2l0b3J5R3JvdXAgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCk7Cisg
ICAgICAgIGNvbnNvbGVBc3NlcnQoIW9iamVjdC5yZXBvc2l0b3J5R3JvdXAgfHwgb2JqZWN0LnJl
cG9zaXRvcnlHcm91cCBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwKTsKICAg
ICAgICAgdGhpcy5fYW5hbHlzaXNUYXNrSWQgPSBvYmplY3QudGFzazsKICAgICAgICAgdGhpcy5f
dGVzdEdyb3VwSWQgPSBvYmplY3QudGVzdEdyb3VwSWQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFvYmplY3QudGVzdEdyb3VwIHx8IG9iamVjdC50ZXN0R3JvdXAgaW5zdGFuY2VvZiBUZXN0R3Jv
dXApOworICAgICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QudGVzdEdyb3VwIHx8IG9iamVjdC50
ZXN0R3JvdXAgaW5zdGFuY2VvZiBUZXN0R3JvdXApOwogICAgICAgICB0aGlzLl90ZXN0R3JvdXAg
PSBvYmplY3QudGVzdEdyb3VwOwogICAgICAgICBpZiAodGhpcy5fdGVzdEdyb3VwKQogICAgICAg
ICAgICAgdGhpcy5fdGVzdEdyb3VwLmFkZEJ1aWxkUmVxdWVzdCh0aGlzKTsKICAgICAgICAgdGhp
cy5fcmVwb3NpdG9yeUdyb3VwID0gb2JqZWN0LnJlcG9zaXRvcnlHcm91cDsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQob2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAg
ICAgICAgdGhpcy5fcGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFvYmplY3QudGVzdCB8fCBvYmplY3QudGVzdCBpbnN0YW5jZW9mIFRlc3QpOworICAg
ICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QudGVzdCB8fCBvYmplY3QudGVzdCBpbnN0YW5jZW9m
IFRlc3QpOwogICAgICAgICB0aGlzLl90ZXN0ID0gb2JqZWN0LnRlc3Q7CiAgICAgICAgIHRoaXMu
X29yZGVyID0gb2JqZWN0Lm9yZGVyOwotICAgICAgICBjb25zb2xlLmFzc2VydChvYmplY3QuY29t
bWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2VydChvYmpl
Y3QuY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgdGhpcy5fY29tbWl0
U2V0ID0gb2JqZWN0LmNvbW1pdFNldDsKICAgICAgICAgdGhpcy5fc3RhdHVzID0gb2JqZWN0LnN0
YXR1czsKICAgICAgICAgdGhpcy5fc3RhdHVzVXJsID0gb2JqZWN0LnVybDsKQEAgLTMxLDExICsz
MSwxMSBAQCBjbGFzcyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAg
ICAgdXBkYXRlU2luZ2xldG9uKG9iamVjdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHRoaXMuX29yZGVyID09IG9iamVjdC5vcmRlcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX2NvbW1pdFNldCA9PSBvYmplY3QuY29tbWl0U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCh0aGlzLl9vcmRlciA9PSBvYmplY3Qub3JkZXIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRo
aXMuX2NvbW1pdFNldCA9PSBvYmplY3QuY29tbWl0U2V0KTsKIAogICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSBvYmplY3QudGVzdEdyb3VwOwotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5f
dGVzdEdyb3VwIHx8IHRoaXMuX3Rlc3RHcm91cCA9PSB0ZXN0R3JvdXApOworICAgICAgICBjb25z
b2xlQXNzZXJ0KCF0aGlzLl90ZXN0R3JvdXAgfHwgdGhpcy5fdGVzdEdyb3VwID09IHRlc3RHcm91
cCk7CiAgICAgICAgIGlmICghdGhpcy5fdGVzdEdyb3VwICYmIHRlc3RHcm91cCkKICAgICAgICAg
ICAgIHRlc3RHcm91cC5hZGRCdWlsZFJlcXVlc3QodGhpcyk7CiAKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkZXIuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzCmluZGV4IGIzMjA0
MGY0YjgwYTI0YWJiY2FhZDlmODAzZDMzODk0YTJmMmY1MDAuLjIyZWM3Mjc5NmIzMjEzZGUyMTQ4
M2Y1N2YyZDllY2I1Y2NjMDM5YTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGRlci5qcwpAQCAtMTgsNyArMTgsNyBAQCBjbGFzcyBC
dWlsZGVyIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiBjbGFzcyBCdWlsZCBleHRlbmRzIERhdGFN
b2RlbE9iamVjdCB7CiAgICAgY29uc3RydWN0b3IoaWQsIGJ1aWxkZXIsIGJ1aWxkVGFnLCBidWls
ZFRpbWUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChidWlsZGVyIGluc3RhbmNlb2Yg
QnVpbGRlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYnVpbGRlciBpbnN0YW5jZW9mIEJ1aWxk
ZXIpOwogICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2J1aWxkZXIgPSBidWlsZGVy
OwogICAgICAgICB0aGlzLl9idWlsZFRhZyA9IGJ1aWxkVGFnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKaW5kZXgg
ZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAwYi4uMDZlNmFkZjc1ZWI4ZDE2
YmVhMTRkZTYwZjcyNTA1YTQ4OWU2OWJmMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCkBAIC0zLDExICszLDEx
IEBACiBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIGNvbnN0
cnVjdG9yKGlkLCByYXdEYXRhKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocGFyc2VJ
bnQoaWQpID09IGlkKTsKKyAgICAgICAgY29uc29sZUFzc2VydChwYXJzZUludChpZCkgPT0gaWQp
OwogICAgICAgICBzdXBlcihpZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkID09IHJhd0Rh
dGEuaWQpCisgICAgICAgIGNvbnNvbGVBc3NlcnQoaWQgPT0gcmF3RGF0YS5pZCkKICAgICAgICAg
dGhpcy5fcmVwb3NpdG9yeSA9IHJhd0RhdGEucmVwb3NpdG9yeTsKLSAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KHRoaXMuX3JlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKICAg
ICAgICAgdGhpcy5fcmF3RGF0YSA9IHJhd0RhdGE7CiAgICAgICAgIHRoaXMuX293bmVkQ29tbWl0
cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX293bmVyQ29tbWl0ID0gbnVsbDsKQEAgLTE4LDggKzE4
LDggQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAg
ICAgICAgIHN1cGVyLnVwZGF0ZVNpbmdsZXRvbihyYXdEYXRhKTsKIAotICAgICAgICBjb25zb2xl
LmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1lJ10pOwotICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09IHJhd0RhdGFb
J3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlQXNzZXJ0KCt0aGlzLl9yYXdEYXRhWyd0aW1l
J10gPT0gK3Jhd0RhdGFbJ3RpbWUnXSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fcmF3
RGF0YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKIAogICAgICAgICBpZiAo
cmF3RGF0YS5hdXRob3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3RGF0YS5hdXRob3JOYW1l
ID0gcmF3RGF0YS5hdXRob3JOYW1lOwpAQCAtODMsOCArODMsOCBAQCBjbGFzcyBDb21taXRMb2cg
ZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGZldGNoTGF0ZXN0Q29tbWl0
Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwgcGxhdGZvcm0pCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydChyZXBvc2l0b3J5IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xl
QXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKKyAgICAgICAgY29uc29s
ZUFzc2VydChwbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAgICAgICAgcmV0dXJuIHRo
aXMuY2FjaGVkRmV0Y2goYC9hcGkvY29tbWl0cy8ke3JlcG9zaXRvcnkuaWQoKX0vbGF0ZXN0YCwg
e3BsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSkudGhlbigoZGF0YSkgPT4gewogICAgICAgICAgICAg
Y29uc3QgY29tbWl0cyA9IGRhdGFbJ2NvbW1pdHMnXTsKICAgICAgICAgICAgIGlmICghY29tbWl0
cyB8fCAhY29tbWl0cy5sZW5ndGgpCkBAIC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgQ29tbWl0TG9n
IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBvcmRlclR3b0NvbW1pdHMo
Zmlyc3RDb21taXQsIHNlY29uZENvbW1pdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KENvbW1pdExvZy5oYXNPcmRlcmluZyhmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0KSk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoQ29tbWl0TG9nLmhhc09yZGVyaW5nKGZpcnN0Q29tbWl0LCBzZWNv
bmRDb21taXQpKTsKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTbWFsbGVyID0gZmlyc3RDb21t
aXQuaGFzQ29tbWl0VGltZSgpICYmIHNlY29uZENvbW1pdC5oYXNDb21taXRUaW1lKCkgPwogICAg
ICAgICAgICAgZmlyc3RDb21taXQudGltZSgpIDwgc2Vjb25kQ29tbWl0LnRpbWUoKSA6IGZpcnN0
Q29tbWl0Lm9yZGVyKCkgPCBzZWNvbmRDb21taXQub3JkZXIoKTsKICAgICAgICAgcmV0dXJuIGZp
cnN0Q29tbWl0U21hbGxlciA/IFtmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0XSA6IFtzZWNvbmRD
b21taXQsIGZpcnN0Q29tbWl0XTsKQEAgLTE0MiwxMiArMTQyLDEyIEBAIGNsYXNzIENvbW1pdExv
ZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICBzdGF0aWMgb3duZWRDb21taXREaWZm
ZXJlbmNlRm9yT3duZXJDb21taXRzKC4uLmNvbW1pdHMpCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydChjb21taXRzLmxlbmd0aCA+PSAyKTsKKyAgICAgICAgY29uc29sZUFzc2VydChjb21t
aXRzLmxlbmd0aCA+PSAyKTsKIAogICAgICAgICBjb25zdCBvd25lZENvbW1pdFJlcG9zaXRvcmll
cyA9IG5ldyBTZXQ7CiAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0TWFwTGlzdCA9IGNvbW1pdHMu
bWFwKChjb21taXQpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCk7Ci0g
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXQuX293bmVkQ29tbWl0cyk7CisgICAgICAg
ICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KGNv
bW1pdC5fb3duZWRDb21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0TWFwID0g
Y29tbWl0Ll9idWlsZE93bmVkQ29tbWl0TWFwKCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IHJl
cG9zaXRvcnkgb2Ygb3duZWRDb21taXRNYXAua2V5cygpKQogICAgICAgICAgICAgICAgIG93bmVk
Q29tbWl0UmVwb3NpdG9yaWVzLmFkZChyZXBvc2l0b3J5KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCmluZGV4IDA0
MjI5ZTFlMDBiMjlkNzgzNTY5ODlmNDk5ZjA1ODk1ZWQzMmRkMzYuLjc3OGUzZjQ2OGQ1NzQxMjlm
Nzc4YzMwNDhmMjhiN2QzOGZlYTVkMTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcwpAQCAtMzksMTAgKzM5LDEw
IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIGNv
bnN0IHJvb3RGaWxlcyA9IG5ldyBTZXQ7CiAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBvYmpl
Y3QucmV2aXNpb25JdGVtcykgewogICAgICAgICAgICAgY29uc3QgY29tbWl0ID0gaXRlbS5jb21t
aXQ7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXQgaW5zdGFuY2VvZiBDb21taXRM
b2cpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWl0ZW0ucGF0Y2ggfHwgaXRlbS5wYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCgh
aXRlbS5yb290RmlsZSB8fCBpdGVtLnJvb3RGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFpdGVtLmNvbW1pdE93bmVyIHx8IGl0ZW0uY29t
bWl0T3duZXIgaW5zdGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICAgICAgY29uc29sZUFzc2Vy
dChjb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICAgICAgY29uc29sZUFzc2Vy
dCghaXRlbS5wYXRjaCB8fCBpdGVtLnBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAg
ICAgICAgICAgIGNvbnNvbGVBc3NlcnQoIWl0ZW0ucm9vdEZpbGUgfHwgaXRlbS5yb290RmlsZSBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KCFpdGVt
LmNvbW1pdE93bmVyIHx8IGl0ZW0uY29tbWl0T3duZXIgaW5zdGFuY2VvZiBDb21taXRMb2cpOwog
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IGNvbW1pdC5yZXBvc2l0b3J5KCk7CiAgICAg
ICAgICAgICB0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXAuc2V0KHJlcG9zaXRvcnksIGNvbW1p
dCk7CiAgICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5VG9QYXRjaE1hcC5zZXQocmVwb3NpdG9y
eSwgaXRlbS5wYXRjaCk7CkBAIC05Miw4ICs5Miw4IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRz
IERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBjb21taXQgPyBjb21taXQucmV2aXNp
b24oKSA6IG51bGw7CiAgICAgfQogCi0gICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkp
IHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KTsgfQot
ICAgIHJvb3RGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRv
cnlUb1Jvb3RNYXAuZ2V0KHJlcG9zaXRvcnkpOyB9CisgICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJl
cG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmhhcyhyZXBvc2l0
b3J5KSA/IHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KSA6IG51bGw7
IH0KKyAgICByb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBv
c2l0b3J5VG9QYXRjaE1hcC5oYXMocmVwb3NpdG9yeSkgPyB0aGlzLl9yZXBvc2l0b3J5VG9Sb290
TWFwLmdldChyZXBvc2l0b3J5KSA6IG51bGw7IH0KICAgICByZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5UmVxdWlyZXNCdWlsZE1h
cC5nZXQocmVwb3NpdG9yeSkgfHwgZmFsc2U7IH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCByZXR1cm4gYSBEYXRlIG9iamVjdC4KQEAgLTE1Nyw3ICsxNTcsNyBAQCBjbGFzcyBDb21taXRT
ZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGNvbnRhaW5zTXVsdGlw
bGVDb21taXRzRm9yUmVwb3NpdG9yeShjb21taXRTZXRzLCByZXBvc2l0b3J5KQogICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsK
ICAgICAgICAgaWYgKGNvbW1pdFNldHMubGVuZ3RoIDwgMikKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgY29uc3QgZmlyc3RDb21taXQgPSBjb21taXRTZXRzWzBdLmNvbW1pdEZv
clJlcG9zaXRvcnkocmVwb3NpdG9yeSk7CkBAIC0xODcsNyArMTg3LDcgQEAgY2xhc3MgQ29tbWl0
U2V0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBjcmVhdGVOYW1lV2l0
aG91dENvbGxpc2lvbihuYW1lLCBleGlzdGluZ05hbWVTZXQpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydChleGlzdGluZ05hbWVTZXQgaW5zdGFuY2VvZiBTZXQpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KGV4aXN0aW5nTmFtZVNldCBpbnN0YW5jZW9mIFNldCk7CiAgICAgICAgIGlmICgh
ZXhpc3RpbmdOYW1lU2V0LmhhcyhuYW1lKSkKICAgICAgICAgICAgIHJldHVybiBuYW1lOwogICAg
ICAgICBjb25zdCBuYW1lV2l0aE51bWJlck1hdGNoID0gbmFtZS5tYXRjaCgvKC4rPylccypcKFxz
KihcZCspXHMqXClccyokLyk7CkBAIC0yMDgsNyArMjA4LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4
dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBkaWZmKGZpcnN0Q29tbWl0U2V0
LCBzZWNvbmRDb21taXRTZXQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghZmlyc3RD
b21taXRTZXQuZXF1YWxzKHNlY29uZENvbW1pdFNldCkpOworICAgICAgICBjb25zb2xlQXNzZXJ0
KCFmaXJzdENvbW1pdFNldC5lcXVhbHMoc2Vjb25kQ29tbWl0U2V0KSk7CiAgICAgICAgIGNvbnN0
IGFsbFJlcG9zaXRvcmllcyA9IG5ldyBTZXQoWy4uLmZpcnN0Q29tbWl0U2V0LnJlcG9zaXRvcmll
cygpLCAuLi5zZWNvbmRDb21taXRTZXQucmVwb3NpdG9yaWVzKCldKTsKICAgICAgICAgY29uc3Qg
c29ydGVkUmVwb3NpdG9yaWVzID0gUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKFsuLi5hbGxSZXBvc2l0b3JpZXNdKTsKICAgICAgICAgY29uc3QgbmFtZVBhcnRzID0g
W107CkBAIC0yNjQsNyArMjY0LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0YU1vZGVs
T2JqZWN0IHsKICAgICBzdGF0aWMgcmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0
cykKICAgICB7CiAgICAgICAgIHJldHVybiBjb21taXRTZXRzLm1hcCgoY29tbWl0U2V0KSA9PiB7
Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDdXN0b21D
b21taXRTZXQgfHwgY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAgICAg
IGNvbnNvbGVBc3NlcnQoY29tbWl0U2V0IGluc3RhbmNlb2YgQ3VzdG9tQ29tbWl0U2V0IHx8IGNv
bW1pdFNldCBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lv
blNldCA9IHt9OwogICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiBjb21taXRTZXQu
cmVwb3NpdG9yaWVzKCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBwYXRjaEZpbGUgPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpOwpAQCAtMzI5LDE0ICszMjksMTQg
QEAgY2xhc3MgQ3VzdG9tQ29tbWl0U2V0IHsKIAogICAgIHNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eShyZXBvc2l0b3J5LCByZXZpc2lvbiwgcGF0Y2ggPSBudWxsLCBvd25lclJldmlzaW9uID0gbnVs
bCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBS
ZXBvc2l0b3J5KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhdGNoIHx8IHBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5IGlu
c3RhbmNlb2YgUmVwb3NpdG9yeSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoIXBhdGNoIHx8IHBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKICAgICAgICAgdGhpcy5fcmV2aXNpb25MaXN0
QnlSZXBvc2l0b3J5LnNldChyZXBvc2l0b3J5LCB7cmV2aXNpb24sIHBhdGNoLCBvd25lclJldmlz
aW9ufSk7CiAgICAgfQogCiAgICAgZXF1YWxzKG90aGVyKQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQob3RoZXIgaW5zdGFuY2VvZiBDdXN0b21Db21taXRTZXQpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KG90aGVyIGluc3RhbmNlb2YgQ3VzdG9tQ29tbWl0U2V0KTsKICAgICAgICAgaWYg
KHRoaXMuX3JldmlzaW9uTGlzdEJ5UmVwb3NpdG9yeS5zaXplICE9IG90aGVyLl9yZXZpc2lvbkxp
c3RCeVJlcG9zaXRvcnkuc2l6ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzc5
LDcgKzM3OSw3IEBAIGNsYXNzIEN1c3RvbUNvbW1pdFNldCB7CiAKICAgICBhZGRDdXN0b21Sb290
KHVwbG9hZGVkRmlsZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHVwbG9hZGVkRmls
ZSBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodXBsb2Fk
ZWRGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKICAgICAgICAgdGhpcy5fY3VzdG9tUm9v
dHMucHVzaCh1cGxvYWRlZEZpbGUpOwogICAgIH0KIH0KQEAgLTM4OCw3ICszODgsNyBAQCBjbGFz
cyBJbnRlcm1lZGlhdGVDb21taXRTZXQgewogCiAgICAgY29uc3RydWN0b3IoY29tbWl0U2V0KQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0
U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDb21taXRT
ZXQpOwogICAgICAgICB0aGlzLl9jb21taXRCeVJlcG9zaXRvcnkgPSBuZXcgTWFwOwogICAgICAg
ICB0aGlzLl9vd25lclRvT3duZWRSZXBvc2l0b3JpZXMgPSBuZXcgTWFwOwogICAgICAgICB0aGlz
Ll9mZXRjaGluZ1Byb21pc2VCeVJlcG9zaXRvcnkgPSBuZXcgTWFwOwpAQCAtNDExLDcgKzQxMSw3
IEBAIGNsYXNzIEludGVybWVkaWF0ZUNvbW1pdFNldCB7CiAgICAgX2ZldGNoQ29tbWl0TG9nQW5k
T3duZWRDb21taXRzKHJlcG9zaXRvcnksIHJldmlzaW9uKQogICAgIHsKICAgICAgICAgcmV0dXJu
IENvbW1pdExvZy5mZXRjaEZvclNpbmdsZVJldmlzaW9uKHJlcG9zaXRvcnksIHJldmlzaW9uLCB0
cnVlKS50aGVuKChjb21taXRzKSA9PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21t
aXRzLmxlbmd0aCA9PT0gMSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdHMubGVu
Z3RoID09PSAxKTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IGNvbW1pdHNbMF07CiAgICAg
ICAgICAgICBpZiAoIWNvbW1pdC5vd25zQ29tbWl0cygpKQogICAgICAgICAgICAgICAgIHJldHVy
biBjb21taXQ7CkBAIC00MzQsOCArNDM0LDggQEAgY2xhc3MgSW50ZXJtZWRpYXRlQ29tbWl0U2V0
IHsKIAogICAgIHNldENvbW1pdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSwgY29tbWl0LCBvd25l
ckNvbW1pdCA9IG51bGwpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChyZXBvc2l0b3J5
IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCBp
bnN0YW5jZW9mIENvbW1pdExvZyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBp
bnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCBpbnN0
YW5jZW9mIENvbW1pdExvZyk7CiAgICAgICAgIHRoaXMuX2NvbW1pdEJ5UmVwb3NpdG9yeS5zZXQo
cmVwb3NpdG9yeSwgY29tbWl0KTsKICAgICAgICAgaWYgKCFvd25lckNvbW1pdCkKICAgICAgICAg
ICAgIG93bmVyQ29tbWl0ID0gY29tbWl0Lm93bmVyQ29tbWl0KCk7CkBAIC00NTAsMTIgKzQ1MCwx
MiBAQCBjbGFzcyBJbnRlcm1lZGlhdGVDb21taXRTZXQgewogCiAgICAgcmVtb3ZlQ29tbWl0Rm9y
UmVwb3NpdG9yeShyZXBvc2l0b3J5KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocmVw
b3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHJl
cG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKICAgICAgICAgdGhpcy5fZmV0Y2hpbmdQ
cm9taXNlQnlSZXBvc2l0b3J5LnNldChyZXBvc2l0b3J5LCBudWxsKTsKICAgICAgICAgY29uc3Qg
b3duZXJDb21taXQgPSB0aGlzLm93bmVyQ29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsK
ICAgICAgICAgaWYgKG93bmVyQ29tbWl0KSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5
U2V0ID0gdGhpcy5fb3duZXJUb093bmVkUmVwb3NpdG9yaWVzLmdldChvd25lckNvbW1pdC5yZXBv
c2l0b3J5KCkpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeVNldC5oYXMo
cmVwb3NpdG9yeSkpOworICAgICAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5U2V0Lmhh
cyhyZXBvc2l0b3J5KSk7CiAgICAgICAgICAgICByZXBvc2l0b3J5U2V0LmRlbGV0ZShyZXBvc2l0
b3J5KTsKICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vd25lclRvT3duZWRSZXBvc2l0b3JpZXMu
aGFzKHJlcG9zaXRvcnkpKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZFJlcG9zaXRvcmllcyA9
IHRoaXMuX293bmVyVG9Pd25lZFJlcG9zaXRvcmllcy5nZXQocmVwb3NpdG9yeSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVs
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2Rl
bC5qcwppbmRleCBmMTg5Mjk4YTQ3YjQ1OGRjYWI3YjdiYTlmMzU1ZmViOWY0ZWM4MGNhLi5lNTZj
ODEyMGMyMzQwYmIxNGU2YzFiZjc2NTE4NWY0NTZiYzFiMDAyIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMKQEAg
LTQ0LDcgKzQ0LDcgQEAgY2xhc3MgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBzdGF0aWMgZmluZEJ5
SWQoaWQpCiAgICAgewogICAgICAgICB2YXIgaWRNYXAgPSB0aGlzLm5hbWVkU3RhdGljTWFwKCdp
ZCcpOwotICAgICAgICByZXR1cm4gaWRNYXAgPyBpZE1hcFtpZF0gOiBudWxsOworICAgICAgICBy
ZXR1cm4gaWRNYXAgPyAoaWRNYXAuaGFzT3duUHJvcGVydHkoaWQpID8gaWRNYXBbaWRdIDogbnVs
bCkgOiBudWxsOwogICAgIH0KIAogICAgIHN0YXRpYyBsaXN0Rm9yU3RhdGljTWFwKG5hbWUpCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFz
dXJlbWVudC1zZXQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9tZWFzdXJlbWVudC1zZXQuanMKaW5kZXggYzJjZDAxNmYzNjkyZGRmNGEyZTVmMmI5NjkxYzdj
OTEzZGU1YzhhYS4uY2ZjMjA4NjI3NzgwNmRkODYzYmQ4NzMxNDY2NDZiOGI0Mzk4ZTI1MSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3Vy
ZW1lbnQtc2V0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9k
ZWxzL21lYXN1cmVtZW50LXNldC5qcwpAQCAtMTQ1LDcgKzE0NSw3IEBAIGNsYXNzIE1lYXN1cmVt
ZW50U2V0IHsKICAgICAgICAgICAgIHRoaXMuX2NsdXN0ZXJTdGFydCA9IHJlc3BvbnNlWydjbHVz
dGVyU3RhcnQnXTsKICAgICAgICAgICAgIHRoaXMuX2NsdXN0ZXJTaXplID0gcmVzcG9uc2VbJ2Ns
dXN0ZXJTaXplJ107CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5fcHJpbWFyeUNsdXN0ZXJFbmRUaW1lKTsKKyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQo
dGhpcy5fcHJpbWFyeUNsdXN0ZXJFbmRUaW1lKTsKIAogICAgICAgICB0aGlzLl9hZGRGZXRjaGVk
Q2x1c3RlcihuZXcgTWVhc3VyZW1lbnRDbHVzdGVyKHJlc3BvbnNlKSk7CiAgICAgfQpAQCAtMTY0
LDcgKzE2NCw3IEBAIGNsYXNzIE1lYXN1cmVtZW50U2V0IHsKIAogICAgIGhhc0ZldGNoZWRSYW5n
ZShzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChzdGFy
dFRpbWUgPCBlbmRUaW1lKTsKKyAgICAgICAgY29uc29sZUFzc2VydChzdGFydFRpbWUgPCBlbmRU
aW1lKTsKICAgICAgICAgbGV0IGZvdW5kU3RhcnQgPSBmYWxzZTsKICAgICAgICAgbGV0IHByZXZp
b3VzRW5kVGltZSA9IG51bGw7CiAgICAgICAgIGVuZFRpbWUgPSBNYXRoLm1pbihlbmRUaW1lLCB0
aGlzLl9wcmltYXJ5Q2x1c3RlckVuZFRpbWUpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWV0cmljLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWV0cmljLmpzCmluZGV4IGEzZTkzNjkxY2Q3MDc4NDM3
ZDM1OWQ1ZTA3Zjc5ZTRhNzA4ZDhkNmYuLmFiOTE3NjJjOWYwODVlODc1ZjQ5MDAyODg1ODIxYWRi
OTFhZDVmMTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL21ldHJpYy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9tZXRyaWMuanMKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgTWV0cmljIGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAKICAgICBhZGRQbGF0Zm9ybShwbGF0Zm9ybSkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICB0
aGlzLl9wbGF0Zm9ybXMucHVzaChwbGF0Zm9ybSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCmluZGV4IDNh
NmQ1OGNjNDhiYTM2MGQwYzM5YTQxNzRiZWVlODVhYmViOGM2MDMuLjkzNmFhMDA1ZTQ4ZjQ0MjM1
OGY4ODAwMGIxZTI2OTY2OTI4MjYyOGQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCkBAIC01MCw3ICs1MCw3IEBAIGNs
YXNzIFBsYXRmb3JtIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBsYXN0TW9kaWZpZWQo
bWV0cmljKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljIGluc3RhbmNlb2Yg
TWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBNZXRyaWMp
OwogICAgICAgICByZXR1cm4gdGhpcy5fbGFzdE1vZGlmaWVkQnlNZXRyaWNbbWV0cmljLmlkKCld
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvcmVwb3NpdG9yeS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3JlcG9zaXRvcnkuanMKaW5kZXggOTMxOTg5OWRkY2Y2MDI3NTlkMDI0ODA5MDM1
OTU3ZmUwNjNmMWE0Yi4uMDEyZjgyY2VkZTM4NDhhMTZmMWI4NGJlMTI4ZTNiMzljNjIyMzIyZCAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVw
b3NpdG9yeS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5k
cyBMYWJlbGVkT2JqZWN0IHsKICAgICBvd25lZFJlcG9zaXRvcmllcygpCiAgICAgewogICAgICAg
ICBjb25zdCBvd25lcnNoaXBzID0gdGhpcy5uYW1lZFN0YXRpY01hcCgncmVwb3NpdG9yeU93bmVy
c2hpcHMnKTsKLSAgICAgICAgcmV0dXJuIG93bmVyc2hpcHMgPyBvd25lcnNoaXBzW3RoaXMuaWQo
KV0gOiBudWxsOworICAgICAgICByZXR1cm4gb3duZXJzaGlwcyA/IChvd25lcnNoaXBzLmhhc093
blByb3BlcnR5KHRoaXMuaWQoKSkgPyBvd25lcnNoaXBzW3RoaXMuaWQoKV0gOiBudWxsKSA6IG51
bGw7CiAgICAgfQogCiAgICAgc3RhdGljIHNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
cmVwb3NpdG9yaWVzKQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBSZXBvc2l0b3J5IGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGEubmFtZSgpIDwgYi5uYW1lKCkpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VJbnQoYS5pZCgpKSAtIHBhcnNlSW50KGIuaWQoKSk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKGIuX2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAgICAgICAgICAgIHJldHVybiAx
OwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKaW5kZXggOTdlOGJjOGVlM2Nk
YTlhNmY2NDE2MjM1MzRlNjdmYjgwMDM5OTgyYi4uZTcwZmFjNmM5ZmYxZTI2OGYwMjBjYzQyOGU3
ZWU1MjJmOWVhMTVhNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdGVzdC1ncm91cC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCkBAIC0yMCw3ICsyMCw3IEBAIGNsYXNzIFRl
c3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0aGlzLl9jb21wdXRlUmVx
dWVzdGVkQ29tbWl0U2V0c0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbihUZXN0
R3JvdXAuX2NvbXB1dGVSZXF1ZXN0ZWRDb21taXRTZXRzKTsKICAgICAgICAgdGhpcy5fcmVxdWVz
dGVkQ29tbWl0U2V0cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbW1pdFNldFRvTGFiZWwgPSBu
ZXcgTWFwOwotICAgICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0LnBsYXRmb3JtIHx8IG9iamVj
dC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKKyAgICAgICAgY29uc29sZUFzc2VydCgh
b2JqZWN0LnBsYXRmb3JtIHx8IG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsK
ICAgICAgICAgdGhpcy5fcGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07CiAgICAgfQogCkBAIC0y
OCw5ICsyOCw5IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAg
IHsKICAgICAgICAgc3VwZXIudXBkYXRlU2luZ2xldG9uKG9iamVjdCk7CiAKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5fdGFza0lkID09IG9iamVjdC50YXNrKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoK3RoaXMuX2NyZWF0ZWRBdCA9PSArb2JqZWN0LmNyZWF0ZWRBdCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fdGFza0lkID09IG9iamVjdC50YXNrKTsKKyAgICAgICAg
Y29uc29sZUFzc2VydCgrdGhpcy5fY3JlYXRlZEF0ID09ICtvYmplY3QuY3JlYXRlZEF0KTsKKyAg
ICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwog
CiAgICAgICAgIHRoaXMuX2lzSGlkZGVuID0gb2JqZWN0LmhpZGRlbjsKICAgICAgICAgdGhpcy5f
bmVlZHNOb3RpZmljYXRpb24gPSBvYmplY3QubmVlZHNOb3RpZmljYXRpb247CkBAIC0xNDIsNyAr
MTQyLDcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBj
b21wYXJlVGVzdFJlc3VsdHMobWV0cmljLCBiZWZvcmVNZWFzdXJlbWVudHMsIGFmdGVyTWVhc3Vy
ZW1lbnRzKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljKTsKKyAgICAgICAg
Y29uc29sZUFzc2VydChtZXRyaWMpOwogICAgICAgICBjb25zdCBiZWZvcmVWYWx1ZXMgPSBiZWZv
cmVNZWFzdXJlbWVudHMubWFwKChtZWFzdXJtZW50KSA9PiBtZWFzdXJtZW50LnZhbHVlKTsKICAg
ICAgICAgY29uc3QgYWZ0ZXJWYWx1ZXMgPSBhZnRlck1lYXN1cmVtZW50cy5tYXAoKG1lYXN1cmVt
ZW50KSA9PiBtZWFzdXJlbWVudC52YWx1ZSk7CiAgICAgICAgIGNvbnN0IGJlZm9yZU1lYW4gPSBT
dGF0aXN0aWNzLnN1bShiZWZvcmVWYWx1ZXMpIC8gYmVmb3JlVmFsdWVzLmxlbmd0aDsKQEAgLTE2
MCw3ICsxNjAsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAg
ICAgICAgICAgICAgICByZXN1bHQuZnVsbExhYmVsRm9yTWVhbiA9ICdSdW5uaW5nJzsKICAgICAg
ICAgICAgICAgICByZXN1bHQuZnVsbExhYmVsRm9ySW5kaXZpZHVhbCA9ICdSdW5uaW5nJzsKICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVzdWx0
LmNoYW5nZVR5cGUgPT09IG51bGwpOworICAgICAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQocmVz
dWx0LmNoYW5nZVR5cGUgPT09IG51bGwpOwogICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0dXMg
PSAncGVuZGluZyc7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmxhYmVsID0gJ1BlbmRpbmcnOwog
ICAgICAgICAgICAgICAgIHJlc3VsdC5mdWxsTGFiZWxGb3JNZWFuID0gJ1BlbmRpbmcnOwpAQCAt
MjQ2LDcgKzI0Niw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3Qgewog
CiAgICAgc3RhdGljIGNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwgdGVzdCwgZ3Jv
dXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikK
ICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBj
b25zdCByZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMo
Y29tbWl0U2V0cyk7CiAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrTmFtZSwgbmFtZTogZ3Jv
dXBOYW1lLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBldGl0
aW9uQ291bnQsIHJldmlzaW9uU2V0cywgbmVlZHNOb3RpZmljYXRpb246ICEhbm90aWZ5T25Db21w
bGV0aW9ufTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywgcGFyYW1zKS50aGVuKChkYXRhKSA9PiB7CkBAIC0yNTgsNyArMjU4LDcg
QEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBzdGF0aWMg
Y3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGFzaywgcGxhdGZvcm0sIHRlc3QsIGdyb3Vw
TmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKKyAg
ICAgICAgY29uc29sZUFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAgICAgY29u
c3QgcmV2aXNpb25TZXRzID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNv
bW1pdFNldHMpOwogICAgICAgICBjb25zdCBwYXJhbXMgPSB7dGFzazogdGFzay5pZCgpLCBuYW1l
OiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJl
cGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3RpZnlP
bkNvbXBsZXRpb259OwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKQEAgLTI2OCw3ICsy
NjgsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIHN0
YXRpYyBjcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0YXNrLCBuYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOworICAgICAgICBjb25zb2xlQXNzZXJ0
KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBD
b21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7CiAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHsK
ICAgICAgICAgICAgIHRhc2s6IHRhc2suaWQoKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RpbWUtc2VyaWVzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKaW5kZXggOTM4ODlh
NmMzYWZmNzJiNTQyZTYzOWI1NmI0YzZkNjE0NmM2OWQ2Zi4uNDIyNTdlNjc5ZWY5Y2FhYmQwMmUw
YmRiMmM3NThmMjJlNjQzYmRjNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKQEAgLTExLDcgKzExLDcgQEAg
Y2xhc3MgVGltZVNlcmllcyB7CiAKICAgICBhcHBlbmQoaXRlbSkKICAgICB7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGl0ZW0uc2VyaWVzID09PSB1bmRlZmluZWQpOworICAgICAgICBjb25zb2xl
QXNzZXJ0KGl0ZW0uc2VyaWVzID09PSB1bmRlZmluZWQpOwogICAgICAgICBpdGVtLnNlcmllcyA9
IHRoaXM7CiAgICAgICAgIGl0ZW0uc2VyaWVzSW5kZXggPSB0aGlzLl9kYXRhLmxlbmd0aDsKICAg
ICAgICAgdGhpcy5fZGF0YS5wdXNoKGl0ZW0pOwpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBUaW1l
U2VyaWVzIHsKIAogICAgIHByZXZpb3VzUG9pbnQocG9pbnQpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydChwb2ludC5zZXJpZXMgPT0gdGhpcyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQo
cG9pbnQuc2VyaWVzID09IHRoaXMpOwogICAgICAgICBpZiAoIXBvaW50LnNlcmllc0luZGV4KQog
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW3BvaW50
LnNlcmllc0luZGV4IC0gMV07CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFRpbWVTZXJpZXMgewog
CiAgICAgbmV4dFBvaW50KHBvaW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocG9p
bnQuc2VyaWVzID09IHRoaXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHBvaW50LnNlcmllcyA9
PSB0aGlzKTsKICAgICAgICAgaWYgKHBvaW50LnNlcmllc0luZGV4ICsgMSA+PSB0aGlzLl9kYXRh
Lmxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gdGhpcy5f
ZGF0YVtwb2ludC5zZXJpZXNJbmRleCArIDFdOwpAQCAtODcsOCArODcsOCBAQCBjbGFzcyBUaW1l
U2VyaWVzIHsKIAogICAgIHZpZXdCZXR3ZWVuUG9pbnRzKGZpcnN0UG9pbnQsIGxhc3RQb2ludCkK
ICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0UG9pbnQuc2VyaWVzID09IHRoaXMp
OwotICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0UG9pbnQuc2VyaWVzID09IHRoaXMpOworICAg
ICAgICBjb25zb2xlQXNzZXJ0KGZpcnN0UG9pbnQuc2VyaWVzID09IHRoaXMpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KGxhc3RQb2ludC5zZXJpZXMgPT0gdGhpcyk7CiAgICAgICAgIHJldHVybiBu
ZXcgVGltZVNlcmllc1ZpZXcodGhpcywgZmlyc3RQb2ludC5zZXJpZXNJbmRleCwgbGFzdFBvaW50
LnNlcmllc0luZGV4ICsgMSk7CiAgICAgfQogfTsKQEAgLTk2LDkgKzk2LDkgQEAgY2xhc3MgVGlt
ZVNlcmllcyB7CiBjbGFzcyBUaW1lU2VyaWVzVmlldyB7CiAgICAgY29uc3RydWN0b3IodGltZVNl
cmllcywgc3RhcnRpbmdJbmRleCwgYWZ0ZXJFbmRpbmdJbmRleCwgZmlsdGVyZWREYXRhID0gbnVs
bCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRpbWVTZXJpZXMgaW5zdGFuY2VvZiBU
aW1lU2VyaWVzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoc3RhcnRpbmdJbmRleCA8PSBhZnRl
ckVuZGluZ0luZGV4KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYWZ0ZXJFbmRpbmdJbmRleCA8
PSB0aW1lU2VyaWVzLl9kYXRhLmxlbmd0aCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGltZVNl
cmllcyBpbnN0YW5jZW9mIFRpbWVTZXJpZXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHN0YXJ0
aW5nSW5kZXggPD0gYWZ0ZXJFbmRpbmdJbmRleCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYWZ0
ZXJFbmRpbmdJbmRleCA8PSB0aW1lU2VyaWVzLl9kYXRhLmxlbmd0aCk7CiAgICAgICAgIHRoaXMu
X3RpbWVTZXJpZXMgPSB0aW1lU2VyaWVzOwogICAgICAgICB0aGlzLl9kYXRhID0gZmlsdGVyZWRE
YXRhIHx8IHRpbWVTZXJpZXMuX2RhdGE7CiAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7CkBA
IC0yMDYsNyArMjA2LDcgQEAgY2xhc3MgVGltZVNlcmllc1ZpZXcgewogCiAgICAgZmlyc3RQb2lu
dEluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1lKTsKKyAgICAgICAgY29uc29sZUFzc2VydChzdGFy
dFRpbWUgPD0gZW5kVGltZSk7CiAgICAgICAgIGZvciAobGV0IHBvaW50IG9mIHRoaXMpIHsKICAg
ICAgICAgICAgIGlmIChwb2ludC50aW1lID4gZW5kVGltZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbDsKQEAgLTIxOCw3ICsyMTgsNyBAQCBjbGFzcyBUaW1lU2VyaWVzVmlldyB7CiAKICAg
ICBsYXN0UG9pbnRJblRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChzdGFydFRpbWUgPD0gZW5kVGltZSk7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQoc3RhcnRUaW1lIDw9IGVuZFRpbWUpOwogICAgICAgICBmb3IgKGxldCBwb2ludCBvZiB0
aGlzLl9yZXZlcnNlKCkpIHsKICAgICAgICAgICAgIGlmIChwb2ludC50aW1lIDwgc3RhcnRUaW1l
KQogICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwppbmRleCBkNWZm
M2M0OGMzMjlmOWI0ZDY4ZTg0MjAzMGQyMGJkMmE4N2U1YThkLi4zNjMwZjM1NWFkMjgyMDVlOGQy
YTIwNGYyZTBmNTlhZTJiN2E5YjhmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwpAQCAtMTQsNyArMTQsNyBA
QCBjbGFzcyBUcmlnZ2VyYWJsZSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICBmb3Ig
KGNvbnN0IGNvbmZpZyBvZiBvYmplY3QuY29uZmlndXJhdGlvbnMpIHsKICAgICAgICAgICAgIGNv
bnN0IGtleSA9IGAke2NvbmZpZy50ZXN0LmlkKCl9LSR7Y29uZmlnLnBsYXRmb3JtLmlkKCl9YDsK
ICAgICAgICAgICAgIHRoaXMuX2FjY2VwdGVkVGVzdHMuYWRkKGNvbmZpZy50ZXN0KTsKLSAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEoa2V5IGluIGNvbmZpZ3VyYXRpb25NYXApKTsKKyAgICAg
ICAgICAgIGNvbnNvbGVBc3NlcnQoIShrZXkgaW4gY29uZmlndXJhdGlvbk1hcCkpOwogICAgICAg
ICAgICAgY29uZmlndXJhdGlvbk1hcFtrZXldID0gdGhpczsKICAgICAgICAgfQogICAgIH0KQEAg
LTQwLDcgKzQwLDcgQEAgY2xhc3MgVHJpZ2dlcmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
IAogICAgIHN0YXRpYyB0cmlnZ2VyYWJsZVBsYXRmb3Jtc0ZvclRlc3RzKHRlc3RzKQogICAgIHsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQodGVzdHMgaW5zdGFuY2VvZiBBcnJheSk7CisgICAgICAg
IGNvbnNvbGVBc3NlcnQodGVzdHMgaW5zdGFuY2VvZiBBcnJheSk7CiAgICAgICAgIGlmICghdGVz
dHMubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgICByZXR1cm4gdGhpcy5z
b3J0QnlOYW1lKFBsYXRmb3JtLmFsbCgpLmZpbHRlcigocGxhdGZvcm0pID0+IHsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1z
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1w
bGF0Zm9ybXMtdGVzdHMuanMKaW5kZXggMTEyYjA5MTVmZjhmOTk0MjVlZTY4NDY1M2MyOTU0MmE0
Nzk5OWJjNC4uM2JkZWRlYzdiOWMyYzFiZjdmNGEzOTBjNmI3OGNiZGM3NzIzMGUzMyAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9y
bXMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
ZG1pbi1wbGF0Zm9ybXMtdGVzdHMuanMKQEAgLTQ1LDE5ICs0NSwxOSBAQCBkZXNjcmliZSgiL2Fk
bWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxl
Y3RBbGwoJ3BsYXRmb3JtcycsICduYW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3Jtcykg
PT4gewogICAgICAgICAgICAgb2xkUGxhdGZvcm1zID0gcGxhdGZvcm1zOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZFBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzFdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzJdWyduYW1lJ10sICdUcnVu
ayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxh
dGZvcm1zLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxh
dGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5r
IE1vdW50YWluIExpb24nKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRt
aW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAn
aWQnOiBvbGRQbGF0Zm9ybXNbMV1bJ2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1sy
XVsnaWQnXX0pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBk
Yi5zZWxlY3RBbGwoJ3BsYXRmb3JtcycpOwogICAgICAgICB9KS50aGVuKChuZXdQbGF0Zm9ybXMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9y
bXNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9s
ZFBsYXRmb3Jtc1syXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3UGxhdGZv
cm1zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5ld1Bs
YXRmb3Jtc1swXSwgb2xkUGxhdGZvcm1zWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwobmV3UGxhdGZvcm1zWzFdLCBvbGRQbGF0Zm9ybXNbMl0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNjksMTUgKzY5LDE1IEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1z
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVu
cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkVGVzdFJ1
bnMgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0
Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRU
ZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1syXVsncGxhdGZvcm1fbmFt
ZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10s
IDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVucy5sZW5ndGgs
IDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0
Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4g
TGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydy
dW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRU
ZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAg
ICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVuc1sxXVsncGxhdGZv
cm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX2lkJ119KTsK
QEAgLTg1LDIwICs4NSwyMCBAQCBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeShxdWVyeUZvclJ1bnMpOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IG5ld1Rlc3RSdW5zID0g
cmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnMubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX2lkJ10s
IG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNb
MV1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsn
cGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJd
WydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3Bs
YXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1szXVsn
cnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0
Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNd
WydydW5fY29uZmlnJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1
bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZl
cmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1swXVsn
cnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdU
ZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwg
J1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVu
X2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydw
bGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xk
VGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2Nh
Y2hlJ10sIDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sx
XVsncnVuX2NvbmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTExNCwxMyArMTE0LDEzIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxh
dGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5
Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxhdGZvcm0n
XV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIG9sZENvbmZp
Z3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsncGxhdGZv
cm1fbmFtZSddLCByZXBvcnRzWzBdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvbGRDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5l
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1sxXVsncGxhdGZvcm1fbmFt
ZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob2xkQ29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1swXVsncGxhdGZvcm1fbmFtZSdd
LCByZXBvcnRzWzBdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2Vs
aW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsncGxh
dGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsnY29uZmlnX3R5
cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRt
aW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAn
aWQnOiBvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRDb25m
aWdzWzFdWydwbGF0Zm9ybV9pZCddfSk7CkBAIC0xMjgsMTMgKzEyOCwxMyBAQCBkZXNjcmliZSgi
L2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5x
dWVyeShxdWVyeUZvckNvbmZpZywgW3JlcG9ydHNbMF1bJ3BsYXRmb3JtJ10sIHJlcG9ydHNbMl1b
J3BsYXRmb3JtJ11dKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBuZXdDb25maWdzID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3Q29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0Nv
bmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1l
UmF0ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190
eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10s
ICdjdXJyZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlncy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1b
J3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZp
Z190eXBlJ10sICdiYXNlbGluZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5l
d0NvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUn
XSwgJ0ZyYW1lUmF0ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZp
Z3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKaW5kZXggMmZmNTNjYmY4
OGFjMjRiMGU5MjE2YjBhNzJlNGUzNzA5MjI3YTg4MS4uYjA4YWY5ZmRmOWM2YjQzMDUwMjkwZGM3
NWEyMzQ1YTcyNjUxZjhlNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0
cy5qcwpAQCAtNDgsMTAgKzQ4LDEwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2lt
cGxlUmVwb3J0V2l0aFJldmlzaW9ucyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6
ICdXZWJLaXQnfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9zaXRvcmllcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0UmVwc2l0b3J5SWQgPSByZXBvc2l0b3JpZXNbMF0ub3duZXIgPT0gMSA/IHJl
cG9zaXRvcmllc1sxXS5pZCA6IHJlcG9zaXRvcmllc1swXS5pZDsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICcyMTMyMTQnLCAncmVwb3Np
dG9yeSc6IHdlYmtpdFJlcHNpdG9yeUlkfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewpAQCAtNjUsMjcgKzY1LDI3IEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoc2ltcGxl
UmVwb3J0WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChb
ZGIuc2VsZWN0QWxsKCdidWlsZHMnKSwgZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyldKTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBidWlsZHMgPSByZXN1
bHRbMF07CiAgICAgICAgICAgICBjb25zdCByZXBvcnRzID0gcmVzdWx0WzFdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkc1swXVsndGFnJ10sIDE5ODYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHNbMF1bJ3Rh
ZyddLCAnMTk4NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIHJlcG9ydElkID0gcmVwb3J0c1swXVsnaWQnXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgMTk4Nik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0c1swXVsnYnVpbGRfdGFnJ10sICcxOTg2
Jyk7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCByZXBv
cnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAg
ICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0
aCwgMCk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cyhgL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PSR7cmVwb3J0SWR9YCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkc1swXVsndGFnJ10sIDE5ODYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
c1swXVsndGFnJ10sICcxOTg2Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NSwxMCAr
OTUsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBvcnRbMF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOwog
ICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90ID0gcmVwb3J0c1swXTsK
ICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9i
dWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTEwNiwxNCArMTA2LDE0IEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgbmV3UG9ydCA9IHJlcG9ydHNbMF07CiAgICAgICAgICAgICBvcmlnaW5hbFJlcHJv
dFsnY29tbWl0dGVkX2F0J10gPSBudWxsOwogICAgICAgICAgICAgbmV3UG9ydFsnY29tbWl0dGVk
X2F0J10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFsUmVwcm90
WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJp
Y3RFcXVhbChvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9ydFsnYnVpbGQnXSk7CiAgICAg
ICAgICAgICBvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQ
b3J0WydidWlsZCddID0gbnVsbDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3JpZ2lu
YWxSZXByb3QsIG5ld1BvcnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChv
cmlnaW5hbFJlcHJvdCwgbmV3UG9ydCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IDgzZmJlNTk3ZmU3OWEzYTFiZjgwNTBh
YzgzNzdiZGQ4NjQ3NDRlNjYuLmNkZTVlZGYyYmIxZjI3ZDVkMzk3MTVjYjM2YWVmNjBjYmU1MTJi
MDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC0xMyw3ICsxMyw3IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQo
J3Nob3VsZCByZXR1cm4gIlRyaWdnZXJhYmxlTm90Rm91bmQiIHdoZW4gdGhlIGRhdGFiYXNlIGlz
IGVtcHR5JywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpLnRoZW4oKGNvbnRlbnQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ1RyaWdn
ZXJhYmxlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydzdGF0dXMnXSwgJ1RyaWdnZXJhYmxlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTIxLDExICsyMSwxMSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQo
J2J1aWxkX3RyaWdnZXJhYmxlcycsIHtuYW1lOiAnYnVpbGQtd2Via2l0J30pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVu
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ10s
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCku
c29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1
cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzMsMzYgKzMzLDM2IEBAIGRl
c2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVyLmRhdGFi
YXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAn
Y29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0
T3duZXI6ICI5MzExNiIsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogbnVsbH1dKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMV0uaWQsIDQwNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCksIDQwNCk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZp
c2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAg
ICAgICAgICAgICAgIHtjb21taXQ6ICcyMDE3JywgY29tbWl0T3duZXI6ICI5NjMzNiIsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0sIHtjb21taXRPd25l
cjogbnVsbCwgaWQ6IDg3ODMyLCByZXBvc2l0b3J5OiAnOScsIHJldmlzaW9uOiAnMTAuMTEgMTVB
Mjg0JywgdGltZTogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRzJ11bMV0sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDkzMTE2LCByZXBvc2l0b3J5OiAn
MTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4Nzh9KQotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0sIHtjb21taXRPd25lcjog
JzkzMTE2JywgaWQ6ICcxNzk3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQt
anNjLTYxNjEnLCB0aW1lOiAxNDU2OTYwNzk1MzAwfSkKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0cyddWzNdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiA5NjMz
NiwgcmVwb3NpdG9yeTogJzExJywgcmV2aXNpb246ICcxOTI3MzYnLCB0aW1lOiAxNDQ4MjI1MzI1
NjUwfSkKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzRd
LCB7Y29tbWl0T3duZXI6ICc5NjMzNicsIGlkOiAyMDE3LCByZXBvc2l0b3J5OiAnMjEzJywgcmV2
aXNpb246ICdvd25lZC1qc2MtOTE5MScsIHRpbWU6IDE0NjIyMzA4MzcxMDB9KQorICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDUpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0sIHtj
b21taXRPd25lcjogbnVsbCwgaWQ6ICc4NzgzMicsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246
ICcxMC4xMSAxNUEyODQnLCB0aW1lOiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogJzkz
MTE2JywgcmVwb3NpdG9yeTogJzExJywgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAxNDQ1OTQ1
ODE2ODc4fSkKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0cyddWzJdLCB7Y29tbWl0T3duZXI6ICc5MzExNicsIGlkOiAnMTc5NycsIHJlcG9zaXRvcnk6
ICcyMTMnLCByZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgdGltZTogMTQ1Njk2MDc5NTMwMH0p
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsz
XSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogJzk2MzM2JywgcmVwb3NpdG9yeTogJzExJywgcmV2
aXNpb246ICcxOTI3MzYnLCB0aW1lOiAxNDQ4MjI1MzI1NjUwfSkKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzRdLCB7Y29tbWl0T3duZXI6ICc5
NjMzNicsIGlkOiAnMjAxNycsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lvbjogJ293bmVkLWpz
Yy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKICAgICAg
ICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXVsnY3JlYXRlZEF0J10gPSAwOwogICAg
ICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdWydjcmVhdGVkQXQnXSA9IDA7CiAg
ICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl1bJ2NyZWF0ZWRBdCddID0gMDsK
ICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXVsnY3JlYXRlZEF0J10gPSAw
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3Np
dG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3Vw
OiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycs
IHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVk
QXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLCB7aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcs
IHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRl
c3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3Bl
bmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwg
Y3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTog
JzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAn
NjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0
dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6
IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dl
cmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0
Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0
Jywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGws
IGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAn
MTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0
OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNv
bW1pdFNldDogJzQwMycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVs
bCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAn
NzA1JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6
ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBv
cmRlcjogJzEnLCBjb21taXRTZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVz
Y3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMl0sIHtpZDogJzcwNicsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcyJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxl
OiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06
ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMycsIGNvbW1pdFNldDogJzQwNCcsIHN0
YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWls
ZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CiAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwLDMw
ICs3MCwzMCBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1
aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0
U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
aWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsK
ICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAg
ICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsK
KworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxl
bmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0g
ICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVy
bDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJl
dXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1
czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9i
dWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzog
J3N5bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLApA
QCAtMTAxLDUzICsxMDEsNTMgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1
aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
Lmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0uaWQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYw
MCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxl
OiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0
ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJl
dmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotCi0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0
ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIHJldXNlIHJvb3QgYnVpbHQgZm9yIG93bmVkIGNvbW1pdCBpZiBzYW1l
IGNvbXBsZXRlZCBidWlsZCByZXF1ZXN0IGV4aXN0cycsIGFzeW5jICgpID0+IHsKICAgICAgICAg
YXdhaXQgTW9ja0RhdGEuYWRkVHdvTW9ja1Rlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoVGVzdFNl
cnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxk
LXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQp
LnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0
dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzJdLmlkLCA0MDUpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9i
amVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMn
LCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCksIDQwNSk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnMTc5Nycs
IGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzE3OTcn
LCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUs
IHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1p
dDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjog
JzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVu
Z3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmlkKSwgNzA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDMpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCks
IDcwOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezcwODogewogICAgICAgICAgICAgc3Rh
dHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogNzA0fX07CkBA
IC0xNTksMjkgKzE1OSwyOSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVp
bGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVu
dCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0
YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
T2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0
cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQp
LCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29t
bWl0U2V0cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAg
ICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtj
b21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNC
dWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3
JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5
NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29t
bWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEw
MX1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxl
bmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uaWQsIDcwNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0LCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5pZCwgNzA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5jb21taXRTZXQsIDQwNSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRP
d25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAnMTAxJ31dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgNzA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKICAgICB9KTsKIAogICAgIGl0KCdyZXVzZSByb290cyBmcm9tIGV4aXN0aW5nIGJ1aWxk
IHJlcXVlc3RzIGlmIHRoZSBjb21taXRzIHNldHMgYXJlIGVxdWFsIGV4Y2VwdCB0aGUgZXhpc3Rl
bmNlIG9mIGN1c3RvbSByb290cycsIGFzeW5jICgpID0+IHsKQEAgLTE5NSwzMiArMTk1LDMyIEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBd
KTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
aWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
aWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21t
aXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
bnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uY3VzdG9tUm9vdHMsIFsxMDNdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsxMDRdKTsKLQotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYw
MCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogbnVsbH1dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWycxMDQnXSk7
CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5s
ZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdw
ZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewot
ICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JS
b290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAg
ICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xh
dmVOYW1lJzogJ3N5bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFz
c3dvcmQnLApAQCAtMjI4LDI3ICsyMjgsMjcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJl
cXVlc3RzL2J1aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsy
XS5pZCksIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4Nzgz
MicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAx
fV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5y
ZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEw
MSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5jdXN0b21S
b290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVk
Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJs
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbJzEwMyddKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
Y3VzdG9tUm9vdHMsIFsnMTA0J10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVlc3Qg
d2l0aCAiQ2Fubm90UmV1c2VEZWxldGVkUm9vdCIgaWYgYW55IHJvb3QgdG8gcmV1c2UgaXMgZGVs
ZXRlZCcsIGFzeW5jICgpID0+IHsKQEAgLTI5OSwzMSArMjk5LDMwIEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LmRhdGFiYXNlKCkucXVlcnkoYENSRUFURSBUUklHR0VSIGVtdWxhdGVfZmlsZV9wdXJnZSBBRlRF
UiBVUERBVEUgT0YgY29tbWl0c2V0X3Jvb3RfZmlsZSBPTiBjb21taXRfc2V0X2l0ZW1zCiAgICAg
ICAgICAgICBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZW11bGF0ZV9maWxlX3B1cmdl
KCk7YCk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNv
cnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMn
LCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7
CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCks
IFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3Vw
bG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5pZCwgNjAwKTsKLQotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAg
IHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMx
MTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21t
aXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7Cisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcx
MDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlk
KSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCl9fTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5v
dFJldXNlRGVsZXRlZFJvb3QnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAg
ICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtMzM3LDI5ICszMzYsMjkgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0
IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSwgWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRp
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwgZmFsc2UpOwogICAg
ICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQsIDYwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
Wydjb21taXRTZXRzJ11bNF0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQs
IDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0u
c3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21t
aXRTZXQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0KSwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs4XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRh
dGVzID0gezkwMDogewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBi
dWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19
OworICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsK
IAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ05vTWF0Y2hpbmdDb21taXRTZXRJdGVtJywg
KCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVp
bGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdz
eW5jLXNsYXZlJywKQEAgLTM3NCwzMCArMzczLDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDAxLCBjb21taXQ6IDExMTE2OH0p
CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29t
bWl0OiAnMTExMTY4JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQsIDYwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uc3RhdHVz
LCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzhdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
bnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQp
LCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0KSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0g
ezkwMDogewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJl
cXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAg
ICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
dXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290
UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKIAogICAg
ICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdFJldXNlUm9vdFdpdGhOb25NYXRjaGluZ0Nv
bW1pdFNldHMnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xh
dmVOYW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtNDEwLDMwICs0MDksMzAgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydy
dW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVz
dHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0
aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlz
aW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
LSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
MTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcx
MDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRl
bXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCBy
ZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J3J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQp
LCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ3J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5
MDA6IHsKLSAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAg
ICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBhd2FpdCBh
c3NlcnRUaHJvd3MoJ0Nhbk9ubHlSZXVzZUNvbXBsZXRlZEJ1aWxkUmVxdWVzdCcsICgpID0+IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVl
c3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2
ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC00NDUsMjcg
KzQ0NCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhj
b250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMn
LCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVk
Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJs
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5k
aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
dXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0p
OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10u
bGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsK
ICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
dXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290
UmV1c2U6IDk5OX19OwpAQCAtNDgxLDU1ICs0ODAsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQt
cmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2Nr
RGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQt
cmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAogICAg
ICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6
IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJv
b3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwg
JzknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2
aXNpb24sICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMV0uaWQsIDkzMTE2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMV0ucmVwb3NpdG9yeSwgJzExJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMzNik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcx
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZp
c2lvbiwgJzE5MjczNicpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3Jt
LCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcy
MDAnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRT
ZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0ub3JkZXIsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVz
LCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBs
YXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRl
c3QsICcyMDAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRzJ11bMF0uaWQpLCA4NzgzMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICc5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9u
LCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNp
b24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcxMScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwg
JzE5MjczNicpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5vcmRlciksIDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNv
bW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAn
MjAwJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVy
KSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQp
LCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwor
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVszXS5pZCksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0KSwgNDAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTUzNyw1NSArNTM2LDU1IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdD91c2VMZWdhY3lJZFJlc29sdXRpb249dHJ1ZScpOwogICAg
ICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0
MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LCB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQsIDQwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZp
c2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsxXS5pZCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAogICAgICAg
ICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5NjMz
NicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0cyddLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0cyddWzBdLmlkLCA4NzgzMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICdtYWNPUycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCwgOTMxMTYp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0
b3J5LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMzNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmV2aXNpb24sICcxOTI3MzYnKTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0
ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9y
bScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21l
IHRlc3QnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICdzb21lIHBsYXRm
b3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3Nv
bWUgdGVzdCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxh
dGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsIFsn
c29tZSB0ZXN0J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJl
dmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cydd
WzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzJdLmlkKSwgOTYzMzYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0b3J5LCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cydd
WzJdLnJldmlzaW9uLCAnMTkyNzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
KSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3Nv
bWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBs
YXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0KSwgNDAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsIFsnc29tZSB0ZXN0J10p
OworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21t
aXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgWydz
b21lIHRlc3QnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNd
Lm9yZGVyKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU5NSw3
ICs1OTQsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChi
dWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIw
MCk7CiAgICAgICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC02MDMsOTQgKzYwMiw5NCBAQCBkZXNj
cmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxl
dCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKDY1KTsKICAgICAgICAgICAgIGFzc2VydChw
bGF0Zm9ybSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlk
KCksIDcwNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLm9yZGVyKCksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwNCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwg
OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRl
c3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpKSwgMCk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNl
dCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3MDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3
MDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMV0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIo
KSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0
KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3RzWzFdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3RzWzFdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1
ZXN0c1sxXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzA2KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDkw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRl
c3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0o
KSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
b3JkZXIoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpKSwgNzA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3Jt
KCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzJdLm9yZGVyKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWls
ZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1syXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1syXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzNdLmlkKCksIDcwNyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcwNyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3Jv
dXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzNdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSBpbnN0YW5jZW9m
IENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFz
U3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmlzUGVu
ZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCiAgICAgICAgICAgICBj
b25zdCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeC5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5h
bWUoKSwgJ1dlYktpdCcpOwogCiAgICAgICAgICAgICBjb25zdCBqc2MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDIxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFT
Y3JpcHRDb3JlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjLm5hbWUoKSwg
J0phdmFTY3JpcHRDb3JlJyk7CiAKICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RD
b21taXRTZXQpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJl
cXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0
U2V0KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZmlyc3RDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVB
Mjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNj
LTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwg
JzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2Vjb25kQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcx
OTI3MzYnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0ID0gZmlyc3RDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEw
LjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdCwg
c2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CiAKICAgICAgICAgICAg
IGNvbnN0IGZpcnN0V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0
LnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RX
ZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0
NTk0NTgxNjg3OCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFdlYktpdENvbW1pdCA9IHNl
Y29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIy
NTMyNTY1MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kV2ViS2l0Q29t
bWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGZpcnN0U0pDQ29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeShqc2MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0U0pDQ29tbWl0LnJldmlz
aW9uKCksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJz
dFNKQ0NvbW1pdC50aW1lKCksIDE0NTY5NjA3OTUzMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGZpcnN0U0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFNKQ0NvbW1pdC50aW1lKCksIDE0
NTY5NjA3OTUzMDApOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRTSkNDb21taXQgPSBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShqc2MpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgz
NzEwMCkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRTSkNDb21taXQucmV2
aXNpb24oKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoK3NlY29uZFNKQ0NvbW1pdC50aW1lKCksIDE0NjIyMzA4MzcxMDApCiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC02OTgsNyArNjk3LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFRlc3RHcm91cFdp
dGhPd25lckNvbW1pdE5vdEluQ29tbWl0U2V0KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAg
ICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMg
PSBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKICAgICAgICAg
Y29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgYXNzZXJ0KHRlc3QpOwpA
QCAtNzA4LDMzICs3MDcsMzMgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gYnVpbGRSZXF1ZXN0c1sw
XTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDcwNCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QudGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5vcmRlcigpLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgNzA0KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpKSwgOTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRm
b3JtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5v
cmRlcigpKSwgMCk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkg
aW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3QuaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwogCiAgICAgICAgIGNvbnN0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOwogCiAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoMjEzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGpzYy5uYW1lKCksICdKYXZhU2NyaXB0
Q29yZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3Jp
cHRDb3JlJyk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQt
anNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBv
bmUuaWQoKSA8IGFub3RoZXIuaWQoKSksIFtvc3gsIHdlYmtpdF0pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkx
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbW1pdFNldC50b3BMZXZlbFJlcG9zaXRvcmllcygpLnNvcnQoKG9uZSwgYW5vdGhlcikg
PT4gcGFyc2VJbnQob25lLmlkKCkpIC0gcGFyc2VJbnQoYW5vdGhlci5pZCgpKSksIFtvc3gsIHdl
YmtpdF0pOwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LnJlcG9zaXRvcnlHcm91cCgp
LmFjY2VwdHMoY29tbWl0U2V0KSk7CiAgICAgfSk7CiAKQEAgLTc0NCw3ICs3NDMsNyBAQCBkZXNj
cmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsK
IAogICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAgICAgICAgICAg
ICBhc3NlcnQodGVzdCk7CkBAIC03NTIsNzkgKzc1MSw3OSBAQCBkZXNjcmliZSgnL2FwaS9idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9IFBs
YXRmb3JtLmZpbmRCeUlkKDY1KTsKICAgICAgICAgICAgIGFzc2VydChwbGF0Zm9ybSk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCks
IHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgp
LCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS5vcmRlcigpKSwgMCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1swXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS5pZCgpLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSksIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBD
b21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhhc1N0
YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5p
ZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJd
Lm9yZGVyKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmNv
bW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1syXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1syXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1
aWxkUmVxdWVzdHNbMl0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlkKCksIDcw
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVz
dCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnBs
YXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzNdLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwg
dGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CiAgICAgICAgICAgICBhc3NlcnQu
b2soYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzU3RhcnRlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmlzUGVuZGluZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCiAgICAgICAgICAgICBsZXQgb3N4ID0gUmVwb3Np
dG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFtZSgpLCAn
bWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgpLCAnbWFj
T1MnKTsKIAogICAgICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAK
ICAgICAgICAgICAgIGxldCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRT
ZXQoKSwgZmlyc3RDb21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKIAogICAgICAgICAg
ICAgbGV0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vj
b25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4x
MSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAn
MTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
b3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBsZXQgb3N4Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0
Rm9yUmVwb3NpdG9yeShvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdC5y
ZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1
QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdCwgc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CiAKICAgICAgICAgICAgIGxldCBm
aXJzdFdlYktpdENvbW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lv
bigpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0V2ViS2l0Q29t
bWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZmlyc3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4
NzgpOwogCiAgICAgICAgICAgICBsZXQgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25kQ29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNp
b24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtzZWNvbmRX
ZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTgzNCw3ICs4MzMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
QnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAg
ICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg0
NCw3ICs4NDMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1
ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVu
KChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1NCw3ICs4NTMs
NyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJl
cXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhhc0Zpbmlz
aGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRpbmco
KSk7CkBAIC04NzYsNyArODc1LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAg
ICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJl
cXVlc3RzWzBdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVx
dWVzdHNbMF0uaXNQZW5kaW5nKCkpOwpAQCAtODk5LDMyICs4OTgsMzIgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdi
dWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSwgMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSwg
NjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLm9y
ZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQo
KSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RH
cm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzNdLmlkKCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MTEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzEyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCksIDYwMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigp
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlkKCksIDcx
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0R3JvdXBJ
ZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
N10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigp
KSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1syXS5pZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0u
aWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLmlkKCkp
LCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgNzEy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzZdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcxMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS50
ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTkzNywzMCArOTM2LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBUcmln
Z2VyYWJsZS5hbGwoKS5maW5kKCh0cmlnZ2VyYWJsZSkgPT4gdHJpZ2dlcmFibGUubmFtZSgpID09
ICdidWlsZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5y
ZXBvc2l0b3J5R3JvdXBzKCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkubGVuZ3RoLCAyKTsKICAgICAgICAg
ICAgIGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dl
cmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1naXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnd2Via2l0LXN2bicpOwogICAgICAgICAg
ICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQn
KTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzFdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCks
IDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzNdLmlkKCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSwgMTcwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDE3MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2
XS5pZCgpLCAxNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgMTcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s3XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwg
NzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnJl
cG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnJlcG9z
aXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpKSwgMTcwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzVdLmlkKCkpLCAxNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzVdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSksIDE3
MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVw
b3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgMTcwMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzBdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk3MSwzMiArOTcwLDMyIEBAIGRl
c2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MTApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSwg
NjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCksIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQo
KSwgNzExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RH
cm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5vcmRlcigpLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzJdLmlkKCksIDcxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1syXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpLCA3MTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOwotCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCA3MDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCksIDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgNzAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCksIDYwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigp
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlkKCksIDcw
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
Nl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3
XS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10u
dGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzddLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSks
IDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS5vcmRlcigpKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzExKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA2MDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
MV0ub3JkZXIoKSksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLm9y
ZGVyKCkpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLmlkKCkpLCA3MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigp
KSwgMyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzRdLmlkKCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpKSwg
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s1XS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSksIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0u
aWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCkpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkp
LCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbN10udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpKSwgMyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMDA4LDM2ICsxMDA3LDM2IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3Jk
JzogJ3Bhc3N3b3JkJywKICAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVw
ZGF0ZXMKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2FuY2VsZWQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0udGVz
dCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRm
b3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydi
dWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCwgNzAyKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVz
dHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3Rh
dHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQw
Mik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVswXS5vcmRlciksIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NhbmNlbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyKSwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzFdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0KSwgNDAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAw
Jyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsy
XS5vcmRlciksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzJdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAz
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Bv
bnNlWydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIpLCAzKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0s
ICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsKICAgICAgICAg
ICAgIH0sICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdTaG91bGQgbm90
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXgg
MTUxOTEwYmFlYjI1NTYwMjZiOTJmMGEzMWJkMTkwNTY4YmZhYjcxMy4uMjg1NjlmMDYzNzMwNGUz
YTYyY2Y3NzAwOTIzOTNmN2YwZTczNjU5NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCkBAIC0xMTks
MjIgKzExOSwyMiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKIAog
ICAgIGZ1bmN0aW9uIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdCwgc3Vi
bWl0dGVkKQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsncmV2aXNpb24nXSwg
c3VibWl0dGVkWydyZXZpc2lvbiddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG5ldyBEYXRlKGNv
bW1pdFsndGltZSddKS50b0lTT1N0cmluZygpLCBzdWJtaXR0ZWRbJ3RpbWUnXSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRbJ21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0
aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvckVtYWls
J10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRbJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZFsncmV2aXNpb24nXSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXcgRGF0ZShjb21taXRbJ3RpbWUnXSkudG9JU09TdHJp
bmcoKSwgc3VibWl0dGVkWyd0aW1lJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0WydtZXNzYWdlJ10sIHN1Ym1pdHRlZFsnbWVzc2FnZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFsnYXV0aG9yTmFtZSddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWyduYW1l
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydhdXRob3JFbWFpbCddLCBz
dWJtaXR0ZWRbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICBpZihzdWJtaXR0ZWRbJ3By
ZXZpb3VzQ29tbWl0J10pIHsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRbJ3ByZXZpb3Vz
Q29tbWl0J10pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFsncHJldmlvdXNDb21taXQnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKICAgICAgICAgfQogICAgIH0K
IAogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+LycsICgpID0+IHsKICAg
ICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJl
IG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0JykudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDYsOCArMTQ2LDggQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0xNTUsMTggKzE1NSwxOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0
cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0LycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0sn
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbJ2NvbW1pdHMnXTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CiAgICAgICAg
ICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN1YnZlcnNpb25Db21taXRzWydjb21t
aXRzJ107CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQo
Y29tbWl0c1swXSwgc3VibWl0dGVkQ29tbWl0c1swXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0c1sxXSwgc3VibWl0dGVkQ29tbWl0c1sx
XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29t
bWl0c1syXSwgc3VibWl0dGVkQ29tbWl0c1syXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHNbMl1bJ3ByZXZpb3VzQ29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzJdWydwcmV2aW91c0NvbW1p
dCddLCBjb21taXRzWzFdWydpZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtMTc0LDE5ICsxNzQsMTkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1p
dHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC8nKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbW1pdHMgPSBzeXN0ZW1WZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxl
bmd0aCwgc3VibWl0dGVkQ29tbWl0cy5sZW5ndGgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzVdWydyZXZpc2lv
biddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24n
XSwgc3VibWl0dGVkQ29tbWl0c1s0XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMl1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbM11bJ3Jl
dmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzNdWydyZXZp
c2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzJdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1s0XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1sx
XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbNV1b
J3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgc3VibWl0dGVkQ29tbWl0
cy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBd
WydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzVdWydyZXZpc2lvbiddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgc3VibWl0
dGVkQ29tbWl0c1s0XVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMl1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbM11bJ3Jldmlz
aW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzNdWydy
ZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzJdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1s0XVsncmV2aXNpb24nXSwgc3VibWl0dGVk
Q29tbWl0c1sxXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbNV1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMF1bJ3JldmlzaW9u
J10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTk0LDcgKzE5
NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2Ny
aWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L29sZGVzdCcsICgpID0+IHsKICAgICAgICAg
aXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1h
dGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjAyLDggKzIwMiw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6
ICdXZWJLaXQnfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9vbGRlc3QnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIxNCw4ICsyMTQsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dl
YktpdC9vbGRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11b
MF0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjI3LDkgKzIyNyw5IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVs1XVsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1p
dHMnXVs1XVsncmV2aXNpb24nXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vbGF0ZXN0Jywg
KCkgPT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hl
biB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvbGF0ZXN0JykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRv
cnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNDUsOCAr
MjQ1LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywg
eydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0L2xhdGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21t
aXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjU3LDggKzI1
Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhdGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNv
bW1pdHNbJ2NvbW1pdHMnXS5zbGljZSgpLnBvcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKQEAgLTI3MCw5ICsyNzAsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXRlc3QnKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
IHN5c3RlbVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yODQsMTMgKzI4NCwxMyBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLnF1ZXJ5
KGBERUxFVEUgRlJPTSB0ZXN0cyBXSEVSRSB0ZXN0X25hbWUgPSAnQS1UZXN0J2ApOwogCiAgICAg
ICAgICAgICBjb25zdCBwbGF0Zm9ybXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3BsYXRmb3Jtcycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICBjb25zdCB0ZXN0X21ldHJpY3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3Rlc3RfbWV0cmlj
cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RfbWV0cmljcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RfbWV0cmljcy5sZW5ndGgsIDEpOwog
CiAgICAgICAgICAgICBjb25zdCB0ZXN0cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdHMnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgIGFzc2Vy
dCh0ZXN0X21ldHJpY3NbMF0uaWQgIT0gdGVzdHNbMF0uaWQpOwogCkBAIC0zMDIsNyArMzAyLDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUo
Jy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vbGFzdC1yZXBvcnRlZCcsICgpID0+IHsKICAgICAg
ICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5v
IG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0
ZWQnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZv
dW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTMxNCw4ICszMTQsOCBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzIzLDggKzMyMyw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJL
aXQnfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0zNDAsOCArMzQwLDggQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9X
ZWJLaXQvbGFzdC1yZXBvcnRlZCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVz
dWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXS5zbGljZSgpLnBvcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAg
LTM1Myw5ICszNTMsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1v
dGUuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBz
eXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM3MiwzMSArMzcyLDMxIEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzY3JnRvPTM3MCcpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgY29t
bWl0ID0gcmVzdWx0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJl
dmlzaW9uLCAnU2llcnJhMTZDNjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0LnJldmlzaW9uLCAnU2llcnJhMTZDNjgnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM3MCZ0bz0zNjcnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MjAwJnRvPTI5OScpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjkmdG89NDMyJyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQgPSBy
ZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNpb24s
ICdTaWVycmExNkQzMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXQucmV2aXNpb24sICdTaWVycmExNkQzMicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtNDA0LDcgKzQwNCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+Lzxj
b21taXQ+JywgKCkgPT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90
Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvMjEwOTQ5JykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC00MTYsNyArNDE2LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScp
OwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3du
Q29tbWl0Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyOCw4ICs0Mjgs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTUwJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CiAg
ICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAogICAgICAgICAgICAgICAg
ICAgICByZXZpc2lvbjogJzIxMDk1MCcsCkBAIC00NDcsOCArNDQ3LDggQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvMjEwOTQ5Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11b
MV0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNDU4LDggKzQ1OCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQg
YWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQg
cmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJz
aW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NDk/cHJlZml4LW1hdGNoPWZhbHNlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRb
J2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7CiAgICAgICAg
IH0pOwogCkBAIC00NjgsOCArNDY4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9u
Q29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIx
MDk0OT9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMV0pOwogICAgICAgICB9KTsKIApAQCAtNDc4LDcgKzQ3OCw3IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQg
YWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQg
cmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJz
aW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5ND9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXZpc2lv
blByZWZpeCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgic2hvdWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRoZXJl
IGlzIGEgY29tbWl0IHJldmlzaW9uIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQgcmV2aXNpb24g
cHJlZml4IiwgYXN5bmMgKCkgPT4gewpAQCAtNDg2LDggKzQ4Niw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JS
ZXBvcnQoY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXIpOwogICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBjb21taXRzT25l
UHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1v
dGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5ND9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVz
dWx0Wydjb21taXRzJ11bMF0sIGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyWydjb21taXRzJ11b
MF0pOwogICAgICAgICB9KTsKIApAQCAtNDk2LDcgKzQ5Niw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8yMTA5MD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBub3QgbWF0Y2ggcHJlZml4IGFuZCByZXR1
cm4gJ1Vua293bkNvbW1pdCcgd2hlbiBzdm4gY29tbWl0IHN0YXJ0cyB3aXRoICdyJyBwcmVmaXgg
YW5kIHRoZXJlIGlzIG5vIGV4YWN0IG1hdGNoIiwgYXN5bmMgKCkgPT4gewpAQCAtNTA0LDcgKzUw
NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAg
ICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBy
ZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9yMjEwOTU/cHJlZml4LW1hdGNoPXRy
dWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93
bkNvbW1pdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdVbmtub3duQ29tbWl0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJzaG91bGQg
aGFuZGxlIGNvbW1pdCByZXZpc2lvbiB3aXRoIHNwYWNlIiwgKCkgPT4gewpAQCAtNTE1LDEyICs1
MTUsMTIgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1MlMjBYLzEwLjExLjEwJTIwU2llcnJh
MTZDNjcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKIAogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3VsdHMuY29tbWl0c1swXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LmlkLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAgU2llcnJhMTZDNjcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29tbWl0LmlkKSwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJzEwLjEx
LjEwIFNpZXJyYTE2QzY3Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUz
OCwxMyArNTM4LDEzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9v
d25lci1yZXZpc2lvbj0xMC4xMiUyMDE2QTMyMycpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVz
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21t
aXRzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBvd25lZENvbW1pdCA9IHJl
c3VsdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21t
aXQucmVwb3NpdG9yeSwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93bmVkQ29t
bWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93
bmVkQ29tbWl0LmlkLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQob3duZWRDb21taXQucmVwb3NpdG9yeSksIDIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvd25lZENvbW1pdC5yZXZpc2lvbiwgJzIxMDk1MCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvd25lZENvbW1pdC5pZCksIDIpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NTgsOCArNTU4LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIw
MTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cywgW10pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NzMsOCArNTczLDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIwMTZBMzI0JykK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KQogICAgIH0pOwpAQCAtNTgyLDcgKzU4Miw3IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJl
cG9zaXRvcnk+Lz9wcmVjZWRpbmdSZXZpc2lvbj08Y29tbWl0LTE+Jmxhc3RSZXZpc2lvbj08Y29t
bWl0LTI+JywgKCkgPT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90
Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvP2Zyb209MjEwOTAwJnRvPTIxMTAwMCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9z
aXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIApAQCAtNTk0LDcgKzU5NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTAwJmxhc3RSZXZpc2lvbj0yMTEwMDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNv
bW1pdCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MDcsOCArNjA3LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBd
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5
NDkmbGFzdFJldmlzaW9uPTIxMDk1MCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRz
J10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtNjIxLDcgKzYyMSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2Vk
aW5nUmV2aXNpb249MjEwOTUwJmxhc3RSZXZpc2lvbj0yMTA5NDknKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29tbWl0UmFuZ2Un
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjM1LDggKzYzNSw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2
QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXS5tYXAoKGNvbW1pdCkgPT4gY29tbWl0WydyZXZpc2lvbiddKSwgWycxMC4x
MiAxNkIyNTU1JywgJzEwLjEyIDE2QjI2NTcnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBj
b21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjUwLDcgKzY1MCw3IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMy
MyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjY0LDcgKzY2NCw3IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZs
YXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjc4LDggKzY3OCw4IEBAIGRlc2NyaWJlKCIv
YXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0
UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1p
dHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC02OTMsOCArNjkzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNl
ZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTcwOCw4ICs3MDgsOCBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZsYXN0
UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNP
bmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAgICAgICAgICAgICAgICAg
cHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEw
OTQ5JywKQEAgLTc0Myw4ICs3NDMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNp
b249MjEwOTQ3Jmxhc3RSZXZpc2lvbj0yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lv
bkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRz
Wydjb21taXRzJ11bMV0pOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCmlu
ZGV4IGJkYTI3NGZiMTk5NmQ0N2E2MTIxNDNmY2Y1MjJkNmQ5OTRjNGVmZDguLmFjNzE5ZTlkYzgw
MWUyYTYwM2QxZDMzOGEwYWY5NmU3MTc5NmYwNzAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCkBA
IC0xMyw3ICsxMyw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewog
CiAgICAgaXQoInNob3VsZCBnZW5lcmF0ZSBhbiBlbXB0eSBtYW5pZmVzdCB3aGVuIGRhdGFiYXNl
IGlzIGVtcHR5IiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL21hbmlmZXN0JykudGhlbigobWFuaWZlc3QpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMobWFuaWZlc3QpLnNvcnQoKSwgWydhbGwn
LCAnYnVnVHJhY2tlcnMnLCAnYnVpbGRlcnMnLCAnZGFzaGJvYXJkJywgJ2Rhc2hib2FyZHMnLAor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCku
c29ydCgpLCBbJ2FsbCcsICdidWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAn
ZGFzaGJvYXJkcycsCiAgICAgICAgICAgICAgICAgJ2ZpbGVVcGxvYWRTaXplTGltaXQnLCAnbWF4
Um9vdFJldXNlQWdlSW5EYXlzJywgJ21ldHJpY3MnLCAncGxhdGZvcm1Hcm91cHMnLCAncmVwb3Np
dG9yaWVzJywgJ3NpdGVUaXRsZScsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cycsICdzdW1tYXJ5
UGFnZXMnLCAndGVzdEFnZVRvbGVyYW5jZUluSG91cnMnLCAndGVzdHMnLCAndHJpZ2dlcmFibGVz
J10pOwogCkBAIC00NSwyMiArNDUsMjIgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdi
dWdfdHJhY2tlcnMnLCBidWd6aWxsYURhdGEpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAg
ICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJsOiAnaHR0
cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJs
OiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICAgICAgbmV3QnVn
VXJsOiAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJywgcmVwb3NpdG9yaWVzOiBudWxsfX0pOwog
CiAgICAgICAgICAgICBsZXQgbWFuaWZlc3QgPSBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChj
b250ZW50KTsKICAgICAgICAgICAgIGxldCB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgx
KTsKICAgICAgICAgICAgIGFzc2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy8nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUo
KSwgJ0J1Z3ppbGxhJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5i
dWdVcmwoMTIzKSwgJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy8nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIGNsZWFyIEJ1
ZyBhbmQgQnVnVHJhY2tlciBzdGF0aWMgbWFwcyB3aGVuIHJlc2V0IiwgYXN5bmMgKCkgPT4gewog
ICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdidWdfdHJhY2tlcnMn
LCBidWd6aWxsYURhdGEpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdV
cmw6ICdodHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1
Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAogICAgICAgICAgICAgbmV3QnVn
VXJsOiAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJywgcmVwb3NpdG9yaWVzOiBudWxsfX0pOwog
CiAgICAgICAgIE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwpAQCAtOTIsMjgg
KzkyLDI4IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3Ry
YWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAgbGV0IG1hY29zID0gUmVwb3NpdG9y
eS5maW5kQnlJZCg5KTsKICAgICAgICAgICAgIGFzc2VydChtYWNvcyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgICAgICBsZXQgaW9z
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgyMik7CiAgICAgICAgICAgICBhc3NlcnQoaW9zKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOwogCiAgICAgICAgICAgICBsZXQg
dHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQodHJh
Y2tlcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxs
YScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRw
czovL3dlYmtpdC5vcmcvYi8xMjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2Vy
Lm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRyYWNrZXIucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBz
Oi8vd2Via2l0Lm9yZy9iLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRy
YWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOwogCiAgICAgICAgICAgICB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgyKTsKICAg
ICAgICAgICAgIGFzc2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLm5hbWUoKSwgJ1JhZGFyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZSh0cmFja2VyLnJlcG9zaXRvcmllcygpKSwgW2lvcywgbWFjb3NdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ1JhZGFyJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZSh0cmFja2VyLnJlcG9zaXRvcmllcygpKSwgW2lvcywgbWFjb3NdKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEzMSwxOSArMTMxLDE5IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0Jywg
ZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZCgxMSk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8x
MjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQub3duZWRSZXBvc2l0b3JpZXMo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwg
J1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JS
ZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm93bmVkUmVwb3NpdG9yaWVzKCksIG51bGwpOwog
CiAgICAgICAgICAgICBsZXQgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKICAgICAgICAg
ICAgIGFzc2VydChvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdP
UyBYJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmll
cygpLCBbUmVwb3NpdG9yeS5maW5kQnlJZCgzNSldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3gubmFtZSgpLCAnT1MgWCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChvc3gub3duZWRSZXBvc2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUp
XSk7CiAKICAgICAgICAgICAgIGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAg
ICAgICAgICAgIGFzc2VydChpb3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1l
KCksICdpT1MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3Mub3duZWRSZXBvc2l0b3Jp
ZXMoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwg
J2lPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5vd25lZFJlcG9zaXRv
cmllcygpLCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBA
QCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZGVycywgeworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CiAgICAgICAgICAg
ICAgICAgJzEnOiB7bmFtZTogJ1NvbWVCdWlsZGVyJywgYnVpbGRVcmw6ICdodHRwczovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvJGJ1aWxkZXJOYW1lL2J1aWxkLyRidWlsZFRhZyd9LAogICAg
ICAgICAgICAgICAgICcyJzoge25hbWU6ICdTb21lT3RoZXJCdWlsZGVyJywgYnVpbGRVcmw6IG51
bGx9CiAgICAgICAgICAgICB9KTsKQEAgLTE2NSwxMyArMTY1LDEzIEBAIGRlc2NyaWJlKCcvYXBp
L21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgYnVpbGRlciA9IEJ1
aWxkZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lQnVpbGRlcicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgJ2h0dHBzOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9Tb21lQnVpbGRlci9idWlsZC8xMjMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAn
aHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycp
OwogCiAgICAgICAgICAgICBidWlsZGVyID0gQnVpbGRlci5maW5kQnlJZCgyKTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZGVyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLm5h
bWUoKSwgJ1NvbWVPdGhlckJ1aWxkZXInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZGVyLnVybEZvckJ1aWxkKDEyMyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZU90aGVyQnVpbGRlcicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yMDIsMTQgKzIwMiwxNCBAQCBkZXNjcmliZSgnL2FwaS9tYW5p
ZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7
CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudC50ZXN0cywgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50LnRlc3RzLCB7CiAgICAgICAgICAgICAgICAgIjEiOiB7Im5hbWUiOiAiU29tZVRl
c3QiLCAicGFyZW50SWQiOiBudWxsLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjIi
OiB7Im5hbWUiOiAiU29tZU90aGVyVGVzdCIsICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxs
fSwKICAgICAgICAgICAgICAgICAiMyI6IHsibmFtZSI6ICJDaGlsZFRlc3QiLCAicGFyZW50SWQi
OiAiMSIsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgICAgICAiNCI6IHsibmFtZSI6ICJHcmFu
ZENoaWxkIiwgInBhcmVudElkIjogIjMiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5tZXRyaWNzLCB7CiAgICAgICAg
ICAgICAgICAgJzUnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMScsIGFnZ3JlZ2F0b3I6IG51bGx9
LAogICAgICAgICAgICAgICAgICc2Jzoge25hbWU6ICdUaW1lJywgdGVzdDogJzInLCBhZ2dyZWdh
dG9yOiAnVG90YWwnfSwKICAgICAgICAgICAgICAgICAnNyc6IHtuYW1lOiAnTWFsbG9jJywgdGVz
dDogJzInLCBhZ2dyZWdhdG9yOiAnVG90YWwnfSwKQEAgLTI0NCw3ICsyNDQsNyBAQCBkZXNjcmli
ZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChpb3NH
cm91cCk7CiAgICAgICAgICAgICBhc3NlcnQobWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3Mn
KTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChzb21lVGVzdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAg
ICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI1Myw5ICsy
NTMsOSBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAg
ICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFsbG9jKSk7
CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNH
cm91cCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAn
aU9TIDkgaVBob25lIDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlw
aG9uZTVzLm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogICAgICAgICAgICAgYXNzZXJ0KGlv
czlpcGhvbmU1cy5oYXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlp
cGhvbmU1cy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9z
OWlwaG9uZTVzLmhhc1Rlc3QoY2hpbGRUZXN0KSk7CkBAIC0yNjQsNjMgKzI2NCw2MyBAQCBkZXNj
cmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydCgh
aW9zOWlwaG9uZTVzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0VGltZSkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAg
ICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMuZ3JvdXAoKSwgaW9zR3Jv
dXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgp
LCBpb3NHcm91cCk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1BsYXRmb3JtcyA9IG1hY0dyb3Vw
LnBsYXRmb3JtcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJp
Y2tzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXNbMF0sIG1h
dmVyaWNrcyk7CiAKICAgICAgICAgICAgIGNvbnN0IGlvc1BsYXRmb3JtcyA9IGlvc0dyb3VwLnBs
YXRmb3JtcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlwaG9u
ZTVzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXNbMF0sIGlv
czlpcGhvbmU1cyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1lKCks
ICdTb21lVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0LnBhcmVudFRl
c3QoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0LnBhdGgo
KSwgW3NvbWVUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3Qu
bmFtZSgpLCAnU29tZVRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21l
VGVzdC5wYXJlbnRUZXN0KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzb21lVGVzdC5wYXRoKCksIFtzb21lVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFz
b21lVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21lVGVzdE1ldHJpY10p
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMubmFtZSgpLCAnVGlt
ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JO
YW1lKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmxh
YmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0TWV0
cmljLmNoaWxkTWV0cmljcygpLCBjaGlsZFRlc3QubWV0cmljcygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7
Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVP
dGhlclRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0LnBhcmVu
dFRlc3QoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVPdGhlclRl
c3QucGF0aCgpLCBbc29tZU90aGVyVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzb21lVGVzdC5jaGlsZFRlc3RzKCksIFtjaGlsZFRlc3RdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZVRlc3QubWV0cmljcygpLCBbc29tZVRlc3RNZXRy
aWNdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLm5h
bWUoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1l
dHJpYy5hZ2dyZWdhdG9yTmFtZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lVGVzdE1ldHJpYy5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5jaGlsZE1ldHJpY3MoKSwgY2hpbGRUZXN0
Lm1ldHJpY3MoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRy
aWMuZnVsbE5hbWUoKSwgJ1NvbWVUZXN0IDogVGltZScpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5wYXJlbnRUZXN0KCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBh
dGgoKSwgW3NvbWVPdGhlclRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZU90aGVyVGVz
dC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1lJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uYWdncmVn
YXRvck5hbWUoKSwgJ1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVy
VGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3RhbCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxl
bmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNz
KClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdN
YWxsb2MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVsxXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGls
ZE1ldHJpY3MoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhl
clRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9jIDog
VG90YWwnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdD
aGlsZFRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QucGFyZW50VGVz
dCgpLCBzb21lVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5w
YXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5u
YW1lKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVy
VGVzdC5tZXRyaWNzKClbMF0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwg
J1RpbWUgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhl
clRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUo
KSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsx
XS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVsxXS5jaGlsZE1ldHJpY3MoKS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJU
ZXN0IDogTWFsbG9jIDogVG90YWwnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVzdCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRU
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoIWNoaWxkVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVN
ZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5jaGlsZFRl
c3RzKCksIFtncmFuZENoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxk
VGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGls
ZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBC
IENoaWxkVGVzdCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hp
bGRUZXN0Lm5hbWUoKSwgJ0dyYW5kQ2hpbGQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cmFuZENoaWxkVGVzdC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3Qs
IGdyYW5kQ2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNo
aWxkVGVzdC5jaGlsZFRlc3RzKCksIFtncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdU
aW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3Mo
KVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6IFRpbWUnKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUoKSwgJ0dy
YW5kQ2hpbGQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVz
dC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5k
Q2hpbGRUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoZ3JhbmRDaGlsZFRlc3Qub25seUNvbnRh
aW5zU2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENo
aWxkVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFu
ZENoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwg
J1NvbWVUZXN0IFx1MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBUaW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVz
dHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0
Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
YW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgp
LCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3NCw1OSArMzc0LDU5IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0
LmZldGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMp
LCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9z
V2Via2l0MSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3NXZWJraXQxLm93bmVySWQoKSwgOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NX
ZWJraXQxLnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3NXZWJraXQx
Lm93bmVySWQoKSksIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0
MS51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAg
IGNvbnN0IHNoYXJlZCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzaGFyZWQubmFtZSgpLCAnU2hhcmVkJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IHNvbWVUZXN0ID0gVGVzdC5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lVGVzdC5uYW1lKCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNv
bWVPdGhlclRlc3QgPSBUZXN0LmZpbmRCeUlkKDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOwog
CiAgICAgICAgICAgICBjb25zdCBjaGlsZFRlc3QgPSBUZXN0LmZpbmRCeUlkKDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7
CiAKICAgICAgICAgICAgIGNvbnN0IGlvczlpcGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkg
aVBob25lIDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVz
Lm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogCiAgICAgICAgICAgICBjb25zdCBtYXZlcmlj
a3MgPSBQbGF0Zm9ybS5maW5kQnlJZCg0Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2
ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKIAogICAgICAg
ICAgICAgY29uc3Qgc2llcnJhID0gUGxhdGZvcm0uZmluZEJ5SWQoMTA0KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2llcnJhLm5hbWUoKSwgJ1RydW5r
IFNpZXJyYSBNYWNCb29rUHJvMTEsMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJp
Z2dlcmFibGUuYWxsKCkubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDMpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNv
c1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRl
c3QsIG1hdmVyaWNrcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3NUcmlnZ2VyYWJs
ZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWFjb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlv
bihzb21lT3RoZXJUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGls
ZFRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhl
clRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVz
dCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IGlv
c1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90
aGVyVGVzdCwgaW9zOWlwaG9uZTVzKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChpb3NU
cmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW9zVHJpZ2dlcmFibGUubmFtZSgpLCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJs
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zVHJpZ2dlcmFibGUubmFtZSgp
LCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRy
aWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhv
bmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2Vy
YWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlv
c1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJs
ZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpLCBp
b3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFi
bGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NU
cmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1RyaWdnZXJhYmxlID0gVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIHNpZXJyYSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwobWFjVHJpZ2dlcmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndlYmtp
dC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNUcmlnZ2VyYWJsZS5u
YW1lKCksICdtYWMtYnVpbGQud2Via2l0Lm9yZycpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY1Ry
aWdnZXJhYmxlLmFjY2VwdGVkVGVzdHMoKS5oYXMoc29tZVRlc3QpKTsKIAogICAgICAgICAgICAg
Y29uc3QgZ3JvdXBzID0gbWFjVHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBUcmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKGdyb3Vwcyk7CiAKICAgICAgICAgICAg
IGNvbnN0IGVtcHR5Q3VzdG9tU2V0ID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKQEAgLTQ0NSwzNSAr
NDQ1LDM1IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQsICcxOTE2MjInKTsKICAgICAgICAgICAgIGN1c29tU2V0V2l0aFdlYktpdEFuZFNo
YXJlZC5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkLCAnODY0NTYnKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWUoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29t
U2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2Vi
S2l0KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUo
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLmlzSGlkZGVuKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2Vw
dHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCB0
cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwotCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWUoZ3JvdXBzWzJdLnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0
V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNj
ZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21T
ZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUo
Z3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0
V2l0aE9TWCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sw
XS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRB
bmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmlzSGlkZGVuKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0c0N1
c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2Vw
dHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hB
bmRXZWJLaXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
MV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2Vi
S2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJd
Lm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBz
WzJdLnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9t
U2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2Vi
S2l0QW5kU2hhcmVkKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCmluZGV4IDM1MmI2
MTJmNzY3NjE4NTVlNzhmNTM2YmIzYTEzMDg5NTVhY2IxZjQuLjI2YWYzZDMwMWM1ZGEzMzQ2NjIx
OTQ4N2IwMzQ3N2NhMjI0ZGNjYzYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMu
anMKQEAgLTI0MywxMiArMjQzLDEyIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0
V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxk
VGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJu
IHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmln
dW91c1JlcXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1NiwxMiArMjU2LDEy
IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRy
aWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWApOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNjksMTIgKzI2OSwxMiBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9u
JywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1hJm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJ
ZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZv
cm0nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MiwxMiArMjgyLDEyIEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50
YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YmApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
TWV0cmljJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTcsNyArMzE3LDcgQEAgZGVz
Y3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVh
c3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT00NiZtZXRyaWM9NWApLnRoZW4oKHJlc3BvbnNlKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlKTsKICAgICAgICAgICAgIH0sIChlcnJvcikg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMjYsMzEgKzMyNiwzMSBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9u
JywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFz
dXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3Vs
dC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsn
YnVpbGRUaW1lJ10pKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5
cyhyZXNwb25zZSkuc29ydCgpLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhyZXNwb25zZSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnY2x1c3RlckNv
dW50JywgJ2NsdXN0ZXJTaXplJywgJ2NsdXN0ZXJTdGFydCcsCiAgICAgICAgICAgICAgICAgICAn
Y29uZmlndXJhdGlvbnMnLCAnZWxhcHNlZFRpbWUnLCAnZW5kVGltZScsICdmb3JtYXRNYXAnLCAn
bGFzdE1vZGlmaWVkJywgJ3N0YXJ0VGltZScsICdzdGF0dXMnXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIFsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWwogICAgICAgICAgICAg
ICAgICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50JywgJ3N1bScsICdzcXVhcmVTdW0nLCAn
bWFya2VkT3V0bGllcicsCiAgICAgICAgICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1l
JywgJ2J1aWxkJywgJ2J1aWxkVGltZScsICdidWlsZFRhZycsICdidWlsZGVyJ10pOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVp
bGRUaW1lLnN0YXJ0VGltZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CiAgICAgICAg
ICAgICBhc3NlcnQodHlwZW9mKHJlc3BvbnNlWydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcics
ICdsYXN0TW9kaWZpZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10p
LCBbJ2N1cnJlbnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVj
dC5rZXlzKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddKSwgWydjdXJyZW50J10pOwogCiAgICAg
ICAgICAgICBjb25zdCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydj
dXJyZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHJlc3Bv
bnNlWydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zv
cm1hdE1hcCddLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZv
cm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAg
ICAgICAgIG1lYW46IDMsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAg
ICAgICAgICAgICAgc3VtOiAxNSwKQEAgLTM2Nyw3ICszNjcsNyBAQCBkZXNjcmliZSgiL2FwaS9t
ZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVy
Rm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywg
J1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25z
dCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKQEAgLTM4MywyMCArMzgzLDIwIEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkZXJzID0gcmVzdWx0WzJdOwogICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBy
ZXN1bHRbM107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRl
cnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50SWQgPSBydW5zWzBd
WydpZCddOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJZCA9IGJ1aWxkc1swXVsnaWQnXTsKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydpZCddOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydjb25m
aWd1cmF0aW9ucyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1l
YXN1cmVtZW50ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10u
aW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVp
bGRJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zv
cm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4
T2YoJ2lkJyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1
aWxkSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3Bv
bnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uVGlt
ZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0
J11bJ3RpbWVzdGFtcCddKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvbkJ1aWxkVGltZSA9
ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJv
d3NbMF0pLCB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFu
OiAxMywKICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAg
c3VtOiA2NSwKQEAgLTQzOSw3ICs0MzksNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1z
ZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRp
bWUsCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAogICAgICAg
ICAgICAgICAgYnVpbGRUYWc6ICcxMjQnIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAn
XSwgY3VycmVudFJvd3NbMV0pLCB7CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAg
ICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAt
NDY2LDE2ICs0NjYsMTYgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0
aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3Jt
SWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKIAogICAgICAgICBjb25zdCBjdXJyZW50
Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRh
ZywgMTI3KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1h
dE1hcCddLCBjdXJyZW50Um93c1sxXSkuYnVpbGRUYWcsIDEyOCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5i
dWlsZFRhZywgJzEyNycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChy
ZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgJzEyOCcpOwog
ICAgICAgICBhc3NlcnQoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3Nb
MF0pLmNvbW1pdFRpbWUgPCByZXNwb25zZS5zdGFydFRpbWUpOwogICAgICAgICBhc3NlcnQoZm9y
bWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmNvbW1pdFRpbWUgPCBy
ZXNwb25zZS5zdGFydFRpbWUpOwogCiAgICAgICAgIGNvbnN0IGJhc2VsaW5lUm93cyA9IHJlc3Bv
bnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICBhc3NlcnQuZXF1YWwo
YmFzZWxpbmVSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgMTMxKTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBi
YXNlbGluZVJvd3NbMV0pLmJ1aWxkVGFnLCAxMjkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYmFzZWxpbmVSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRh
ZywgJzEzMScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25z
ZVsnZm9ybWF0TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsICcxMjknKTsKICAgICB9
KTsKIAogICAgIGl0KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBidWlsZCB0aW1lIHdoZW4gY29t
bWl0IHRpbWVzIGFyZSBtaXNzaW5nIiwgKCkgPT4gewpAQCAtNTIyLDggKzUyMiw4IEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0
Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50
Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBd
KSwgeworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsn
Zm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAgbWVhbjogMywK
ICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiAx
NSwKQEAgLTUzMyw3ICs1MzMsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiArRGF0ZS5VVEMoMjAxNywg
MCwgMTksIDE1LCAyOCwgMSksCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6ICtEYXRlLlVUQygy
MDE3LCAwLCAxOSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGFnOiAnMTAwMScg
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0
TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAg
ICAgICAgICAgICAgICBtZWFuOiA3LAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1
LAogICAgICAgICAgICAgICAgIHN1bTogMzUsCkBAIC01NjIsOSArNTYyLDkgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMo
YC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRy
aWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91
bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVp
bGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0
ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNw
b25zZSwgJ2N1cnJlbnQnKSwKICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0aEFuY2llbnRSZXZp
c2lvblswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWlsZFRhZydd
XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTgwLDEwICs1ODAsMTAgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMo
YC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRy
aWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAn
c2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJz
Jyk7CiAgICAgICAgICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlv
bnMnXVsnY3VycmVudCddOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxl
bmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRX
aXRoQW5jaWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoQnVpbGRUaW1lWzBd
WydidWlsZFRhZyddXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJv
d3MubGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQn
KSwgW3JlcG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhC
dWlsZFRpbWVbMF1bJ2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYw
MywxNCArNjAzLDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkv
bWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHty
ZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1Jlc3VsdCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0u
anNvbmApLnRoZW4oKGNhY2hlZFJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOwogICAgICAgICAgICAg
ICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2Fj
aGVkUmVzdWx0WydzdGFydFRpbWUnXX0uanNvbmApOwogICAgICAgICAgICAgfSkudGhlbigob2xk
UmVzdWx0KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb2xkYnVpbGRUYWdzID0gYnVpbGRU
YWdzKG9sZFJlc3VsdCwgJ2N1cnJlbnQnKTsKICAgICAgICAgICAgICAgICBjb25zdCBuZXdidWls
ZFRhZ3MgPSBidWlsZFRhZ3MobmV3UmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAg
IGFzc2VydChvbGRidWlsZFRhZ3MubGVuZ3RoID49IDIsICdUaGUgb2xkIGNsdXN0ZXIgc2hvdWxk
IGNvbnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KG5ld2J1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBuZXcgY2x1c3RlciBzaG91bGQgY29u
dGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5l
d2J1aWxkVGFncy5zbGljZSgwLCAyKSwKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1
aWxkVGFncy5zbGljZSgwLCAyKSwKICAgICAgICAgICAgICAgICAgICAgJ1R3byBjb25zZXFjdXRp
dmUgY2x1c3RlcnMgc2hvdWxkIHNoYXJlIHR3byBkYXRhIHBvaW50cycpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwpAQCAtNjI5LDkgKzYyOSw5IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBtYW5pZmVz
dCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwogCiAgICAgICAgICAgICAg
ICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdNb3VudGFpbiBMaW9uJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNZXRyaWMuYWxsKCkubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICBjb25zdCBtZXRyaWMgPSBNZXRyaWMuYWxsKClbMF07Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBw
cmltYXJ5Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwbGF0Zm9ybS5sYXN0TW9kaWZpZWQobWV0cmljKSwgcHJpbWFyeUNsdXN0ZXJb
J2xhc3RNb2RpZmllZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTY3MywxMCArNjczLDEwIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICBpdCgic2hvdWxkIGFsbG93IHRvIHJlcG9ydCBhIGJ1aWxkIHJlcXVl
c3QiLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJlcG9y
dEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhC
dWlsZFJlcXVlc3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OV2l0aFN0YXR1cygnL2FwaS9tZWFzdXJlbWVudC1zZXQvP2FuYWx5c2lzVGFzaz01MDAnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEy
LCA1MCwgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1l
bnRzJ10sIFtbMSwgNCwgMywgMTIsIDUwLCBbCiAgICAgICAgICAgICAgICAgWycxJywgJzknLCAn
MTAuOC4yIDEyQzYwJywgbnVsbCwgMF0sIFsnMicsICcxMScsICcxNDE5NzcnLCBudWxsLCAxMzYw
MTQwOTIwOTAwXV0sCiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwg
J2N1cnJlbnQnXV0pOwogICAgIH0pOwpAQCAtNzExLDE3ICs3MTEsMTcgQEAgZGVzY3JpYmUoIi9h
cGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCByZW1vdGUg
PSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2Nr
RGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2Fp
dCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBv
cnRXaXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lQW5kQnVpbGRSZXF1ZXN0KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCiAgICAgICAgIGNvbnN0
IHJhd1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9j
b21taXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENv
bW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBl
Y3RlZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4y
JTIwMTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNb
MF0udGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0
VGltZSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUw
MCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwg
MywgMTIsIDUwLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFz
dXJlbWVudHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgIFsnMScsICc5Jywg
JzEwLjguMiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWycyJywgJzEx
JywgJzE0MTk3NycsIG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAg
ICAgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDEsIDEsICdjdXJyZW50J11dKTsKICAgICB9KTsK
QEAgLTc1NywxNCArNzU3LDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbcmVwb3J0V2l0aENvbW1pdHNOZWVkc1JvdW5kQ29tbWl0VGltZV0pOwogCiAgICAgICAgIGNv
bnN0IHJhd1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9jb21taXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktp
dENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBl
eHBlY3RlZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0
ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAu
OC4yJTIwMTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1p
dHNbMF0udGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29t
bWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlQbGF0Zm9ybUFu
ZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdGcmFtZVJhdGUnKTsKICAgICAgICAgY29uc3QgcHJp
bWFyeUNsdXN0ZXIgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocHJpbWFyeUNsdXN0ZXIuY29u
ZmlndXJhdGlvbnMuY3VycmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJhdGlvbnMuY3Vy
cmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCiAgICAgICAgICAgICBbMSwgMSwgJzEw
LjguMiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWzIsIDIsICcxNDE5
NzcnLCBudWxsLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWVdXSwKICAgICAgICAgICAgIGV4cGVj
dGVkV2ViS2l0Q29tbWl0VGltZSwgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDFdXSk7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IDMyNDczMzk2MTg4ZjY4
YzczOWQ3NDhhYmY4YTg2ZmVkNGE0MGZmZTEuLmI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQw
YzMwYzRiMTg1OWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC03OCwx
NiArNzgsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRy
dWUiLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNs
YXZlIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCAo
KSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91
bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTk1LDcgKzk1LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9y
dChlbXB0eVJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9y
dCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTAzLDExICsxMDMsMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZv
clJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvc2l0b3Jp
ZXMnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydu
YW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsnbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1p
dHNbMF1bJ3JlcG9zaXRvcnknXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTUsNyAr
MTE1LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJz
aW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21t
aXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBAIC0xMjMsMTQgKzEyMywxNCBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGxldCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogICAgICAgICAgICAg
bGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1swXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERh
dGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21t
aXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBd
WyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2
aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMt
MDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBj
b21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTM4LDEwICsxMzgsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25JbnZhbGlkQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2
aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmV2aXNpb24nKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRh
dGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTQ5LDMyICsxNDksMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2
ZUZvclJlcG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAg
ICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5z
ZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25z
dCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsK
IAogICAgICAgICAgICAgbGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNv
bW1pdHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24n
XSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6
MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1b
J21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydwcmV2aW91c19jb21taXQnXSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbidd
LCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAw
ODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1b
J3ByZXZpb3VzX2NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogCiAgICAgICAgICAgICByZXBv
cnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsndGltZSddLnRvU3Ry
aW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0
YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21t
aXR0ZXInXSwgY29tbWl0dGVyc1sxXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXVsncHJldmlvdXNfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydh
dXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFd
WydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWRE
YXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzFdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcp
LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1b
J21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydwcmV2aW91c19j
b21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xh
dmVGb3JSZXBvcnQoc3VidmVyc2lvbkludmFsaWRQcmV2aW91c0NvbW1pdCkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb0ZpbmRQcmV2aW91c0NvbW1pdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmlu
ZFByZXZpb3VzQ29tbWl0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTIwMCwxOCArMjAwLDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0
QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsw
XTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydp
ZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJl
cG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBv
cnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydh
dXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0
ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMjgsMjMgKzIyOCwyMyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMn
KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0
WzFdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1sw
XVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSdd
LCBmaXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCdd
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3Nh
Z2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0
dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10s
IGZpcnN0RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzFdWydpZCddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBudWxsKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTI1OSwxMiArMjU5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2Nv
bW1pdHRlcnMnKTsKICAgICAgICAgfSkudGhlbigoY29tbWl0dGVycykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3Vu
dCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSdd
LCBhdXRob3JbJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
dGVyc1swXVsnYWNjb3VudCddLCBhdXRob3JbJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0zMDIsMTUgKzMwMiwxNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlRm9yUmVwb3J0KHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1p
dCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzYW1lUmVwb3NpdG9yeU5hbWVJbk93
bmVkQ29tbWl0QW5kTWFqb3JDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncmVw
b3NpdG9yaWVzJywgeyduYW1lJzogJ1dlYktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CiAgICAgICAgICAg
ICBsZXQgb3NXZWJLaXQgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgd2Via2l0UmVwb3Np
dG9yeSA9IHJlc3VsdFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc1dlYktpdC5p
ZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJL
aXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RT
dHJpY3RFcXVhbChvc1dlYktpdC5pZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3NXZWJLaXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1l
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVy
LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Myw3ICszNDMsNyBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRX
aXRoT3duZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZl
cnNpb25Db21taXRXaXRoT3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1p
dHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDMyJ30pLAogICAgICAgICAgICAgICAgIGRiLnNl
bGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnV2ViS2l0IENvbW1pdCd9KSwKICAgICAg
ICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ0phdmFTY3Jp
cHRDb3JlIGNvbW1pdCd9KSwKQEAgLTM1MSw1NCArMzUxLDU0IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICJXZWJLaXQifSks
CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzog
J0phdmFTY3JpcHRDb3JlJ30pXSkKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdCA9IHJl
c3VsdFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdENvbW1pdCA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmlj
dEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY0NvbW1pdCA9IHJlc3VsdFsy
XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IG9zeFJlcG9zaXRvcnkgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1
YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbNF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
NF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1
bHRbNF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0UmVwb3NpdG9yeSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9y
eSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbNV1bMF07Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJl
cG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdC5yZXBvc2l0
b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBv
c2l0b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnks
IHdlYmtpdFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpz
Y0NvbW1pdC5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5Lmlk
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBv
c3hSZXBvc2l0b3J5LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQuaWQsICdv
d25lZCc6IHdlYmtpdENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENv
bW1pdC5pZCwgJ293bmVkJzoganNjQ29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdl
YmtpdFJlcG9zaXRvcnkuaWR9KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRG
b3JXZWJLaXRDb21taXQgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0LCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3Qgb3duZXJDb21taXRGb3JKU0NDb21taXQgPSAgcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdCwgbnVsbCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAg
fSk7CiAgICAgfSkKIApAQCAtNDQ4LDcgKzQ0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkU2xhdmVGb3JSZXBvcnQobXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29tbWl0c1dpdGhPd25lZENv
bW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgbXVsdGlwbGVTeXN0ZW1WZXJz
aW9uQ29tbWl0c1dpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0
cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2Vs
ZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZDNjcnfSksCiAgICAgICAg
ICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29t
bWl0J30pLApAQCAtNDU4LDQ5ICs0NTgsNDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIu
c2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2YVNjcmlw
dENvcmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHQubGVuZ3RoLCA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsw
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MCA9IHJlc3VsdFswXVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
b3N4Q29tbWl0MSA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
c3hDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hD
b21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzJdWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNj
Q29tbWl0MCA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2ND
b21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NDb21t
aXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0MSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5ub3RTdHJpY3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WzVdLmxlbmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IG9zeFJlcG9zaXRvcnkg
PSByZXN1bHRbNV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4UmVwb3NpdG9y
eSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeS5vd25l
ciwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNl0ubGVuZ3RoLCAx
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzZdWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnku
aWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3du
ZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WzddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wzdd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NSZXBvc2l0b3J5ID0gcmVzdWx0Wzdd
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJl
cG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRv
cnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBv
c2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NDb21taXQwLnJlcG9zaXRv
cnksIGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1p
dDEucmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBv
c2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxLnJl
cG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpzY1JlcG9z
aXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDEucmVw
b3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9y
eS5pZCk7CiAKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygn
Y29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MC5pZCwgJ293bmVkJzogd2Vi
a2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIu
c2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MS5pZCwg
J293bmVkJzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCkBAIC01MDgs
MjUgKzUwOCwyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9
dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21t
aXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3duZWQnOiBqc2NDb21t
aXQxLmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJlcG9zaXRvcnkuaWR9KV0pOwog
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHQubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQu
bGVuZ3RoLCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21taXQwID0gcmVzdWx0
WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0
Q29tbWl0MCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJD
b21taXRGb3JXZWJLaXRDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJL
aXRDb21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93
bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
b3duZXJDb21taXRGb3JKU0NDb21taXQwID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZXJDb21taXRGb3JKU0NDb21taXQxID0gcmVzdWx0WzNdWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQx
LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTQ4LDE4ICs1NDgsMTggQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0V2l0aEVtcHR5
T3duZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNp
b25Db21taXRXaXRoRW1wdHlPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIu
c2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXRfb3duZXJzaGlw
cycsICdvd25lcicpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgbGV0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgcmVwb3NpdG9yaWVz
ID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgbGV0IGNvbW1pdF9vd25lcnNoaXBzID0gcmVzdWx0
WzJdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1swXS5pZCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzWzBdLm5hbWUsICdPU1gnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRfb3duZXJzaGlwcy5sZW5ndGgsIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRv
cmllc1swXS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVz
WzBdLm5hbWUsICdPU1gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRf
b3duZXJzaGlwcy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcg
KzU4Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVl
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVt
VmVyc2lvbkNvbW1pdEFuZE93bmVkQ29tbWl0V2l0aFRpbWVzdGFtcCkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGlt
ZXN0YW1wKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRh
aW5UaW1lc3RhbXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1lc3RhbXAnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiB9KTsKQEAgLTY5OSwxMSArNjk5LDExIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LycpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgY29uc3QgY29t
bWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7CiAK
ICAgICAgICAgcmV0dXJuIGNvbW1pdHM7CiAgICAgfQpAQCAtNzEyLDcgKzcxMiw3IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgp
IHsKICAgICB7CiAgICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAgICAgICAg
IGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOwogICAgICAgICByZXN1bHQg
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvJyk7CiAgICAgICAgIHJldHVybiByZXN1bHRbJ2NvbW1pdHMnXTsKICAgICB9CkBAIC03MjAs
OSArNzIwLDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZh
bHNlIiwgZnVuY3Rpb24gKCkgewogICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoRXhwZWN0ZWRG
YWlsdXJlKGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpCiAgICAgewogICAgICAg
ICBjb25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyhjb21t
aXRzVXBkYXRlLCBleHBlY3RlZEZhaWx1cmVOYW1lKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFi
aWxpdHksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0
eSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51
bGwpOwogICAgIH0KIAogICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoICJNaXNzaW5nUmV2aXNpb24i
IGlmIGNvbW1pdCB1cGRhdGUgZG9lcyBub3QgaGF2ZSBjb21taXQgcmV2aXNpb24gc3BlY2lmaWVk
JywgYXN5bmMgKCkgPT4gewpAQCAtNzQ2LDMyICs3NDYsMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBh
d2FpdCBpbml0aWFsUmVwb3J0Q29tbWl0cygpOwogCiAgICAgICAgIGxldCBjb21taXRzID0gYXdh
aXQgZGF0YWJhc2Uuc2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzBdLnJlcG9ydGVkLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV0ucmVwb3J0ZWQsIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sw
XS5yZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFd
LnJlcG9ydGVkLCB0cnVlKTsKIAogICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRF
IGNvbW1pdHMgU0VUIGNvbW1pdF9yZXBvcnRlZD1mYWxzZScpOwogICAgICAgICBsZXQgcmVzdWx0
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBjb21taXRzVXBkYXRlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CiAKICAgICAgICAgY29tbWl0cyA9IGF3YWl0IGRhdGFiYXNlLnNlbGVjdEFsbCgn
Y29tbWl0cycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFs
c2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwog
ICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSBjb21taXRzIG1lc3Nh
Z2UsIHRpbWUsIG9yZGVyLCBhdXRob3IgYW5kIHByZXZpb3VzIGNvbW1pdCIsIGFzeW5jICgpID0+
IHsKICAgICAgICAgY29uc3QgY29tbWl0cyA9IGF3YWl0IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRT
dGF0dXMoY29tbWl0c1VwZGF0ZSwgJ09LJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxp
dHksICdCcmVha3MgYnVpbGRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRl
c3RhYmlsaXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2FnZScpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdLm9yZGVyLCAyMTA5NDgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1sxXS5vcmRlciwgMjEwOTQ5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzFdLnRpbWUsIDE0ODQ4ODYyMzA2NDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1sxXS5wcmV2aW91c0NvbW1pdCwgY29tbWl0c1swXS5pZCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzBdLnRlc3RhYmlsaXR5LCAnQnJlYWtzIGJ1aWxkcycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgJ0NyYXNoZXMgV2ViS2l0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdhbm90aGVyIG1l
c3NhZ2UnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwg
J2Fub3RoZXIgbWVzc2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sw
XS5hdXRob3JOYW1lLCAnQ2hyaXMgRHVtZXonKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMV0uYXV0aG9yTmFtZSwgJ1phbGFuIEJ1anRhcycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29tbWl0c1swXS5vcmRlciksIDIxMDk0OCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXRzWzFdLm9yZGVyKSwgMjEwOTQ5KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3
Nyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRpbWUsIDE0ODQ4ODYy
MzA2NDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5wcmV2aW91c0Nv
bW1pdCwgY29tbWl0c1swXS5pZCk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1yZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKaW5kZXggZDlhMmNlZDY3MTgzODBmYWI5ZTBjZDViMDU3
MDQ3MjE0YmQxMzRmYS4uNWM0NDVmZWZjMGQ3MjA0YzBiYjVhMTZlMDJjZjYxMzcyZmYzZmI2OSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVw
b3J0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC10ZXN0cy5qcwpAQCAtMTAxLDcgKzEwMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4g
YnVpbGRlciBuYW1lIGlzIG1pc3NpbmciLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQifV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJO
YW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzc2luZ0J1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDks
MTggKzEwOSwxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQifV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdC
dWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdNaXNzaW5nQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAg
aXQoInNob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gYnVpbGRlcnMiLCAoKSA9PiB7CiAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBbZW1wdHlSZXBvcnQoKV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxk
ZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
cG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM0LDU4ICsxMzQsNTggQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7fX1d
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZv
dW5kJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQn
XSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRS
dW5zJ10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0J1aWxkZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5n
dGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHJl
cG9ydCB3aXRoICJNaXNtYXRjaGluZ0NvbW1pdFRpbWUiIGlmIHRpbWUgZGlmZmVyZW5jZSBpcyBs
YXJnZXIgdGhhbiAxIHNlY29uZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkQnVp
bGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9y
dFdpdE1pc21hdGNoaW5nQ29tbWl0VGltZSgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2Zh
aWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3By
b2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Zh
aWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQo
KV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hp
bmdDb21taXRUaW1lJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRS
dW5zJ10sIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzbWF0Y2hpbmdDb21taXRUaW1lJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgIH0pOwogCiAgICAgaXQoJ3No
b3VsZCBub3QgcmVqZWN0IHJlcG9ydCBpZiB0aGUgY29tbWl0IHRpbWUgZGlmZmVyZW5jZSBpcyB3
aXRoaW4gMSBzZWNvbmQiJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVy
Rm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0
aE9uZVNlY29uZENvbW1pdFRpbWVEaWZmZXJlbmNlKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJl
cG9ydCgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxp
ZCBidWlsZGVyIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChl
bXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsK
ICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1w
dHlSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNl
KHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRD
b250ZW50WydidWlsZGVyUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRD
b250ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3Rz
J107Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRl
ZENvbnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250
ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5Nywx
OCArMTk3LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW3JlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5z
J10sIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RB
bGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRD
b250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAgICAgICAgICAg
ICBkZWxldGUgcmVwb3J0WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgcmVw
b3J0Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTYsMTkgKzIxNiwxOSBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChlbXB0eVNsYXZlUmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNs
YXZlUmVwb3J0KCldKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVu
cyddLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0
QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3VibWl0
dGVkQ29udGVudCA9IGVtcHR5U2xhdmVSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3Jl
ZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAg
ICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAg
ICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBz
dG9yZWRDb250ZW50Wyd0ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9y
ZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yMzgsOSArMjM4LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAg
ICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShy
ZXBvcnRzWzBdWydjb250ZW50J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENv
bnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10s
IGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOwogICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1
aWxkZXJQYXNzd29yZCcgaW4gc3RvcmVkQ29udGVudCkpOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTI1MSw4ICsyNTEsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRfc2xhdmVzJyk7CiAgICAgICAgIH0p
LnRoZW4oKHNsYXZlcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlc1swXVsnbmFtZSddLCBlbXB0
eVJlcG9ydCgpWydzbGF2ZU5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2xhdmVzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVz
WzBdWyduYW1lJ10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTI2Miw4ICsyNjIsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRlcnMnKTsKICAgICAg
ICAgfSkudGhlbigoYnVpbGRlcnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzWzBdWydu
YW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUn
XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzMsNyArMjczLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMn
KTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRzWzBdWyd0YWcnXSwgMTIzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZHNbMF1bJ3RhZyddLCAnMTIzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0y
ODMsNyArMjgzLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGRlbGV0
ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAg
ICBpdCgic2hvdWxkIHJlamVjdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1i
ZXIgYW5kIGJ1aWxkIHRhZyB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLCBhc3luYyAoKSA9PiB7CkBA
IC0yOTEsNyArMjkxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICBjb25zdCByZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICByZXBvcnQuYnVp
bGROdW1iZXIgPSAnNDU2JzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlz
bWF0Y2gnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxkIGFj
Y2VwdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRh
ZyB3aXRoIGlkZW50aWNhbCB2YWx1ZSIsIGFzeW5jICgpID0+IHsKQEAgLTI5OSw3ICsyOTksNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJl
cG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9y
dC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KQogCiAgICAgaXQoInNo
b3VsZCBhZGQgdGhlIHBsYXRmb3JtIiwgKCkgPT4gewpAQCAtMzA4LDggKzMwOCw4IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncGxh
dGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3JtcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVz
ID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsxXTsKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9ucyA9IHJlc3VsdFsyXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSku
c29ydCgpLCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBb
J1dlYktpdCcsICdtYWNPUyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxh
dGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBj
b21taXRzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNS
ZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2Nv
bW1pdF9idWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVs
YXRpb25zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRD
b21taXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydi
dWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRD
b21taXRzUmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CiAKICAgICAgICAgICAgIGxldCBy
ZXBvc2l0b3J5SWRUb05hbWUgPSB7fTsKICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkg
b2YgcmVwb3NpdG9yaWVzKQpAQCAtMzQ0LDkgKzM0NCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRz
KQogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5
SWRUb05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNp
b24nXSwgJzEwLjguMiAxMkM2MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktp
dCddWyd0aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIg
MTJDNjAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRv
UmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQn
XVsndGltZSddLnRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDIt
MDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2
MCwxNiArMzYwLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM4MiwxNiArMzgyLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlS
ZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vj
b25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAg
ICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3Ro
LCAyKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQxNSwxNyArNDE1LDE3IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxk
ZXJGb3JSZXBvcnQoZmlyc3RSZXBvcnQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJl
cG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSku
dGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW3NlY29uZFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21h
dGNoaW5nQ29tbWl0UmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFJldmlzaW9uJyk7CiAgICAgICAg
ICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE0MTk3NycpID49
IDApOwogICAgICAgICAgICAgYXNzZXJ0KEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9m
KCcxNTAwMDAnKSA+PSAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
cHJvY2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTQ4Nyw4ICs0ODcsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgZnVuY3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMo
cmVwb3J0KQogICAgIHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFu
ZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydCkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgICAgfSk7CiAgICAg
fQpAQCAtNTExLDcgKzUxMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3Jz
KHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAg
ICAgICAgfSkudGhlbigodGVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGVzdHMubWFwKChyb3cpID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RzLm1hcCgocm93KSA9PiB7IHJldHVy
biByb3dbJ25hbWUnXTsgfSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScs
ICdEdW1teUJlbmNobWFyaycsICdEdW1teVBhZ2VMb2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1Ry
YXZlcnNlTm9kZXMnLCAnYXBwbGUuY29tJywgJ3dlYmtpdC5vcmcnXSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtNTI2LDE0ICs1MjYsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rl
c3RfbmFtZSddXSA9IG5ldyBBcnJheTsKICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmlj
c1tyb3dbJ3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVn
YXRvcl9uYW1lJ11dKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBb
WydUaW1lJywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyaydd
LCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRo
bWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmlj
c1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBu
dWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1sn
YXBwbGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NT
UyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGVzdE5hbWVUb01ldHJpY3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0aG1ldGlj
J10sIFsnVGltZScsICdHZW9tZXRyaWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlCZW5jaG1hcmsnXSwgW1snVGltZScsICdB
cml0aG1ldGljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5h
bWVUb01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11d
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3Nb
J01vZGlmeU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snVHJhdmVyc2VOb2RlcyddLCBbWydUaW1l
JywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1sn
VGltZScsIG51bGxdXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDIsNyArNTQyLDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21l
dHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMKICAgICAgICAgICAgIFdIRVJFIHRlc3RfaWQgPSBt
ZXRyaWNfdGVzdCBBTkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYwogICAgICAgICAgICAgQU5E
IHRlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBtZXRyaWNO
YW1lXSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdC5yb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdC5yb3dzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
b3dzWzBdOwogICAgICAgICAgICAgfSk7CiAgICAgfQpAQCAtNTY1LDIwICs1NjUsMjAgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAg
ICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6
IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTAwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAg
ICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTEw
LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTIwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAg
ICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTog
NTMwLCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gNTAw
ICsgNTEwICsgNTIwICsgNTMwOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9j
YWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAq
IDUyMCArIDUzMCAqIDUzMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydt
ZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsg
NTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKICAgICAgICAgICAgIHJldHVybiBm
ZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47
CiAgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBy
dW5JZCwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2ZV90aW1lOiBudWxs
fSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1
ZTogMTAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDIsIGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
QEAgLTYwMCw5ICs2MDAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlOwogICAgICAgICAgICAgICAgIHNxdWFyZVN1
bSArPSB2YWx1ZSAqIHZhbHVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJl
c3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTYxMywxNSArNjEzLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBj
b25zdCBydW5JZCA9IHJlc3VsdC5ydW5bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAgKyAxMTApIC8gMiwgKDUyMCArIDEyMCkg
LyAyLCAoNTMwICsgMTMwKSAvIDJdOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwg
Z3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1swXSwgcmVsYXRpdmVfdGltZTogbnVs
bH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwg
dmFsdWU6IGV4cGVjdGVkVmFsdWVzWzFdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0
ZWRWYWx1ZXNbMl0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46
IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1szXSwg
cmVsYXRpdmVfdGltZTogbnVsbH1dKTsKICAgICAgICAgICAgIGNvbnN0IHN1bSA9IGV4cGVjdGVk
VmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7
IH0sIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0g
LyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1
ZSkgeyByZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9u
cy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hl
J10sIHN1bSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3Vt
X2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyBy
ZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtNjQyLDEwICs2NDIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0
ZWRWYWx1ZTsKICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7cnVuOiBy
dW5JZCwgb3JkZXI6IGksIGdyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwgdmFsdWU6IGV4cGVjdGVk
VmFsdWUsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3Vs
dC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1f
Y2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUn
XSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwMywxMCAr
NzAzLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1ZTsKICAgICAgICAg
ICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6
IE1hdGguZmxvb3IoaSAvIDIpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOwogICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJh
dGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21l
YW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRl
cmF0aW9ucy5sZW5ndGgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2Fj
aGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9j
YWNoZSddLCBzcXVhcmVTdW0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRl
c3RzIHdpdGhvdXQgYW55IG1ldHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7
CkBAIC03MzcsMjcgKzczNywyNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIGNvbnN0IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0
ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBs
ZXQgcnVuID0gYmVuY2htYXJrUmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJl
bmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91
cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwg
e3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVs
YXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jl
c3VsdC5pdGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMg
KyAxMykgKyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBn
cm91cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSAr
IDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6
IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5p
dGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykg
KyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBn
cm91cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9
KTsKIAogICAgICAgICBjb25zdCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1
Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qg
c3F1YXJlU3VtID0gYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93
KSA9PiB0b3RhbCArIHJvdy52YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIHNxdWFyZVN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1
bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNx
dWFyZVN1bSk7CiAKICAgICAgICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRl
c3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdBU3ViVGVzdCcsICdUaW1lJyk7CiAgICAgICAgIHJ1
biA9IHNvbWVUZXN0UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21l
VGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
c29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAge3J1biwgb3JkZXI6IDAs
IGdyb3VwOiBudWxsLCB2YWx1ZTogMzEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAg
ICAge3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnbWVhbl9jYWNoZSddLCAzMS41KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0
UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVU
ZXN0UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUn
XSwgMzEuNSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5b
J3N1bV9jYWNoZSddLCA2Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJl
c3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMzEgKiAzMSArIDMyICogMzIpOwogICAgIH0p
OwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3RzIG1pc3NpbmcgdGhlIG1hdGNoaW5nIG1l
dHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03OTIsMjcgKzc5Miwy
NyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0
IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMo
J0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVuID0gYmVuY2htYXJr
UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVy
YXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSAr
IDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdy
b3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJd
LCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgo
NCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0s
IHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJl
bGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1
ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVu
LCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgo
NCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAogICAgICAgICBjb25z
dCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+
IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJlU3VtID0gYmVuY2ht
YXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCArIHJvdy52
YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1
bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVu
Y2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hl
J10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0
LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5j
aG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAKICAgICAg
ICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9y
TWV0cmljKCdBdXhpbGlhcnlSZXN1bHQnLCAnQWxsb2NhdGlvbnMnKTsKICAgICAgICAgcnVuID0g
c29tZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0
UmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21l
VGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiAzMSArIDQxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgIHtydW4sIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDMyICsgNDIsIHJlbGF0aXZl
X3RpbWU6IG51bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0
UmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQx
ICsgMzIgKyA0Mik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQy
LCAyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21l
YW5fY2FjaGUnXSwgKDMxICsgNDEgKyAzMiArIDQyKSAvIDIpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgMzEgKyA0MSArIDMyICsg
NDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIE1hdGgucG93KDMxICsgNDEsIDIpICsgTWF0aC5wb3coMzIgKyA0Miwg
MikpOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2hlbiB0aGVy
ZSBhcmUgbW9yZSB0aGFuIG9uZSBub24tbWF0Y2hpbmcgYWdncmVnYXRvcnMgaW4gYSBzdWJ0ZXN0
IiwgYXN5bmMgKCkgPT4gewpAQCAtODQ4LDcgKzg0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH19OwogCiAgICAgICAgIGNvbnN0IHJlc3Bv
bnNlID0gYXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVz
cG9uc2UocmVwb3J0V2l0aEFtYmlnaW91c0FnZ3JlZ2F0b3JzKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRl
c3QnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05v
TWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsKICAgICB9KTsKIAogICAgIGZ1bmN0
aW9uIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKQpAQCAtODkyLDE2ICs4OTIsMTYgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0
QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFt
ZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuc2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGxldCBuZXdSZXBv
cnQgPSByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCk7CiAgICAgICAgICAgICBuZXdSZXBvcnQu
YnVpbGRUYWcgPSAiMTI1IjsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZFRpbWUgPSAiMjAx
My0wMi0yOFQxMjoxNzoyNC4xIjsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbbmV3UmVwb3J0XSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtOTMwLDE3ICs5MzAsMTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMo
J3Rlc3QxJywgJ0NvbWJpbmVkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ21lYW5fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzdW1fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVf
c3VtX2NhY2hlJ10sIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnaXRl
cmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ3N1bV9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVu
SXRlcmF0aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtOTYyLDEzICs5NjIsMTMgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlv
bnNGb3JNZXRyaWMoJ3Rlc3QnLCAnRnJhbWVSYXRlJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkp
OwogCiAgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVu
OiBydW5JZCwgb3JkZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNCwgcmVsYXRpdmVfdGltZTog
MH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwg
dmFsdWU6IDUsIHJlbGF0aXZlX3RpbWU6IDEwMH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVu
SWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDMsIHJlbGF0aXZlX3RpbWU6IDIwNX1d
KTsKQEAgLTEwMDYsNyArMTAwNiw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0c1VwZGF0aW5n
RGlmZmVyZW50VGVzdHNbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRp
bmdEaWZmZXJlbnRUZXN0c1swXV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAg
ICAgfSkudGhlbigob3JpZ2luYWxDb25maWcpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0
aW5nRGlmZmVyZW50VGVzdHNbMl1dKS50aGVuKCgpID0+IHsKQEAgLTEwMjMsMTYgKzEwMjMsMTYg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENv
bmZpZykgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXV0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICAgICAgfSkudGhlbigoY29uZmln
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29uZmlnWydjb25maWdfcnVu
c19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVu
c19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29u
ZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlm
aWVkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTA2OSw3
ICsxMDY5LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRB
Z2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDc3LDIy
ICsxMDc3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5k
QWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTIzJ30pOwogICAgICAgICB9KS50
aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygn
cGxhdGZvcm1zJywge25hbWU6ICdNb3VudGFpbiBMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCBbYW5vdGhlclJlcG9ydFdpdGhTYW1lQnVpbGRSZXF1ZXN0XSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnRmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxk
UmVxdWVzdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTI0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZvcm1zJywg
e25hbWU6ICdMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRl
c3QtZ3JvdXBzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
dGVzdC1ncm91cHMuanMKaW5kZXggYzAxOWE0MmRiMTcyNDEyMTkzMjU4ODI1MGViOTM1OTAxMTFk
OTRmOS4uMTYyOWQ0YmIwYWYxZmY0YjJkNjkzYzFjYTc1ZGY3MDdlODA4YmJjYSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanMKQEAgLTExLDM5ICsxMSwzOSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcycs
IGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3It
bm90aWZpY2F0aW9uJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGdpdmUgYW4gZW1wdHkg
bGlzdCBpZiB0aGVyZSBpcyBub3QgZXhpc3RpbmcgdGVzdCBncm91cCBhdCBhbGwnLCBhc3luYyAo
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24n
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmls
ZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBh
IHRlc3QgZ3JvdXAgd2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxlYXN0IG9uZSBidWlsZCBy
ZXF1ZXN0JywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAn
Y29tcGxldGVkJywgJ2NhbmNlbGVkJ10pOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFk
eS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5z
dGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RH
cm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJl
cXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0
U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWls
ZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgbGlzdCBhbGwgdGVzdCBncm91cHMgd2l0aCBwZW5kaW5nIG5vdGlmaWNhdGlvbicsIGFz
eW5jICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcs
ICdjb21wbGV0ZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3Rp
ZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQu
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVuLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywg
JzcwMicsICc3MDMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5j
b21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBn
cm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRob3Is
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5oaWRkZW4s
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmVlZHNO
b3RpZmljYXRpb24sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3
MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5jb21t
aXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCBoaWRkZW4gdGVzdCBncm91cCcsIGFzeW5jICgpID0+
IHsKQEAgLTUxLDEyICs1MSwxMiBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNl
LCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsK
ICAgICAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9n
cm91cHMgU0VUIHRlc3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYw
MCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVz
LCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgdGVzdCBn
cm91cHMgd2l0aG91dCBuZWVkcyBub3RpZmljYXRpb24gZmxhZycsIGFzeW5jICgpID0+IHsKQEAg
LTY0LDI0ICs2NCwyNCBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2Nv
bXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAg
ICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMg
U0VUIHRlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gPSBGQUxTRSBXSEVSRSB0ZXN0Z3JvdXBf
aWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNh
dGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2Fk
ZWRGaWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0
IGEgdGVzdCBncm91cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVkIGJ1aWxkIHJlcXVlc3RzJywg
YXN5bmMgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRh
dGFiYXNlKCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFz
ZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdydW5uaW5nJ10pOwog
ICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzgsMTggKzEzOCwxOCBAQCBkZXNjcmliZSgn
L2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tE
YXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29t
cGxldGVkJywgJ2ZhaWxlZCcsICdjb21wbGV0ZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91
cHMgU0VUIHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0
Z3JvdXBfaWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJl
cXVlc3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBjb250ZW50LnRl
c3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmlkLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC50YXNrLCA1MDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAudGFzayksIDUw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21l
IHRlc3QgZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YXV0aG9yLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLmhpZGRlbik7
CiAgICAgICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAg
ICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEn
LCAnNzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3Vw
LmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMs
IFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQw
MiddKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdy
b3VwcyBtYXkgbmVlZCBhZGRpdGlvbmFsIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4gewpA
QCAtMTU4LDMxICsxNTgsMzEgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQ
REFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVx
dWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91
cHMgU0VUIHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0
Z3JvdXBfaWQgPSA2MDEnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJl
cXVlc3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3Jv
dXBzLmxlbmd0aCwgMik7CiAKICAgICAgICAgICAgIGNvbnN0IG9uZVRlc3RHcm91cCA9IGNvbnRl
bnQudGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAu
aWQsIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLnRhc2ssIDUw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLm5hbWUsICdzb21lIHRl
c3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuYXV0aG9y
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvbmVUZXN0
R3JvdXAuaWQpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9uZVRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbmVUZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFvbmVUZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayhv
bmVUZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9u
ZVRlc3RHcm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvbmVUZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMn
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRz
LCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvbmVUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcw
MCcsJzcwMScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChvbmVUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDIn
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IGFub3RoZXJUZXN0R3JvdXAgPSBjb250ZW50LnRlc3RH
cm91cHNbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5pZCwg
NjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLnRhc2ssIDUw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5v
dGhlciB0ZXN0IGdyb3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RH
cm91cC5hdXRob3IsICd3ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChhbm90aGVyVGVzdEdyb3VwLmlkKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAubmFtZSwgJ2Fub3RoZXIg
dGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0
R3JvdXAuYXV0aG9yLCAnd2Via2l0Jyk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWFub3RoZXJU
ZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RHcm91
cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2soYW5vdGhlclRlc3RH
cm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyVGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGFub3RoZXJUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcx
MyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21t
aXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMsIFsnNzEwJywnNzExJywgJzcxMicsICc3MTMnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAn
NDAyJywgJzQwMScsICc0MDInXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3Rz
LmpzCmluZGV4IGZmZjJhY2YxZmI2MzlhYjNlOThhMmIxYjdiM2Q0MDZkZjFhY2M3ZTEuLmJiZjkz
MzY2NTBlNWVhNDE1N2RmZmE0ZDk2MmViYjk1OTA0N2U5NDAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0
cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRh
dGUtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTMwLDE0ICszMCwxNCBAQCBkZXNjcmliZSgnL2Fw
aS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCBy
ZWplY3Qgd2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUg
YXJlIG5vIHNsYXZlcycsICgpID0+IHsKICAgICAgICAgY29uc3QgdXBkYXRlID0ge3NsYXZlTmFt
ZTogZW1wdHlVcGRhdGUuc2xhdmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiBlbXB0eVVwZGF0ZS5zbGF2
ZVBhc3N3b3JkfTsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5v
dEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnU2xhdmVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgsNyAr
NDgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0ge3NsYXZlTmFtZTogZW1wdHlVcGRhdGUuc2xh
dmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiAnYmFkUGFzc3dvcmQnfTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNTgsNyArNTgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzMsMTAgKzczLDEwIEBAIGRlc2Ny
aWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxs
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4o
KHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtODcsMTIgKzg3LDEyIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHNtYWxsVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVz
dCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBzbWFs
bFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF1bJ3Rlc3QnXSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3Rl
c3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsncGxhdGZvcm0n
XSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTA4LDcgKzEwOCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3Vy
YXRpb25FbnRyeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRDb25maWd1cmF0aW9uRW50cnknKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0
b3J5R3JvdXBzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
R3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNjEsNyArMTYxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3Vw
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcz
LDcgKzE3Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVw
ZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NSw3ICsx
ODUsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5RGF0YScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnRHVwbGljYXRlUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0R1cGxpY2F0ZVJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTIyMSwxOCArMjIxLDE4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKSwgZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpXSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCBy
ZXBvc2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bmZpZ3VyYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmln
dXJhdGlvbnNbMF1bJ3Rlc3QnXSwgTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSwgTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1
cmF0aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJp
Z2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0Rh
dGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1
Myw4ICsyNTMsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRp
YWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlH
cm91cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0
aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3Vy
YXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBA
IC0yNzUsOCArMjc1LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBp
bml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0
b3J5R3JvdXBzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmln
dXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25m
aWd1cmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKICAgICB9KTsK
IApAQCAtMjkwLDE0ICsyOTAsMTQgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50
aGVuKChyZXBvc2l0b3J5R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUn
XSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gZGIuc2Vs
ZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChyZXBvc2l0b3J5
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1b
J25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydu
YW1lJ10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3VwIGlzIGF3ZXNvbWUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzOSArMzQ0LDM5IEBAIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBj
b25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5
TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAg
ICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNP
UycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
LmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlv
bigpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1Bh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFu
ZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlv
bigpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVz
KCksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0
Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZl
dGNoKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9
IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGVSZXBvc2l0
b3J5R3JvdXAuYWxsKCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5m
aW5kVG9wTGV2ZWxCeU5hbWUoJ1dlYktpdCcpOwogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBS
ZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnbWFjT1MnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24o
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Vi
a2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21S
b290cygpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFu
ZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3Rz
KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFs
c2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XS5uYW1lKCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3Vz
dG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFs
c2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0zOTUsMjkgKzM5NSwyOSBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
J25hbWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3Np
dG9yeScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29u
c3QgW3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJh
YmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1l
J10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxl
SWQoKSk7CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAog
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5
R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5
cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBb
TW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCldKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3Jp
ZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICduYW1lJyksIGRiLnNl
bGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtyZXBvc2l0b3J5
R3JvdXBzLCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbEdyb3Vwcyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0b3JpZXNCeUdy
b3VwKHJlcG9zaXRvcmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2JqZWN0LmtleXMo
cmVwb3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tE
YXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgp
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5p
dGlhbEdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVwb3NpdG9yaWVzQnlH
cm91cCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVw
b3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1hY29z
UmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlh
bEdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC00MzYsMTcgKzQzNiwxNyBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
J25hbWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3Np
dG9yeScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29u
c3QgW3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJh
YmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1l
J10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxl
SWQoKSk7CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAog
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5
R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5
cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBb
TW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCldKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3Jp
ZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKICAgICAgICAgICAgIGluaXRpYWxSZXBvc2l0b3JpZXMgPSByZXBvc2l0b3JpZXM7CiAKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKQEAgLTQ1NSwxMyAr
NDU1LDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3Jl
cG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9ubHknKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBp
bml0aWFsR3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10s
IGluaXRpYWxHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdn
ZXJhYmxlJ10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLCBpbml0aWFsUmVw
b3NpdG9yaWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9y
aWVzLCBpbml0aWFsUmVwb3NpdG9yaWVzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1y
b290LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
dXBsb2FkLXJvb3QtdGVzdHMuanMKaW5kZXggYThiMTkxZDc1ZmMxYzgwMTY2YmEzNmUxMzUzMzVi
MDEwNjE4ODlmOC4uNDk4MmYwOThiZTgxNzY1OTU3ZmExNTIzY2I3ZmRhYTNkNjcwNzVmNCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2Fk
LXJvb3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVj
dCB3aGVuIHJvb3QgZmlsZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywge30p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJv
b3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVt
cG9yYXJ5RmlsZSgnc29tZS5kYXQnLCAnc29tZSBjb250ZW50JykudGhlbigocm9vdEZpbGUpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlKSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnNsYXZlTmFtZTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdT
bGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NDksNyArMTQ5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZGVyTmFtZTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZGVyTmFtZScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRCdWlsZGVyTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU5LDcgKzE1
OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVp
bGROdW1iZXIgPSAnMWFiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VS
ZXBvcnQocm9vdEZpbGUpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnNDU2JzsKICAg
ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RG
b3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVy
VGFnTWlzbWF0Y2gnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgYWNjZXB0IGlmIGJvdGgg
YnVpbGQgbnVtYmVyIGFuZCBidWlsZCB0YWcgZXhpc3RzIHdpdGggc2FtZSB2YWx1ZScsIGFzeW5j
ICgpID0+IHsKQEAgLTE4OCwzOSArMTg4LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogCiAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGNvbnN0IHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAg
ICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0Lmlk
KCksIFsnV2ViS2l0J10pOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVp
bGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pOwogCiAgICAgaXQo
J3Nob3VsZCBjb250aW51ZSB3b3JraW5nIHdpdGggYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRhZyBp
cyBub3QgcHJlc2VudCcsIGFzeW5jICgpID0+IHsKQEAgLTIyOSw0MCArMjI5LDQwIEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3du
ZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlk
KCkpOwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CiAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVk
LWpzYy02MTYxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVk
LWpzYy05MTkxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5k
Q3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290
RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICBkZWxldGUgcmVw
b3J0LmJ1aWxkVGFnOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnMTIzJzsKICAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3Jt
RGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJlamVj
dCB3aGVuIGJ1aWxkIHRpbWUgaXMgbWlzc2luZycsICgpID0+IHsKQEAgLTI3MSw3ICsyNzEsNyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBkZWxldGUgcmVwb3J0LmJ1aWxkVGltZTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxk
VGltZSA9ICdXZWQsIDEwIE1heSAyMDE3IDAzOjAyOjMwIEdNVCc7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZEJ1aWxkVGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjkxLDcgKzI5MSw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGRlbGV0ZSByZXBvcnQuYnVpbGRSZXF1ZXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJl
cXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBv
cnQuYnVpbGRSZXF1ZXN0ID0gJ2FiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVz
dCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlQW5kQ3JlYXRlUm9vdEZpbGUoKS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkQnVpbGRSZXF1ZXN0VHlwZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zMTksNyArMzE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJv
b3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5yZXBvc2l0b3J5
TGlzdDsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3Jt
RGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzI5LDcgKzMyOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1y
b290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9
ICdhK2InOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZv
cm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0zNDcsNjYgKzM0Nyw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3Vw
OwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJv
b3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RG
aWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywg
cmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25z
dCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAg
ICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRl
ZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0
LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAg
ICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRS
ZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1
ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxs
Um9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5Rmls
ZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAg
ICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9
IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9y
eVdyb25nS2V5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0s
ICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEtleUZvclJlcG9zaXRvcnknKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5
Rm9yUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDI0LDY2ICs0MjQs
NjYgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAg
ICAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290Rmls
ZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3Qg
cmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0
J10pOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1E
YXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNl
Wyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmls
ZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3
RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCks
ICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9v
dC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBv
cmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0ph
dmFTY3JpcHQgQ29udGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVl
c3QuaWQoKSwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQyJywgb3duZWRSZXBvc2l0b3J5OiAn
SmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9h
ZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTAxLDc5
ICs1MDEsNzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewog
CiAgICAgICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
JzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVS
b290RmlsZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpKSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3
RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9v
dCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwg
dXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRS
b290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
bG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3Qu
dGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxk
UmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCks
ICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5y
ZXBvc2l0b3J5TGlzdCA9ICciYSInOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlM
aXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MDEsOCArNjAxLDggQEAgZGVzY3Jp
YmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0
LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIkJhZFJlcG9zaXRvcnlOYW1lIl0nOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBp
L3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJl
cG9zaXRvcnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9y
eU5hbWUnXSwgJ0JhZFJlcG9zaXRvcnlOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ0JhZFJl
cG9zaXRvcnlOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MTYsOCArNjE2LDgg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgcmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIm1hY09TIl0nOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9z
aXRvcnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5h
bWUnXSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ21hY09TJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC02MzUsMzQgKzYzNSwzNCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwog
ICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CkBAIC02NzAsNDUgKzY3MCw0NSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9v
dC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAn
WyJXZWJLaXQiLCAiU2hhcmVkIl0nOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290
UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVk
Um9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5p
ZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2Fk
ZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2Vy
Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVl
c3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1
aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxk
UmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRS
b290KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9hZGVkUm9v
dCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgd2Via2l0UGF0Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBsb2FkZWRSb290
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCks
ICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzI3LDg3ICs3MjcsODcgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0
R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAg
ICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFr
ZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZp
bGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5n
bGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgp
LCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJl
cXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBk
YXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5h
bGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFr
ZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29u
dGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tv
d25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29y
ZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1
cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAg
ICAganNjUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3
RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUm9vdC5maWxlbmFtZSgpLCAnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29y
ZS1Sb290LmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
YnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3Rd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZGVkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCmluZGV4IGJlZGM1NDc3ZDU1YTRjNzQ3
YjIxZDcwOTQ4NTUyZTM1N2Y0NjJhOTQuLjAyZTFkODlmY2MxZDIyZWE2ODZhY2VkMTYwMjI5MjMy
MWZkZGQ4ZDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcwpAQCAtNywxOSArNywx
OCBAQCBnbG9iYWwuRm9ybURhdGEgPSByZXF1aXJlKCdmb3JtLWRhdGEnKTsKIAogY29uc3QgVGVz
dFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBU
ZW1wb3JhcnlGaWxlID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMnKS5U
ZW1wb3JhcnlGaWxlOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogCiBkZXNjcmli
ZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91dCg1
MDAwKTsKLSAgICBUZXN0U2VydmVyLmluamVjdCgpOwotCisgICAgcHJlcGFyZVNlcnZlclRlc3Qo
dGhpcyk7CiAgICAgVGVtcG9yYXJ5RmlsZS5pbmplY3QoKTsKIAogICAgIGl0KCdzaG91bGQgcmV0
dXJuICJJbnZhbGlkQXJndW1lbnRzIiB3aGVuIG5laXRoZXIgcGF0aCBub3Igc2hhMjU2IHF1ZXJ5
IGlzIHNldCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlJykudGhlbigoY29udGVudCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52
YWxpZEFyZ3VtZW50cycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLycpOwogICAgICAgICB9KS50aGVuKChjb250
ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJ
bnZhbGlkQXJndW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yNyw3ICsyNiw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvdXBsb2FkZWQtZmlsZS8xJykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zNSw3ICszNCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvdXBsb2FkZWQtZmlsZS9mb28nKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZp
bGUnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRw
UmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7dXBsb2FkZWRGaWxlWydpZCddfWAsICdHRVQn
LCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdz
b21lIGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY4LDEzICs2NywxMyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQo
J3Nob3VsZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZSBzcGVjaWZpZWQgU0hBMjU2IGlzIGlu
dmFsaWQnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PWFiYycpLnRoZW4oKGNvbnRlbnQpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5k
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdO
b3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJu
ICJOb3RGb3VuZCIgd2hlbiB0aGVyZSBpcyBubyBmaWxlIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQg
U0hBMjU2ICcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9NTI1NmVjMThmMTE2MjQwMjU5MDVk
MDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpLnRoZW4oKGNvbnRl
bnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05v
dEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODYsNyArODUsNyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxl
Lz9zaGEyNTY9JHt1cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUs
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHVwbG9hZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTk3LDExICs5NiwxMSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRl
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewog
ICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAg
ICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGIuY29ubmVjdCgpLnRoZW4oKCkgPT4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9m
aWxlcyBTRVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KGBVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VUIGZp
bGVfZGVsZXRlZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJ2ApOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oYC9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRGaWxlWydzaGEyNTYn
XX1gKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMTcsMTYgKzExNiwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRl
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3Bv
bnNlLmhlYWRlcnM7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5p
bmNsdWRlcygnZXRhZycpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydldGFn
J10sIHVwbG9hZGVkRmlsZVsnc2hhMjU2J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGhlYWRlcnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CiAKICAgICAgICAg
ICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnYWNjZXB0LXJhbmdlcycp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydhY2NlcHQtcmFuZ2VzJ10sICdi
eXRlcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1y
YW5nZXMnXSwgJ2J5dGVzJyk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFk
ZXJzKS5pbmNsdWRlcygnY29udGVudC1kaXNwb3NpdGlvbicpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxl
bmFtZSo9dXRmLTgnJ3NvbWUuZGF0YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVudDsgZmlsZW5hbWUqPXV0
Zi04Jydzb21lLmRhdGApOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVy
cykuaW5jbHVkZXMoJ2NvbnRlbnQtbGVuZ3RoJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCB1cGxv
YWRlZEZpbGVbJ3NpemUnXSk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFk
ZXJzKS5pbmNsdWRlcygnbGFzdC1tb2RpZmllZCcpKTsKICAgICAgICAgfSk7CkBAIC0xNDQsNyAr
MTQzLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGxhc3RNb2RpZmllZCA9IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQn
XTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVx
dWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ10s
IGxhc3RNb2RpZmllZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsOSArMTU1LDkg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91
cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1Jhbmdl
JzogJ2J5dGVzPTUtJ319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwg
J2J5dGVzIDUtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZS5yZXNwb25zZVRleHQsICdjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NzAsOSArMTY5LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVx
dWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFk
ZXJzOiB7J1JhbmdlJzogJ2J5dGVzPTQtOSd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQtOS8x
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJyBj
b250ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVu
dC1yYW5nZSddLCAnYnl0ZXMgNC05LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnIGNvbnRlJyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xODQsOSArMTgzLDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNl
bmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51
bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS00J319KTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFk
ZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0
ZXMgOC0xMS8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ3RlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNb
J2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDgtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICd0ZW50Jyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xOTgsOSArMTk3LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51
bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS0xMDAnfX0pOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3Bv
bnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdl
J10sICdieXRlcyAwLTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyAwLTExLzEyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBj
b250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjA5LDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9h
ZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVs
bCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9MTItJ319KQotICAgICAgICAgICAg
ICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyks
IChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVycm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAu
dGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJy
b3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0yMjAsNyArMjE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3Vw
bG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2Un
OiAnYnl0ZXM9Mi0xJ319KQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVy
cm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMzIsMTUgKzIzMSwxNSBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQt
ZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3Nv
bWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lk
fWAsICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1Jhbmdl
JzogJ2J5dGVzID0gOS0xMCcsICdJZi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9k
aWZpZWQnXX19KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEw
LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VU
ZXh0LCAnZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1MiwxNSArMjUxLDE1IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1m
aWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29t
ZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5y
ZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9
YCwgJ0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2Un
OiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1snZXRhZyddfX0p
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVh
ZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydj
b250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjcyLDEzICsyNzEsMTMgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVz
cG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1g
LCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywg
bnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICB7J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJ
Zi1SYW5nZSc6ICdmb28nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwg
J3NvbWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAzLDcgKzMwMiw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVuZEJ5dGUgLSBzdGFydEJ5dGUgKyAxOyBpKyspIHsK
ICAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWwgPSByZXNwb25zZUJ1ZmZlcltpXTsKICAgICAg
ICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGJ1ZmZlcltzdGFydEJ5dGUgKyBpXTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGlu
ZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdv
dCAke2FjdHVhbH1gKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0dWFs
LCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGluZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4g
RXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCkBAIC0zMTUsOCArMzE0LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6
IGBieXRlcyA9ICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9YH0sIHJlc3BvbnNlSGFuZGxlcn0pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVy
cyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250
ZW50LXJhbmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5n
ZSddLCBgYnl0ZXMgJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxlU2l6ZX1gKTsKICAgICAg
ICAgICAgIHZlcmlmeUJ1ZmZlcigpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRk
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXgg
MTRlOTQ1NmQyZTY3YTVjNzEwMDEyMGIxNTQ2NDgwYzI3MTZkZWJmNC4uYjEwNzQ5YTBkMWU5MDM4
ZTFmYjJlOTEzOTM0YTYzYWEyMjUwZGQ1ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVz
dHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5
bmMgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsi
MTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClb
MF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9
IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQn
XX0pOwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewog
ICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10s
CkBAIC0xNDAsMjMgKzE0MCwyMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2FkZC1idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHsnZ3JvdXAnOiBpbnNlcnRlZEdyb3VwSWQs
IG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBz
ID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVx
dWVzdHMoKSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3Jl
UmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7CiAKICAgICAgICAg
YXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywge2dy
b3VwOiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSk7CiAKICAgICAgICAgY29uc3QgdXBk
YXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgp
LCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0
aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3Jl
UmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh1cGRh
dGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpKSwgNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9uQ291bnQo
KSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1
ZXN0cygpLCB0cnVlKTsKICAgICAgICAgZm9yIChjb25zdCBjb21taXRTZXQgb2YgdXBkYXRlZEdy
b3Vwc1swXS5yZXF1ZXN0ZWRDb21taXRTZXRzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdHMgPSB1cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RzRm9yQ29tbWl0U2V0KGNvbW1pdFNl
dCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsK
ICAgICAgICAgfQogICAgIH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBj
b25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0
YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlu
aXRpYWxSZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChncm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgp
KSwgMik7CiAgICAgICAgIGF3YWl0IGdyb3VwLnVwZGF0ZUhpZGRlbkZsYWcodHJ1ZSk7CiAKICAg
ICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFz
eW5jICgpID0+IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1
ZXN0cycsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pKQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMK
aW5kZXggOTk2ZDJkZDMyZDc2YmE1NDc1M2U2MzlmZjhhZjliMzU2ZjI3OTdkOC4uMGU2ODYxYjdl
YzZiZWJlNTUyYTY0ZDg3M2ZlNTc2NmI1ZDExNzQyZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMt
dGFzay10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0xMTMsNyAr
MTEzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3
aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge30pLnRoZW4oKGNvbnRl
bnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnTWlzc2luZ05hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ01pc3NpbmdOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMjEsNyAr
MTIxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3
aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIGVu
ZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDF9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRFbmRSdW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ludmFsaWRFbmRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzNyw3ICsx
MzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3Rh
cnRSdW46ICJmb28iLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFy
dFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0
YXJ0UnVuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIg
cHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBl
bmRSdW46ICJmb28ifSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGkn
LCBmdW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMTAwLCBlbmRSdW46IDF9
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTY4LDcgKzE2OCw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBi
cm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3Rh
cnRSdW46IDEsIGVuZFJ1bjogMTAwfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJ
bnZhbGlkRW5kUnVuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnSW52YWxpZEVuZFJ1bicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtMTgwLDcgKzE4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2sn
LCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46
IDJ9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNoJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlz
bWF0Y2gnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIxMiwy
MCArMjEyLDIwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRh
c2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNv
bmZpZ1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVu
cycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVu
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMt
dGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjog
dGVzdFJ1bnNbMV1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10p
OwogICAgICAgICB9KS50aGVuKCh0YXNrKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5uYW1lKCksICdoaScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
bmFtZSgpLCAnaGknKTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNo
YW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9y
bSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCks
ICd0ZXN0MScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjQ0LDIyICsyNDQsMjIgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dz
ZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzog
Y29uZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6
ICdoaScsIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsn
aWQnXX0pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0p
LnRoZW4oKHRhc2spID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwg
J2hpJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdoaScp
OwogICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4
ZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwg
J3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygp
LnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LnN0YXJ0VGltZSgpLCAxNDQ1OTYwMDkxMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLmVuZFRpbWUoKSwgMTQ0NTk2Njg2MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5
NjAwOTEwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suZW5kVGltZSgp
LCAxNDQ1OTY2ODYxMDAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MCw3ICsyODAs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29u
ZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBz
dGFydElkID0gdGVzdFJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBlbmRJZCA9IHRlc3RSdW5z
WzFdWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBl
bmRSdW46IGVuZElkfSk7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46
IGVuZElkfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFu
YWx5c2lzVGFzaycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYW5hbHlzaXNfdGFza3MnKTsKICAgICAg
ICAgfSkudGhlbigodGFza3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2tzLmxlbmd0aCwg
MSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTIsNyArMzEyLDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmls
ZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICAgICAg
ICAgIG5hbWU6ICdoaScsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydp
ZCddLApAQCAtMzMwLDggKzMzMCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAg
ICAgICBmb3IgKGxldCBzdHJhdGVneSBvZiBzdHJhdGVnaWVzKQogICAgICAgICAgICAgICAgIHN0
cmF0ZWd5SWRNYXBbc3RyYXRlZ3lbJ2lkJ11dID0gc3RyYXRlZ3k7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSdd
LCAidGltZSBzZXJpZXMgc2VnbWVudGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c3RyYXRlZ3lJZE1hcFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3Mg
dC10ZXN0Iik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1hcFt0
YXNrUm93WydzZWdtZW50YXRpb24nXV1bJ25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlv
biIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jv
d1sndGVzdF9yYW5nZSddXVsnbmFtZSddLCAic3R1ZGVudCdzIHQtdGVzdCIpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzQ2LDcgKzM0Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUg
cGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmly
c3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0u
aWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RS
dW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBj
b25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9z
aXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdl
YmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0zNzEsNyArMzcxLDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdz
b21lIHBsYXRmb3JtJyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygp
WzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RS
dW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBj
b25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9z
aXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdl
YmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0zODcsMTggKzM4NywxOCBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogCiAgICAgICAgIGNv
bnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCdd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFz
c2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGlu
Z1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0
Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hh
bmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZv
cm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29u
c3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKICAgICB9KTsKIAogICAgIGl0
KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIHdoZW4gY29t
bWl0IHNldCBsaXN0IGFuZCBhIHBvc2l0aXZlIHJlcGV0aXRpb24gY291bnQgaXMgc3BlY2lmaWVk
JywgYXN5bmMgKCkgPT4gewpAQCAtNDI2LDcgKzQyNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywg
ZnVuCiAgICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9y
bUlkKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3co
J3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwg
cGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0g
YXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBv
bmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAg
ICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcx
OTE2MjMnfX07CkBAIC00MzYsMzggKzQzNiwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5z
WzFdWydpZCddfSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5m
ZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5u
YW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUo
KSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAg
ICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2su
Y2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rl
c3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCks
ICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNz
ZXJ0Lm9rKCF0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dl
cmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlk
KCkpLCB0cmlnZ2VyYWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdy
b3VwKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgp
LCB0YXNrLnBsYXRmb3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBs
YXRmb3JtKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5
c2lzVGFza0lkKCksIHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lk
KCksIHRhc2suaWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
dGVzdCgpLCB0ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRl
c3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzBdLmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1
aWxkKCkpOwpAQCAtNDc3LDggKzQ3Nyw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAg
ICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRT
ZXQoKTsKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQod2Via2l0SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0
Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3
ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9z
aXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJl
dmlzaW9uKCksICcxOTE2MjMnKTsKICAgICB9KTsKIH0pOwogCkBAIC01MDAsNyArNTAwLDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUg
cHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxh
dGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdS
b3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRy
aWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9
KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1
bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5s
ZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAg
ICAgIGNvbnN0IHdlYmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTU0OCw3ICs1
NDgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3Jt
ID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1Jv
dyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJp
YzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0p
OwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVu
cycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxl
bmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXTog
e3JldmlzaW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQg
PSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNTU4LDM4ICs1NTgsMzgg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5v
ZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVu
c1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAgICAgIGNvbnN0
IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2Vy
dCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVx
dWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3Jt
KCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
bWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRh
c2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VU
eXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgp
LmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0
ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUo
KSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1l
KCksICdDb25maXJtJyk7CiAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlk
KCksIHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0
cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0
R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0o
KSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNr
LmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFs
eXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTU5OSw4ICs1OTksOCBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBw
cml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJl
cG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9y
eSkucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29t
bWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwg
JzE5MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7
CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91
cCBhbmQgcmVzcGVjdCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJl
cXVlc3QnLCBhc3luYyAoKSA9PiB7CkBAIC02MjgsNyArNjI4LDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGkn
LCBmdW5jdGkKICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBs
YXRmb3JtSWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5p
ZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1
bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3db
J2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNv
bnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsK
ICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lv
bjogJzE5MTYyMyd9fTsKQEAgLTYzOCwzOCArNjM4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVu
Y3RpCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVz
dFJ1bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29u
c3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10p
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNz
ZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdS
ZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZv
cm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFz
ay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5n
ZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3Jt
KCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFt
ZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5h
bWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5p
ZCgpLCB0cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwg
dHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVz
dEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVz
dEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0o
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3Jt
KCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFz
ay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5h
bHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNz
ZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC02NzksNyArNjc5LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUg
cHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBi
dWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRT
ZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRS
ZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRv
cnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCks
ICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNv
bW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJl
cG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0p
OwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91
cC10ZXN0cy5qcwppbmRleCAwOWNkMzdhYjQzNmNiM2E3YmI3Y2I4Zjg0OWJjYTlkZTIyN2MxNDQx
Li5kZGY0OTkzYTRmOGUxOTZkOWMzMjM0ZWY2ZGRiMTUwNzIwYmMzYTE0IDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTgz
LDcgKzgzLDcgQEAgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlz
aW9ucyA9IFsiMTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4g
ewogICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29u
ZmlnUm93WydpZCddfSk7CiAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAgICAgICAgICBuYW1lOiBuYW1l
LAogICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTM3LDcgKzEz
Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHt9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWROYW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkTmFtZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIGNvbW1pdFNldHM6IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFz
aycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2sn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Myw3ICsxNTMsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiAnZm9vJywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
ZXJyb3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTYxLDcg
KzE2MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3Vu
dDogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0xNjksNyArMTY5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0
ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7fX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNzcsNyArMTc3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazog
MSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
ODUsNyArMTg1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlv
bkNvdW50OiAnZm9vJywgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiAxLCByZXBldGl0aW9uQ291bnQ6IC01LCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVy
cm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsy
MTAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRT
ZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJp
Z2dlcmFibGVOb3RGb3VuZEZvclRhc2snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRT
ZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMzEsNyAr
MjMxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNp
b25TZXRzOiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge31dfSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0
cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjQyLDcgKzI0
Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9u
U2V0czogW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX1dfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjUyLDcgKzI1Miw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsn
Rm9vJzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5Tm90
Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXBv
c2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTI2Miw3ICsyNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFz
a0lkLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFsnMSddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yODYsNyArMjg2LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yOTgsNyArMjk4LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEwLDcgKzMxMCw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmlsZScpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZp
bGUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyMSw3ICsz
MjEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lv
blNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJl
cG9zaXRvcnknKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMz
MSw3ICszMzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBj
b21taXRTZXRzOiB7J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1
QTI4NCddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNl
dHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
Q29tbWl0U2V0cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MzQ1LDcgKzM0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnRHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2Miw3ICszNjIsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zNzgsNyArMzc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTM5MywxNyArMzkzLDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1t3ZWJraXQu
aWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1
QTI4NCd9LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3du
ZXJSZXZpc2lvbjogJzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0
YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElk
J107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91
cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDEpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2Vy
dChyZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1sw
XS5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsK
QEAgLTQxOCwxNCArNDE4LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygp
KSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy05MTkxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00NDAsMTcgKzQ0MCwxNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIHtbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBb
anNjLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcx
OTI3MzYnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0
aW9uQ291bnQ6IDEsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0u
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00NjUsMTMgKzQ2
NSwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9
IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgyLDI4ICs0ODIsMjggQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAg
IGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25z
dCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
c2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAu
cmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkp
LCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMycpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVz
dHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9y
eUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3Jv
dXApOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQw
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEp
KTsKICAgICAgICAgICAgIH0pOwpAQCAtNTIxLDI0ICs1MjEsMjQgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25z
dCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMn
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBd
LnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXAubmFtZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCks
ICd3ZWJraXQtb25seScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9
KTsKQEAgLTU1MywzMyArNTUzLDMzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91
cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdX
ZWJLaXQnKVswXTsKICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuYWxs
KCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVsw
XTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBz
ZXQwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0
KCksIHNldDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Vi
a2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZv
clJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29z
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwogCiAgICAgICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0
ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sx
XS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91
cCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlH
cm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3Vw
KCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAo
KSwgcmVwb3NpdG9yeUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdy
b3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3Jv
dXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTYwMCwyOCArNjAwLDI4IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3Vw
SWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAg
ICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMmNlZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0MycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1
N2U4Nzk1MzMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2Zk
MWEyOWM2MzNiYTU3ZTg3OTUzMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5
R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5u
YW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5
R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMSwg
cmVwb3NpdG9yeUdyb3VwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cDEsIHJlcG9zaXRvcnlHcm91cDApOwogICAgICAgICAgICAgICAgIGFzc2Vy
dChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02
NDIsMzIgKzY0MiwzMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNv
bnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRz
Tm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAu
YnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNv
bW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3Np
dG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdy
b3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFt
ZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoIXJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVwb3NpdG9y
eUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEu
bmFtZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3VwMSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtp
dC1vbmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cDEsIHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQoIXJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KHJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsK
QEAgLTY5MSwyOCArNjkxLDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAg
IGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBj
b25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxv
YWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxl
KV0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQo
KSwgc2V0MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW1VwbG9hZGVkRmlsZS5lbnN1
cmVTaW5nbGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1cGxvYWRlZEZpbGUpXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOwogICAgICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNzQwLDUwICs3NDAsNTAgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRC
eUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlk
KCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3Qu
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNl
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0
XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAg
ICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1p
dEZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCks
IHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1p
dFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3Np
dG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVw
b3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQo
IXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC04MDUsNjAgKzgw
NSw2MCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdy
b3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0
KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
aXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlz
QnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlz
QnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlz
QnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlz
QnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
aXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5p
c1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlz
VGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWls
ZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVz
dCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNl
dDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1h
Y29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9y
eShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3Rv
bVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkp
LCBbanNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyks
IHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtODgwLDYxICs4ODAsNjEgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2Vy
dGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCks
IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0Rh
dGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
cGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkp
OwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxk
KCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBd
LmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNv
bnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEu
cmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9y
eShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNl
dDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBb
anNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBv
c2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSht
YWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShq
c2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9y
UmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC05NjMsNjggKzk2Myw2OCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElk
ID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgp
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVz
dElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgp
LCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2Up
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rl
c3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJd
LmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJd
LmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVz
KCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZv
clJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQt
anNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21t
aXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0
b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAg
ICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9
KTsKQEAgLTEwNTcsNzcgKzEwNTcsNzcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJ
ZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0o
KSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNl
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNU
ZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAg
PSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1
ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmll
cygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0
cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05
MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ2pzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ2pzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCks
IHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1p
dFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCks
IFtdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNv
cyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MjczNicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCAnanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1
YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMTU0LDQ1ICsxMTU0LDQ1IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCdd
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVz
dC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgp
LCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tE
YXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWls
ZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwogCiAgICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29t
bWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTIzMCwyNCArMTIzMCwyNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3Vw
SWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFz
aywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJ
ZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwg
J290aGVyIHRhc2snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5u
YW1lKCksICdvdGhlciB0YXNrJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayhncm91
cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5i
dWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0
IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBp
dCgnc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIG5lZWRzLW5vdGlm
aWNhdGlvbiBmbGFnIHVuc2V0JywgYXN5bmMgKCkgPT4gewpAQCAtMTI1OSwyNCArMTI1OSwyNCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElk
J107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQ
cm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwg
W10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJr
aXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBjdXN0
b20gdGVzdCBncm91cCBmb3IgYW4gZXhpc3RpbmcgY3VzdG9tIGFuYWx5c2lzIHRhc2snLCAoKSA9
PiB7CkBAIC0xMjk2LDQzICsxMjk2LDQ0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge25hbWU6ICd0
ZXN0MicsIHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBs
YXRmb3JtSWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9KTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBzZWNvbmRSZXN1bHQgPSBy
ZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RSZXN1bHRbJ3Rhc2tJZCddLCBz
ZWNvbmRSZXN1bHRbJ3Rhc2tJZCddKTsKKyAgICAgICAgICAgIC8vIHBnIGZ1bnRpb25zIHdpbGwg
cmV0dXJuIGFsbCBkYXRhIGFzIHN0cmluZywgc28gd2UgbmVlZCBtYWtlIHN1cmUgdGhhdCB3ZSBj
b21wYXJlIGFzIGludAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGZp
cnN0UmVzdWx0Wyd0YXNrSWQnXSksIHBhcnNlSW50KHNlY29uZFJlc3VsdFsndGFza0lkJ10pKTsK
ICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChy
ZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCdd
LCB0cnVlKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIFRlc3RHcm91cC5zb3J0QnlOYW1lKHRlc3RHcm91cHMpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwc1swXS5uYW1lKCksICd0ZXN0MScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzBdLnJlcGV0aXRpb25D
b3VudCgpLCAxKTsKICAgICAgICAgICAgIGxldCByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMF0uYnVp
bGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsK
ICAgICAgICAgICAgIGxldCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAg
ICAgICBsZXQgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIzJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzWzFdLm5hbWUoKSwgJ3Rlc3QyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwc1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMV0ubmFtZSgpLCAndGVzdDInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzFdLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKICAgICAgICAgICAgIHJlcXVlc3RzID0gdGVzdEdyb3Vwc1sxXS5idWlsZFJl
cXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAg
ICAgICAgICAgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgc2V0
MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3Rv
bVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11
cGF0ZS1ydW4tc3RhdHVzLmpzCmluZGV4IDQzYjQwN2VjYTlkZDAyOWRhYWFiODQ2MzdhNmRjMTI1
NjNkZjE1OTEuLmI1N2EwMjExZTY4N2Y5YTNjNzI3NGM3NzQ5YjZkNWUxZmZhYWRhMWEgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktdXBhdGUtcnVuLXN0YXR1cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMKQEAgLTM5LDEzICsz
OSwxMyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRo
UmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9u
X2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIGlkID0gcnVuUm93
c1swXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JG
VG9rZW4oKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01MywxMCArNTMsMTAgQEAgZGVz
Y3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxs
KCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9j
YWNoZSddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydt
YXJrZWRfb3V0bGllciddLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY1LDEx
ICs2NSwxMSBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRX
aXRoUmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lv
bik7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxz
ZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgUmVtb3RlQVBJLmNsZWFyQ29v
a2llcygpOwpAQCAtNzcsNyArNzcsNyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0
ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52
YWxpZFRva2VuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZh
bGlkVG9rZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1LDE4ICs4NSwxOCBAQCBk
ZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25b
MF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZU
b2tlbigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBSZW1v
dGVBUEkucG9zdEpTT05XaXRoU3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0
dXMnLCB7dG9rZW46ICdiYWQnfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVG9r
ZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUb2tl
bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTA1LDIzICsxMDUsMjMgQEAgZGVzY3Jp
YmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3Rf
cnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydy
dW4nOiBydW5Sb3dzWzBdWydpZCddLCAnbWFya2VkT3V0bGllcic6IHRydWV9KTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1
bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5S
b3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1zdGF0dXMnLCB7J3J1bic6
IHJ1blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVyJzogZmFsc2V9KTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMn
KTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dz
WzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdy
b3VwLXRlc3RzLmpzCmluZGV4IDAyMTE2ZWQ4ZDhiYmU5MjBkYmYxOGQ2MTdlOGY5NTkzMmM3ODM1
OTkuLjIyZmQwZmVjNmUzNGIxOGJjMjFhOWRiZGE1YjlhMTVjMTQ2YTg1OTAgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBk
YXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAt
NzksNyArNzksNyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Vi
a2l0UmV2aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93
ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmlj
OiB0ZXN0Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAg
IGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZp
ZzogY29uZmlnUm93WydpZCddfSk7CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3Ro
LCAyKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBj
b25zdCBjb250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7CiAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0
ZXN0UnVuc1swXVsnaWQnXSwKQEAgLTE2NSwyMCArMTY1LDIwIEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBp
bnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
IGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVk
c05vdGlmaWNhdGlvbigpLCB0cnVlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmlj
YXRpb25TZW50QXQoKSk7CiAKICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VudEF0ID0gbmV3
IERhdGU7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10
ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0aW9uOiBm
YWxzZSwgbm90aWZpY2F0aW9uU2VudEF0OiBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmco
KX0pOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdy
b3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh1cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlvblNlbnRBdCgpLnRvSVNPU3RyaW5nKCksIG5v
dGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5ub3RpZmljYXRpb25TZW50QXQoKS50
b0lTT1N0cmluZygpLCBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKSk7CiAgICAgfSk7
CiAKICAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlICJuZWVkc19ub3RpZmljYXRpb24i
IGZpZWxkIHRvIHRydWUnLCBhc3luYyAoKSA9PiB7CkBAIC0xOTAsMTggKzE5MCwxOCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAg
ICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9r
KCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3Jv
dXBJZCwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAogICAgICAgICBjb25zdCB1cGRhdGVk
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90
aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlv
blNlbnRBdCgpKTsKICAgICB9KTsKIApAQCAtMjE0LDEwICsyMTQsMTAgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNv
bnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBj
b25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rh
c2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
Lm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgICAgICBhc3NlcnQu
b2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgIH0pOwpAQCAtMjMxLDIyICsy
MzEsMjIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdy
b3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFs
c2UpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10
ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6
IHRydWV9KTsKIAogICAgICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVk
R3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAK
ICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3Jv
dXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogZmFsc2V9
KTsKIAogICAgICAgICB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRH
cm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0u
bWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgIH0pOwog
CiAgICAgaXQoJ3Nob3VsZCBjbGVhciAibWF5X25lZWRfbW9yZV9yZXF1ZXN0cyIgd2hlbiBoaWRp
bmcgYSB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewpAQCAtMjU4LDIyICsyNTgsMjIgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAg
ICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAog
ICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhy
ZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogCiAgICAg
ICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywg
e2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAog
ICAgICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
cmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgYXdh
aXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6
IGluc2VydGVkR3JvdXBJZCwgaGlkZGVuOiB0cnVlfSk7CiAKICAgICAgICAgdXBkYXRlZEdyb3Vw
cyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFs
c2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigpLCB0
cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1v
cmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVk
R3JvdXBzWzBdLmlzSGlkZGVuKCksIHRydWUpOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVz
dHMuanMKaW5kZXggZTBmOGEyOGRmZTYxMzEyODlhOTI2MTY5ZDExODkxNjkwYmRmYWZiMC4uNDdl
OTM4YTIzMzQ5ODkyNzRhMWI5MGI3ZWFkNzE0OWE3ZDA5ODRkOSAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmls
ZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzCkBAIC0yNyw3ICsyNyw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHt9LCB7dXNl
Rm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTM2LDcgKzM2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7
dXNlRm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVMaW1p
dEV4Y2VlZGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
RmlsZVNpemVMaW1pdEV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC01MSwxNSArNTEsMTUgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxv
YWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Vw
bG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxlLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZS5zaXplKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQw
MjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRG
aWxlLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1sw
XS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5z
aXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwg
J3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxl
bmFtZSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAz
ZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC03OSwxNiArNzksMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmls
ZTIgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2Vs
ZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVk
RmlsZTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEu
c2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2Fk
ZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRl
bnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYs
ICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIy
MWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVw
bG9hZGVkRmlsZTEuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxlMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICog
MTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5z
aXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFt
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1
MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNl
NmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYs
IHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOCwx
NiArMTA4LDE2IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVk
RmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMn
LCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVk
MDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVk
RmlsZTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxv
YWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
cm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVk
RmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmls
ZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3
ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzksMjYgKzEzOSwyNiBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
dXBsb2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJl
dHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh1cGxvYWRlZEZpbGUx
LmlkLCB1cGxvYWRlZEZpbGUyLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRG
aWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5pZCwgdXBsb2FkZWRG
aWxlMi5pZCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXBsb2FkZWRGaWxl
MS5pZCwgdXBsb2FkZWRGaWxlMi5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
aWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzFdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLmlkKSk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVu
YW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2Fk
ZWRGaWxlMi5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sw
XS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIu
ZmlsZW5hbWUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1p
dEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5z
aXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uc2l6ZSwgdXBsb2FkZWRGaWxlMi5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNpemUsIHJvd3NbMV0uc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFh
YzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMi5zaGEyNTYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEw
MjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6
ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIu
c2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2l6ZSwgcm93
c1sxXS5zaXplKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1
NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUw
MjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNo
YTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmls
ZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLm1pbWUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFyLmd6NScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2
MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIg
KiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5t
aW1lLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4
ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NSwxMyArMTk1LDEzIEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRf
ZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
Ml0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
ZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFs
KHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAg
fSkKICAgICB9KTsKIApAQCAtMjE3LDE0ICsyMTcsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1
c2VGb3JtRGF0YTogdHJ1ZX0pOwogICAgICAgICB9CiAgICAgICAgIGxldCByb3dzID0gYXdhaXQg
ZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIHNwbGl0Q291bnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5s
ZW5ndGgsIHNwbGl0Q291bnQpOwogCiAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IFRlbXBv
cmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKCdsaW1pdC5kYXQnLCBsaW1pdElu
TUIsICdhJyk7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9h
ZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pOwogICAgICAg
ICByb3dzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50ICsgMSk7CiAgICAgICAgIGNvbnN0
IGRlbGV0ZWRGaWxlcyA9IHJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1snZGVsZXRlZF9hdCddKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgbm90IHBydW5lIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQnLCBh
c3luYyAoKSA9PiB7CkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNl
Rm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4
Y2VlZGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmls
ZVNpemVRdW90YUV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0zMTIsMTMgKzMxMiwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9h
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUu
cGF0Y2gnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQs
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhl
ci5wYXRjaCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3Ro
ZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0
Y2gnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRf
YXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5h
bWUsICdvdGhlci5wYXRjaCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTM0NiwxMyArMzQ2LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSku
dGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRj
aCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jvb3QudGFyLmd6
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5k
YXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jv
b3QudGFyLmd6Jyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93c1sxXS5k
ZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJd
LmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MzgyLDcgKzM4Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRl
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9w
ZXJhdGlvbnMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwppbmRleCA1OGI1MTEzMTE5YmY2MTBjNDdlMjg0N2Zh
MDczMDdlMWU1YWYyZjZmLi4xOWI5YzExZmYwY2YzYzRhZjNjOTI0M2E5MDMxOTQyOTYzZjM3NDUz
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwpAQCAtNTYsNyArNTYs
NyBAQCBhc3luYyBmdW5jdGlvbiBhc3NlcnRUaHJvd3MoZXhwZWN0ZWRFcnJvciwgdGVzdEZ1bmN0
aW9uKQogICAgICAgICAgICAgYXdhaXQgdGVzdEZ1bmN0aW9uKCkKICAgICB9IGNhdGNoKGVycm9y
KSB7CiAgICAgICAgIHRocm93bkV4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgZXhwZWN0ZWRFcnJvcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgZXhwZWN0ZWRFcnJvcik7CiAgICAgfQogICAgIGFzc2VydC5vayh0aHJvd25FeGNlcHRpb24p
OwogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9y
ZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwppbmRleCA3Yjg0YjI0YmZlNmE4
ODM3ZWVjNzQyN2M4NzYwZTRiMjAxZGRiMGM3Li4yNjJiMmZkNGUxNzIwYjYzNTY2OGI2NmUwZDhl
Yjg3NWQwODYwODlmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwpAQCAtMTIs
NyArMTIsNyBAQCBjbGFzcyBUZW1wb3JhcnlGaWxlIHsKICAgICAgICAgbGV0IG1lZ2FieXRlU3Ry
aW5nID0gY2hhcmFjdGVyVG9GaWxsOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBp
KyspCiAgICAgICAgICAgICBtZWdhYnl0ZVN0cmluZyA9IG1lZ2FieXRlU3RyaW5nICsgbWVnYWJ5
dGVTdHJpbmc7Ci0gICAgICAgIGFzc2VydC5lcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEw
MjQgKiAxMDI0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lZ2FieXRlU3RyaW5nLmxl
bmd0aCwgMTAyNCAqIDEwMjQpOwogCiAgICAgICAgIGxldCBjb250ZW50ID0gJyc7CiAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZUluTUI7IGkrKykKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1
aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IDYwNGRhNzM0ZGEwY2UzYjBjZWMwYjA5
NWFmZjkwMTVjZGQ5NzcxZDkuLjQ1MGYwYzNhODMzNmY1NGRmZjJkZmY4YzAxOTY4ZDkwNGVlZWY2
MDYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9v
bHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwpA
QCAtMTEsOCArMTEsOCBAQCBjb25zdCBNb2NrTG9nZ2VyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMv
bW9jay1sb2dnZXIuanMnKS5Nb2NrTG9nZ2VyOwogCiBmdW5jdGlvbiBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0LCBtZXRob2QsIHVybCwgY29udGVudCkKIHsKLSAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJs
LCB1cmwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsK
KyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5y
ZXNvbHZlKGNvbnRlbnQpOwogfQogCkBAIC00MCw0NSArNDAsNDUgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6Ci0gICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEw
LjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogNzAyLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHsnYnVpbGRzJzog
W01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxk
ZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTk3LDM4ICs5NywzOCBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVz
b2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5n
bGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDcsNzAgKzE0Nyw3MCBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQn
OiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQn
OiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgog
ICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQn
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29t
ZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVp
bGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3
fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50
cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQ5LDYy
ICszNDksNjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRS
ZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUo
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxk
UmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0Rh
dGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3Rz
LzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw3MCArNDIzLDcwIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9T
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElk
OiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsn
YnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAx
fSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0
U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVu
bmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAx
MjMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
Iy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUw
NSw1MCArNTA1LDUwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1
aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC01NzAsODYgKzU3MCw4NiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5y
ZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MTAsIGJ1
aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWlsZHMn
IDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEw
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29C
dWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
OCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEy
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY3
MSw5MSArNjcxLDkxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5i
dWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRh
LCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRh
LCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzEx
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1l
dGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzExJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMSwg
YnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVl
c3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZShNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygp
LCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBC
dWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25m
aWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMv
MTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTc3Niw2MCArNzc2LDYwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICByZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3
ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVz
b2x2ZSwgMTApKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIHJlcXVl
c3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVp
bGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtODU0LDI3ICs4NTQs
MjcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2sn
OiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcw
MScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSwKICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAxLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CkBAIC04ODMsMjAgKzg4MywyMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CkBAIC05MTgsNTggKzkxOCw1OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92
Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6
ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6
ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAg
ICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21l
LWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWls
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVl
c3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdv
QnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTk4OCw0MiArOTg4LDQyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1
ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3
b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTEwNDUsMjMgKzEwNDUsMjMgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcxMCcsICdq
c29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0
YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjEx
IDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgfSk7CkBAIC0xMDc5LDcxICsx
MDc5LDcxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBsZXQgYnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
J2J1aWxkcyc6IFtNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgw
MX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAg
ICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNo
QWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBi
dWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxl
dCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwg
J2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3Vs
ZCByZXVzZSB0aGUgcm9vdHMgZnJvbSBhIGNvbXBsZXRlZCBidWlsZCByZXF1ZXN0IHdpdGggdGhl
IHNhbWUgY29tbWl0IHNldCcsIGFzeW5jICgpID0+IHsKQEAgLTExNTgsNzggKzExNTgsNzggQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVhbHNJ
Z25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFj
b21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
cmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAg
ICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxl
TmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAgICAgICB9
KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGRlZmVyIHNjaGVkdWxpbmcgYSBidWlsZCByZXF1ZXN0
IGlmIHRoZXJlIGlzIGEgInJ1bm5pbmciIGJ1aWxkIHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBz
ZXQsIGJ1dCBzaG91bGQgc2NoZWR1bGUgdGhlIGJ1aWxkIHJlcXVlc3QgaWYgInJ1bm5pbmciIGJ1
aWxkIHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBzZXQgZmFpbHMgbGF0ZXIgb24nLCBhc3luYyAo
KSA9PiB7CkBAIC0xMjQ0LDExNCArMTI0NCwxMTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4
KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
ODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChh
bm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhl
ckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1p
dFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogODAxfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0
YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9
KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAg
ICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVx
dWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQ
YXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAg
ICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAg
ICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdm
YWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDEyMykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRT
eW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2Vy
YWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQn
OiA5MDAsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQnOiAnOTAwJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsn
d2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICd3ay1wYXRjaCc6ICdodHRwOi8v
bG9jYWxob3N0OjgxODAvYXBpL3VwbG9hZGVkLWZpbGUvMTAwLnR4dCcsCiAgICAgICAgICAgICAg
ICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnOTAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNv
bWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgfSk7CkBAIC0xMzY4LDc4ICsxMzY4LDc4IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxk
UmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFu
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdu
b3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29t
bWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
cmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
ODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDkwMCwgYnVpbGRlcklkOiAzfSldfSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5
bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRl
cigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVl
c3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8zL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZGVycy8zL2J1aWxkcy8xMjQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBub3QgdXBkYXRlIGJ1aWxkIHJlcXVlc3RzIGZyb20gYW5vdGhlciB0cmlnZ2Vy
YWJsZScsIGFzeW5jICgpID0+IHsKQEAgLTE1MzQsMjIgKzE1MzQsMjIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1hbmlmZXN0LmZldGNoKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAgICAgICAgICAgICAgICAg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAg
ICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5hbGwoKVswXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQtd2Vi
a2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5h
bWUoKSwgJ2J1aWxkLXdlYmtpdCcpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgdGVzdCA9IFRl
c3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBjb25z
dCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29u
ZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBw
bGF0Zm9ybSksIG51bGwpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dl
cmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3Jv
dXBzKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1z
dm4nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0
b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1h
Y29zXSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVz
dFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0gewpAQCAtMTU4NCwyMiArMTU4NCwyMiBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwg
MSk7CiAKICAgICAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5m
aW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKICAgICAgICAgICAgICAgICBsZXQg
dHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUo
KSwgJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dl
cmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJv
b3RzKCksIHRydWUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFt
ZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdz
eXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1
c3RvbVJvb3RzKCksIHRydWUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZp
ZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAg
ICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSBbIF07CkBAIC0xNjExLDEzICsx
NjExLDEzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2Vy
YWJsZVByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgp
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUu
YWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJp
Z2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMg
PSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgp
WzBdLnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0u
bmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChn
cm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CiAgICAgICAgICAgICB9
KQogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE2MzIsMTIgKzE2MzIsMTIgQEAgZGVzY3JpYmUo
J0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBn
ZXRCdWlsZGVyTmFtZVRvSURNYXBQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5nZXRCdWls
ZGVyTmFtZVRvSURNYXAoKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgZ2V0
QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1
aWxkZXIiXSwgMSkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lE
TWFwWyJzb21lLWJ1aWxkZXItMSJdLCAyKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRlciAyIl0sIDMpCi0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVy
Il0sIDUpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
YW5vdGhlciB0ZXN0ZXIiXSwgNikKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIiXSwgMSkKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lLWJ1aWxkZXItMSJdLCAy
KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBb
InNvbWUgYnVpbGRlciAyIl0sIDMpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQorICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0sIDUp
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
YW5vdGhlciB0ZXN0ZXIiXSwgNikKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9v
bHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwppbmRleCA3YjJlNTE3
YzMxZjA1NTlhMTIxM2MxMTJjNDlkNGFhZGJkMjY3MWQzLi5lMzEzM2NhNGQwZTZhYmU1YmE3NWIy
ODFiYjdhYTBiNWMzYWM4NjFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRl
c3RzLmpzCkBAIC0xMTAsMTMgKzExMCwxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICBkZXNjcmliZSgnT1NCdWlsZGVyRmV0Y2hlci5fY29tcHV0ZU9yZGVy
JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGNhbGN1bGF0ZSB0aGUgcmlnaHQgb3JkZXIg
Zm9yIGEgZ2l2ZW4gdmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBm
ZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2
MDMwMzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRl
cignMTZkMzIxJyksIDE2MDMwMzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNo
ZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4z
IDE2RDMyJyksIDE2MDMwMDMyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIu
X2NvbXB1dGVPcmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2
RDMyJyksIDE2MDMwMDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNo
ZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2MDMwMzIxMDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxJyksIDE2MDMwMzIx
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRl
cignMTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIDE2
RDMyJyksIDE2MDMwMDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNo
ZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhc3NlcnRpb24gZXJyb3Igd2hl
biBnaXZlbiBhIGludmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CkBAIC0xNDEsMTMgKzE0MSwxMyBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IGZldGNoQ29tbWl0c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVp
bGRzKFsnbGlzdCcsICdidWlsZDEnXSwgJ15cXC4qJCcpOwogCiAgICAgICAgICAgICBhd2FpdCB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1
YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1
aWxkMSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQx
J10pOwogCiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFJlc3VsdHMgPSB7YWxsUmV2aXNpb25z
OiBbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0aFRlc3RhYmlsaXR5
OiB7fX07CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKCcxNkQzMjFcbjE2RTMyMXpcblxuMTZGMzIxJyk7CiAgICAgICAgICAgICBjb25zdCBi
dWlsZEluZm8gPSBhd2FpdCBmZXRjaENvbW1pdHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChleHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGV4cGVjdGVkUmVzdWx0cywgYnVpbGRJbmZvKTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgY29tbWFuZCBvdXRwdXQgYXMgSlNP
TiBmb3JtYXQnLCBhc3luYyAoKSA9PiB7CkBAIC0xNTcsMTMgKzE1NywxMyBAQCBkZXNjcmliZSgn
T1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGZldGNoQ29t
bWl0c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzKFsnbGlzdCcs
ICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG91dHB1dE9iamVjdCA9IHthbGxSZXZpc2lvbnM6IFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAi
MTZGMzIxIl0sIGNvbW1pdHNXaXRoVGVzdGFiaWxpdHk6IHsiMTZEMzIxIjogIlBhbmljIn19Owog
ICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShvdXRwdXRPYmplY3QpKTsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkSW5m
byA9IGF3YWl0IGZldGNoQ29tbWl0c1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG91dHB1dE9iamVjdCwgYnVpbGRJbmZvKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwob3V0cHV0T2JqZWN0LCBidWlsZEluZm8pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTczLDkgKzE3Myw5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAg
ICAgICBjb25zdCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBN
b2NrU3VicHJvY2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBmZXRj
aGVyLl9jb21taXRzV2l0aGluUmFuZ2UoWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwg
Ik9TWCIsIDE2MDQwMDAwMDAsIDE2MDYwMDAwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0
c1swXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcx
NkUzMjF6J30pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzFdLCB7cmVw
b3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA1MDMyMTAwLCByZXZpc2lvbjogJzE2RjMyMSd9KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAn
T1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gn
LCBvcmRlcjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CiAKICAgICAgICAgfSk7
CiAKQEAgLTE4Myw4ICsxODMsOCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAg
ICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwg
TW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0
Y2hlci5fY29tbWl0c1dpdGhpblJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0s
ICJPU1giLCAxNjA0MDAwMDAwLCAxNjA1MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3Vs
dHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAn
MTZFMzIxeid9KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHty
ZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NiwyNCArMTk2LDI0IEBAIGRlc2NyaWJl
KCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3du
ZWRDb21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENv
bW1pdCwgYW5vdGhlck9TWENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
J10pOwogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9j
a1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAg
ICAgICAgIE1vY2tTdWJwcm9jZXNzLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tT
dWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZF
MzInXSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzBdWydy
ZXBvc2l0b3J5J10sIG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbidd
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29t
bWl0cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzWzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9zaXRv
cnknXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMV1bJ3JldmlzaW9u
J10sIGFub3RoZXJPU1hDb21taXRbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNb
MF1bJ3JlcG9zaXRvcnknXSwgb3N4Q29tbWl0WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXZpc2lvbiddLCBvc3hDb21taXRb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
dWx0c1swXVsnb3duZWRDb21taXRzJ10sIG93bmVkQ29tbWl0V2l0aFdlYktpdCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ3JlcG9zaXRvcnknXSwgYW5v
dGhlck9TWENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0c1sxXVsncmV2aXNpb24nXSwgYW5vdGhlck9TWENvbW1pdFsncmV2aXNp
b24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzFd
Wydvd25lZENvbW1pdHMnXSwgYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIyNCwxNSArMjI0LDE1IEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRD
b21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1p
dF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJl
dHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAg
ICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlamVjdCgnRmFpbGVkIGdldHRpbmcg
b3duZWQtY29tbWl0Jyk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQ
cm9taXNlLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRw
dXQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvcl9vdXRwdXQsICdGYWlsZWQgZ2V0dGlu
ZyBvd25lZC1jb21taXQnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGVycm9yX291dHB1dCwgJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjQ1LDE1ICsyNDUs
MTUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBjb25zdCBhZGRvd25lZENvbW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNG
b3JCdWlsZChbb3N4Q29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSkK
IAogICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jl
dmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzIn
XSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZSgneyJXZWJLaXQiOnsiUmFuZG9tS2V5IjogIlJhbmRvbVZhbHVlIn19Jyk7CiAKICAgICAgICAg
ICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9taXNlLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvcl9vdXRwdXQubmFtZSwgJ0Fzc2VydGlvbkVycm9yIFtFUlJfQVNTRVJUSU9OXScpOwor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUs
ICdBc3NlcnRpb25FcnJvcicpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pCkBAIC0yOTAsNDAgKzI5MCw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSksIDE2MDMwMDY4MDApOwogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gv
bGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAx
NjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11b
MF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgICAgICBjb25zdCB3YWl0Rm9y
SW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2Zl
dGNoQXZhaWxhYmxlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZv
Y2F0aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVy
cmExNkQ2OFxuU2llcnJhMTZENjlcbicpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJh
MTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRz
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJh
MTZFMzNcblNpZXJyYTE2RTMzaFxuU2llcnJhMTZFMzQnKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdl
YktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtMzMxLDI5ICszMzEsMjkgQEAgZGVzY3JpYmUoJ09TQnVp
bGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZmV0Y2hSZXBvcnRBbmRV
cGRhdGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBi
dWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAg
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RDY4XG5T
aWVycmExNkQ2OVxuJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2ll
cnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmExNkUzM1xuU2ll
cnJhMTZFMzNoXG5TaWVycmExNkUzNCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJh
MTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0u
cmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0
aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKIAogICAgICAgICAgICAg
ICAgIHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKQEAgLTM3MCwzNCArMzcwLDM0IEBAIGRlc2NyaWJlKCdPU0J1aWxk
RmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2
RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQg
PSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVw
b3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3du
ZXInXSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAx
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1p
dDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAw
MzMwOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMz
aC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAz
MzA4KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsn
cmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUz
NFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQw
MDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw0MCArNDIzLDQwIEBAIGRl
c2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0
bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMz
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNn
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICAgICAgY29u
c3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9j
YXRpb24oKTsKICAgICAgICAgICAgICAgICBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBm
ZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2Nh
dGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52
b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZF
MzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRp
b24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3du
ZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CkBAIC00NjQsMjkgKzQ2NCwyOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1By
b21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFE
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShv
d25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNb
MF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRD
b21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNz
LnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUz
NCddKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxk
c1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUwMywzNCArNTAzLDM0
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAg
Y29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBd
Wydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jl
cG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2
OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3Np
dG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMz
aFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hb
MF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7
CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjkn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAg
fSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQw
MDM0MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTU1NSw0MSArNTU1LDQxIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAw
JnRvPTE2MDMwOTk5MDAnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogICAg
ICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5
MDAnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAg
IGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRB
bmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLndhaXRG
b3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgYXdhaXQg
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJL
aXQpKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvcklu
dm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRX
aXRoV2ViS2l0KSk7CiAgICAgICAgICAgICBhd2FpdCAgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRX
YWl0Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQn
XSk7CiAKICAgICAgICAgICAgIGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKIApA
QCAtNjAxLDQzICs2MDEsNDMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSBhd2FpdCBkYi5zZWxlY3RS
b3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkUzM2gnfSk7CiAgICAgICAgICAg
ICBjb25zdCBvc3hDb21taXQxNkUzNCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7
J3JldmlzaW9uJzogJ1NpZXJyYTE2RTM0J30pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNj
UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddLCAxNjAz
MDA2ODAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsndGVz
dGFiaWxpdHknXSwgIlBhbmljIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZENjgubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQ2OFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVyJ10pLCAxNjAzMDA2
ODAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OFswXVsn
dGVzdGFiaWxpdHknXSwgIlBhbmljIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQVSIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9z
eENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQ
VSIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzEubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9y
eSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ29y
ZGVyJ10sIDE2MDQwMDMxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMxWzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzMVsw
XVsnb3JkZXInXSksIDE2MDQwMDMxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTMxWzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlcidd
LCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVy
J10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7
CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0x
NjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAg
ICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUz
NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgcmVwb3J0IGNvbW1pdHMgd2l0aG91dCBvd25lZC1jb21taXRzIGlmICJvd25l
ZENvbW1pdENvbW1hbmQiIGlzIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnJywgYXN5bmMgKCkgPT4g
ewpAQCAtNjU5LDI1ICs2NTksMjUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5
JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAn
cmVwb3J0ZWQnOiB0cnVlfSldKTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2
MDMwMDY4MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwg
MTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYw
NDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3
KTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1
YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVw
b3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMo
KTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9y
U2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVz
dWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAtNjk0LDMwICs2OTQs
MzAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qg
b3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5
WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQx
NkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQx
NkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9m
cm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAz
NDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQw
MDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBjb21taXRz
IHdpdGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFuZ2UnLCBhc3luYyAoKSA9PiB7CkBAIC03Mzgs
MjUgKzczOCwyNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3Jl
dmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6
IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAw
KTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRv
PTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAg
ICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRl
UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKIAogICAgICAg
ICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxk
cyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7
CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZF
eHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0
cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2Fp
dCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC03NzMsMzAgKzc3MywzMCBAQCBkZXNj
cmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9z
eENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQx
NkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9y
eS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBv
c2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVy
J10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMz
aFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydv
cmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMw
MDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
MzAwNjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAw
MDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXBkYXRlIGNvbW1pdHMgd2l0aGluIHNw
ZWNpZmllZCByZXZpc2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsKQEAgLTgxNywyOSArODE3LDI5
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAn
U2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7
CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICBjb25z
dCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0g
ZmV0Y2hlci5fZmV0Y2hBdmFpbGFibGVCdWlsZHMoKTsKIAogICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAg
IGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwog
ICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRz
Rm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaEF2YWlsYWJs
ZUJ1aWxkc1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LmNvbW1pdHNU
b1VwZGF0ZS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dC5jb21taXRzVG9VcGRhdGUubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCB1c2UgImxhc3QtcmVwb3J0ZWQiIG9yZGVyICsgMSBhcyAibWluT3JkZXIiJywgYXN5
bmMgKCkgPT4gewpAQCAtODUzLDE1ICs4NTMsMTUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVy
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7
J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RDEwMCcsICdvcmRlcic6IDE2
MDMwMTAwMDAsICdyZXBvcnRlZCc6IHRydWV9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9s
YXN0LXJlcG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RDEwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddLCAxNjAzMDEwMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgIGNvbnN0IGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRB
bmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJv
bWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBm
ZXRjaEFuZFJlcG9ydFByb21pc2U7CkBAIC04NzYsMTkgKzg3NiwxOSBAQCBkZXNjcmliZSgnT1NC
dWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2
RDY5ID0gcmVzdWx0c1syXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMGEgPSBy
ZXN1bHRzWzNdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5s
ZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxl
bmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5s
ZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5s
ZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwYS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDEwMGFbMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQxMDBhWzBdWydv
cmRlciddKSwgMTYwMzAxMDAwMSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYw
MzAxMDAwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSks
IDE2MDMwMTAwMDEpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHVzZSBtaW5S
ZXZpc2lvbiBpbiB0aGUgY29uZmlnIGlmIHRoZXJlIGlzIG5vIGNvbW1pdCcsIGFzeW5jICgpID0+
IHsKQEAgLTkwMSwxMyArOTAxLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMTAsICduYW1lJzogJ09TWCd9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOwogCiAgICAgICAgICAg
ICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9t
aXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAg
YXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0
aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAg
ICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAg
LTkyNCwyMyArOTI0LDIzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAwID0gcmVzdWx0c1szXTsKICAgICAg
ICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMSA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDAubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSwgMTYwMzAxMDAw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwWzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChvc3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMS5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddLCAxNjAz
MDEwMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDEu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQx
MDFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSksIDE2MDMwMTAxMDApOwogCiAg
ICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5
OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkQxMDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RDEwMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDEwMCk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgc3RvcCByZXBvcnRpbmcgaWYgYW55IGN1c3RvbSBjb21tYW5k
IGZhaWxzJywgKCkgPT4gewpAQCAtOTYzLDYwICs5NjMsNjAgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQw
MDMzMDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvcklu
dm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBmZXRjaEFuZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0
QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0
aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2
RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxk
cyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5n
aWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJw
cm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAg
ICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZWplY3QoJ0NvbW1hbmQgZmFpbGVkJyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZldGNoQW5kUmVwb3J0UHJvbWlzZS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3Jfb3V0cHV0LCAnQ29tbWFuZCBmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1dCwgJ0NvbW1hbmQgZmFpbGVkJyk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMz
MDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pCiAgICAgfSkK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
c3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5q
cwppbmRleCA3MWExZDUzOWViNjJmZWYyYWViN2NlMGMxOTY0MGIxNjRjMmZjZjEwLi42OWE5MWY1
ZTYxMTMwNmVhZGI4ZjIxMjdiODhkMDVkZWFiOTViMTBiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRp
b24tdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNDUsOCArMTQ1LDgg
QEAgY29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMgPSB7CiAKIGZ1bmN0aW9uIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3QsIG1ldGhvZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQogewot
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKLSAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdC51cmwsIHVybCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QubWV0
aG9kLCBtZXRob2QpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsK
ICAgICByZXF1ZXN0LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7CiB9CiAKQEAgLTI2NSwyMyAr
MjY1LDIzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNl
Y29uZFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdhbm90aGVyIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwg
YnVpbGRSZXF1ZXN0SWQ6IGZpcnN0VGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6
IFsKICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVl
c3RJZDogc2Vjb25kVGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSwKQEAgLTI5Miw0NSArMjky
LDQ1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogCiAg
ICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CiAKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGFub3Ro
ZXJUYXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM2ICszNDQsMzYgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgY29uc3QgdGFz
a0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgbGV0IHdl
YmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGxldCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGxldCBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7CkBAIC0zODEsMzIgKzM4MSwzMiBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhd2FpdCBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxv
YWRlZC1maWxlLzEuZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRy
dWUsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJ319KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBN
b2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDF9KSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEx
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51
bWJlcjogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdCdWlsZGluZyBXZWJL
aXQnfSkpOwpAQCAtNDE1LDM5ICs0MTUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAKICAgICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
QEAgLTQ1NiwyNiArNDU2LDI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwg
YnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNj
cmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBN
b2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBp
bGluZyBXVEYnfSkpOwpAQCAtNDg0LDgwICs0ODQsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgZmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5n
IFdURicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFz
c2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgYXdhaXQgdXBsb2Fk
Um9vdChidWlsZFJlcXVlc3QuaWQoKSwgZmlyc3RCdWlsZE51bWJlcik7CisgICAgICAgIGF3YWl0
IHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCBmaXJzdEJ1aWxkTnVtYmVy
KTsKIAogICAgICAgICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21w
aWxpbmcgV1RGJyk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
ICAgICAgICAgbGV0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNj
cmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKQEAgLTU2NiwzMiArNTY2LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51
bWJlcn0pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWIt
YnVpbGRzJywgJ09LJyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0
YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAn
YnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC02
MDMsODMgKzYwMyw4MyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
IAogICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1i
ZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
Zmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgIGF3YWl0IHVwbG9h
ZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgYXdhaXQgdXBsb2Fk
Um9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKIAogICAgICAgICB0
ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVt
YmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVy
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwog
ICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9v
dF0pOwogICAgIH0pOwogCkBAIC02OTQsMzQgKzY5NCwzNCBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAg
ICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTcyOSwzMiAr
NzI5LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9h
ZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1
ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1i
dWlsZHMnfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAg
ICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtNzYzLDc2ICs3NjMsNzYg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgp
LCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtODQxLDMyICs4NDEsMzIgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2
MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFi
LWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsK
QEAgLTg3OCw4MCArODc4LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7
CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndl
YmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Vi
a2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
NC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC05NjcsMzQgKzk2NywzNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQg
PSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTEwMDIsMzIgKzEwMDIsMzIgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYy
MicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcp
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9y
bS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEu
YnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpA
QCAtMTAzNiw3NiArMTAzNiw3NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9v
dChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAg
ICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9v
dCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRS
b290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9
IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0x
MTE0LDMyICsxMTE0LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDog
MX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcy
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAg
ICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAn
YnVpbGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpA
QCAtMTE1MSw4MCArMTE1MSw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0g
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQp
OworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVl
c3QuaWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53
ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTI0MSwyMiArMTI0MSwyMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNr
SWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1
ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdCgxLCA0NSk7CkBAIC0xMjY1
LDM5ICsxMjY1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CiAgICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAg
ICAgICAgICAgICBjb25zdCByb290cyA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb290cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBmaXJzdFJvb3QgPSByb290c1swXTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm9v
dHNbMF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0NS5kYXQnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlclJvb3RzID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwogICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxk
cyc6IFsKQEAgLTEzMDcsMTMgKzEzMDcsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMnLCAn
T0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydp
ZCc6ICczJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgog
ICAgICAgICAgICAgICAgIHsndGVzdCc6ICdzb21lLXRlc3QnLCAnd2snOiAnMTkxNjIyJywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnMycsJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywg
J3Jvb3RzJzogSlNPTi5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1dKX19KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCBbCiAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiAzfSksCiAgICAgICAg
ICAgICBdKTsKQEAgLTEzMjEsNyArMTMyMSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAg
ICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTEzNDMsMzYgKzEzNDMsMzYgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlVGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4g
ewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmlkKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdC5pZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAg
LTEzODMsMTMgKzEzODMsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
OSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAg
LTE0MDEsMjQgKzE0MDEsMjQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTAwMikpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMDAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0MzIsNDkgKzE0MzIsNDkgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdy
b3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAg
ICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCks
IE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ290aGVy
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiAzMTJ9KSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInLCAyKSwKQEAgLTE0ODMsMjggKzE0ODMsMjggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxZXVzdHMgPSB0ZXN0R3Jv
dXBzWzBdLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3Rz
WzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMF0uaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVz
TGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVz
dHNbMF0uc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnb3RoZXIgYnVpbGRlcicsIDMx
MikpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzBd
LnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ290aGVy
IGJ1aWxkZXInLCAzMTIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cWV1c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cWV1c3RzWzFdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNb
MV0uaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0u
c3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxZXVzdHNbMV0uc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxZXVzdHNbMV0uYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFd
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFzc2VydFRlc3RCdWls
ZEhhc0ZhaWxlZChyZXF1ZXN0KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFzc2Vy
dCghcmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQoYnVpbGRSZXFldXN0c1syXSk7
CkBAIC0xNTI0LDM2ICsxNTI0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKQEAgLTE1NjEsMzIgKzE1NjEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcics
IDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRz
JywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEs
IHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMn
OiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5Ijoi
SmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC0xNTk1LDg1ICsxNTk1LDg1IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRK
U0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpLnRoZW4o
KCkgPT4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9y
eTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0w
NS0xMFQwMjo1NDowOS42NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJz
ZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMykudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNl
SW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcs
IG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDow
OS42NjYnKSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRS
b290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKQEAgLTE2ODIsMzIgKzE2ODIsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1
aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxk
UmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxk
cycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRh
LCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRz
JzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6
IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0x
NzE5LDk1ICsxNzE5LDk1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAg
Y29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAg
ICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9h
ZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3Qo
b3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcs
IG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDow
OS42NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1
aWxkUmVxdWVzdC5pZCgpKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3QocGFyc2VJbnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBv
d25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDku
NjY2JykpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RH
cm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9v
dCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
Qyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qg
b3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
cldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCBvdGhlckpTQ1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
Qyk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJKU0NS
b290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwgb3Ro
ZXJKU0NSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTgyNCwzNiArMTgyNCwzNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRh
c2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAg
ICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93
bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xODYxLDMyICsxODYxLDMy
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sy
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3
ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lv
biI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJS
ZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
SWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVl
c3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAt
MTg5NSwxMjYgKzE4OTUsMTI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxv
YWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9h
ZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlND
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWls
ZFJlcXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVw
b3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsK
KyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgp
KSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0ph
dmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25l
ZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoKG93bmVkSlNDKSk7CiAgICAgICAgICAgICBh
c3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0yMDIzLDMyICsy
MDIzLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAg
IHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2
aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93
bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMjA2MCwxNDEgKzIwNjAsMTQxIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlND
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQo
anNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRS
b290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJl
cXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qg
b3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9y
eUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAg
ICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NS
b290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJX
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwotICAgICAgICAgICAgcmV0dXJuIHVw
bG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTog
J1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0x
MFQwMjo1NDowOS42NjYnKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0
Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0
OjA5LjY2NicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRl
c3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0
UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAg
ICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1l
KCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29u
c3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBj
b25zdCBvdGhlckpTQ1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJK
U0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwg
b3RoZXJKU0NSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggMzBiZDI1
ZjBhY2QwMTdlNDVmOGE4MDgxZmNlZTFiOGQwOTdmNjg4MS4uNTJjYjFlYzI0M2I5ZjE2NWRmN2Rj
N2Q2OTBlNDA3YTA4MDllZTg0YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCkBAIC0xMiw3ICsxMiw3IEBAIGNsYXNzIEJ1
aWxkYm90QnVpbGRFbnRyeSB7CiAKICAgICBpbml0aWFsaXplKHN5bmNlciwgcmF3RGF0YSkKICAg
ICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlcklEKCksIHJhd0RhdGFbJ2J1
aWxkZXJpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHN5bmNlci5i
dWlsZGVySUQoKSksIHBhcnNlSW50KHJhd0RhdGFbJ2J1aWxkZXJpZCddKSk7CiAKICAgICAgICAg
dGhpcy5fc3luY2VyID0gc3luY2VyOwogICAgICAgICB0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVz
dElkID0gcmF3RGF0YVsnYnVpbGRyZXF1ZXN0aWQnXTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3Mg
QnVpbGRib3RCdWlsZEVudHJ5IHsKIAogICAgIGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNO
ZWVkZWQocmVxdWVzdCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmlkKCks
IHRoaXMuX2J1aWxkUmVxdWVzdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3QuaWQoKSwgdGhpcy5fYnVpbGRSZXF1ZXN0SWQpOwogICAgICAgICBpZiAoIXJlcXVlc3QpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgaWYgKHRoaXMuaXNQZW5kaW5nKCkpIHsK
QEAgLTExNyw3ICsxMTcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGxldCBw
cm9wZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChuZXdSZXF1ZXN0LCBy
ZXF1ZXN0c0luR3JvdXApOwogCiAgICAgICAgIGFzc2VydChwcm9wZXJ0aWVzWydmb3JjZXNjaGVk
dWxlciddLCBgZm9yY2VzY2hlZHVsZXIgd2FzIG5vdCBzcGVjaWZpZWQgaW4gYnVpbGRib3QgcHJv
cGVydGllcyBmb3IgYnVpbGQgcmVxdWVzdCAke25ld1JlcXVlc3QuaWQoKX0gb24gcGxhdGZvcm0g
IiR7bmV3UmVxdWVzdC5wbGF0Zm9ybSgpLm5hbWUoKX0iIGZvciBidWlsZGVyICIke3RoaXMuYnVp
bGRlck5hbWUoKX0iYCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCghdGhpcy5fc2xhdmVQcm9wZXJ0
eU5hbWUsICFzbGF2ZU5hbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoIXRoaXMuX3Ns
YXZlUHJvcGVydHlOYW1lLCAhc2xhdmVOYW1lKTsKICAgICAgICAgaWYgKHRoaXMuX3NsYXZlUHJv
cGVydHlOYW1lKQogICAgICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9zbGF2ZVByb3BlcnR5TmFt
ZV0gPSBzbGF2ZU5hbWU7CiAKQEAgLTMzNyw3ICszMzcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNl
ciB7CiAKICAgICAgICAgYXNzZXJ0KGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwgJ2J1aWxk
UmVxdWVzdEFyZ3VtZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNl
ZCB0byBzdG9yZSB0aGUgYnVpbGQgcmVxdWVzdCBJRCcpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0eXBlb2YoY29uZmlnLnJlcG9zaXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlH
cm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZp
bml0aW9uJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEg
ZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7CiAKICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IHt9OwogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4g
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMpCkBAIC00MTYsNyArNDE2LDcgQEAgY2xhc3MgQnVpbGRi
b3RTeW5jZXIgewogCiAgICAgc3RhdGljIF9wYXJzZVJlcG9zaXRvcnlHcm91cChuYW1lLCBncm91
cCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVz
KSwgJ29iamVjdCcsCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAucmVw
b3NpdG9yaWVzKSwgJ29iamVjdCcsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtu
YW1lfSIgZG9lcyBub3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzYCk7CiAg
ICAgICAgIGFzc2VydCghKCdkZXNjcmlwdGlvbicgaW4gZ3JvdXApIHx8IHR5cGVvZihncm91cFsn
ZGVzY3JpcHRpb24nXSkgPT0gJ3N0cmluZycsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91
cCAiJHtuYW1lfSIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0aW9uYCk7CkBAIC00MzEsNyArNDMx
LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9y
eSA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAg
ICAgICAgIGFzc2VydChyZXBvc2l0b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2
YWxpZCByZXBvc2l0b3J5IG5hbWVgKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVw
b3NpdG9yeU5hbWVdID0gcmVwb3NpdG9yeTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBl
b2Yob3B0aW9ucyksICdvYmplY3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVjaWZpZXMgYSBu
b24tZGljdGlvbmFyeSB2YWx1ZWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5
cGVvZihvcHRpb25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBh
IG5vbi1kaWN0aW9uYXJ5IHZhbHVlYCk7CiAgICAgICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwg
dHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKG9wdGlvbnMuYWNjZXB0c1BhdGNoKSwKICAgICAgICAgICAg
ICAgICBgIiR7cmVwb3NpdG9yeU5hbWV9IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2
YWx1ZTogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zLmFjY2VwdHNQYXRjaCl9YCk7CiAgICAgICAg
ICAgICBpZiAob3B0aW9ucy5hY2NlcHRzUGF0Y2gpCkBAIC00NDEsNyArNDQxLDcgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICB9CiAgICAgICAgIGFzc2VydChwYXJzZWRSZXBvc2l0
b3J5TGlzdC5sZW5ndGgsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVj
aWZ5IGFueSByZXBvc2l0b3J5YCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91
cC50ZXN0UHJvcGVydGllcyksICdvYmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIg
c3BlY2lmaWVzIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAudGVzdFByb3BlcnRpZXMp
LCAnb2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVz
dCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZWApOwogCiAgICAgICAgIGNvbnN0
IHJlc29sdmVSZXBvc2l0b3J5ID0gKHJlcG9zaXRvcnlOYW1lKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0b3J5TmFtZV07CkBAIC00
NzAsNyArNDcwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB9KTsKICAgICAg
ICAgYXNzZXJ0KCFncm91cC5hY2NlcHRzUm9vdHMgPT0gIXNwZWNpZmllc1Jvb3RzLAogICAgICAg
ICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGFjY2VwdHMgcm9vdHMgYnV0IGRvZXMg
bm90IHNwZWNpZnkgcm9vdHMgaW4gdGVzdFByb3BlcnRpZXNgKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHBhcnNlZFJlcG9zaXRvcnlMaXN0Lmxlbmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXplLAor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0
ZXN0UmVwb3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtu
YW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVz
dGluZ2ApOwogCiAgICAgICAgIGxldCBidWlsZFByb3BlcnRpZXNUZW1wbGF0ZSA9IG51bGw7CkBA
IC01MDQsNyArNTA0LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgYXNz
ZXJ0KHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSB8fCBoYXNPd25lZFJldmlzaW9u
cywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBm
b3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCBhbnkgcGF0Y2hlcyBvciBuZWVkIHRvIGJ1
aWxkIG93bmVkIGNvbXBvbmVudHNgKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9y
eSBvZiBwYXRjaFJlcG9zaXRvcmllcykKICAgICAgICAgICAgICAgICBhc3NlcnQocmV2aXNpb25S
ZXBvc2l0b3JpZXMuaGFzKHJlcG9zaXRvcnkpLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIg
c3BlY2lmaWVzIGEgcGF0Y2ggZm9yICIke3JlcG9zaXRvcnkubmFtZSgpfSIgYnV0IGRvZXMgbm90
IHNwZWNpZnkgYSByZXZpc2lvbmApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhdGNoQWNj
ZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNp
emUsIHBhdGNoUmVwb3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkg
Z3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlz
dGVkIGluIGJ1aWxkaW5nIGEgcGF0Y2hgKTsKICAgICAgICAgfQogCkBAIC01NjQsMTIgKzU2NCwx
MiBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkg
ewogICAgICAgICAgICAgY2FzZSAncHJvcGVydGllcyc6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJv
cGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBz
aG91bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbJ3By
b3BlcnRpZXMnXSkKICAgICAgICAgICAgICAgICAgICAgY29uZmlnWydwcm9wZXJ0aWVzJ10gPSB7
fTsKICAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gY29uZmlnWydwcm9wZXJ0aWVz
J107CiAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHZhbHVlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YodmFsdWVbbmFtZV0pLCAnc3RyaW5nJywg
YEJ1aWxkIHByb3BlcnRpZXMgIiR7bmFtZX0iIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUg
b2YgdHlwZSAiJHt0eXBlb2YodmFsdWUpfSJgKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVy
dGllcyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5
cGVvZih2YWx1ZSl9ImApOwogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0g
dmFsdWVbbmFtZV07CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTgwLDcgKzU4MCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAg
ICBjb25maWdbbmFtZV0gPSB2YWx1ZS5zbGljZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSAnYnVpbGRlcic6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQg
YmUgb2Ygc3RyaW5nIHR5cGVgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlw
ZWApOwogICAgICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAnYnVpbGRlcklEJzoKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5q
cwppbmRleCA0MGRlMGE1Njk3Yzg3Y2ViMDk4MzU4NzJkN2UyZTA4NTMzOWJiM2MzLi4yOWMxZTUw
OGNmZWQ2NTY0YzVjMjM5ZjA2MDU5ODRlOGU0MTk2ZjMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBA
IC0xNDcsNyArMTQ3LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhc3NlcnQodHJpZ2dl
cmFibGUgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZSwgJ011c3Qgc3BlY2lmeSBhIHZhbGlkIHRyaWdn
ZXJhYmxlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0
aGlzLl9uYW1lLCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhp
cy5fbmFtZSwgJ011c3Qgc3BlY2lmeSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3QucmVwb3NpdG9yeUdy
b3VwKCk7CiAgICAgICAgICAgICBpZiAoIXJlcG9zaXRvcnlHcm91cCkgewogICAgICAgICAgICAg
ICAgIHRoaXMuX2xvZ2dlci5lcnJvcihgQnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZG9l
cyBub3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgZ3JvdXAuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGlz
IG5vIGxvbmdlciBzdXBwb3J0ZWQuYCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzCmluZGV4IGFjZjA0OWQzODhmYzY3N2Fm
YTA4NDg4ODA2MTVkYTYxY2MxY2VlMzkuLjI2NDI1NTJkZWNmMzAxZmFhNTQwNDQ0N2Q4ZDkzZGQ0
MGM0YTcwNTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9t
YXJrdXAtY29tcG9uZW50LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9tYXJrdXAtY29tcG9uZW50LmpzCkBAIC0xLDQgKzEsNiBAQAorJ3VzZSBzdHJpY3QnOwogCitj
b25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKIGNvbnN0IE1hcmt1cERvY3VtZW50ID0g
bmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAgewpAQCAt
MjcsNyArMjksNyBAQCBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1
bWVudCB7CiAKICAgICBfaWRGb3JDbG9uZShvcmlnaW5hbCkKICAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KG9yaWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CisgICAgICAgIGFzc2Vy
dC5vayhvcmlnaW5hbCBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICByZXR1cm4gdGhp
cy5fbm9kZUlkKys7CiAgICAgfQogCkBAIC0zOCw3ICs0MCw3IEBAIGNvbnN0IE1hcmt1cERvY3Vt
ZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIAogICAgIG1hcmt1cChub2RlKQogICAg
IHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwor
ICAgICAgICBhc3NlcnQub2sobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICBy
ZXR1cm4gbm9kZS5fbWFya3VwKCk7CiAgICAgfQogCkBAIC01Niw3ICs1OCw3IEBAIGNvbnN0IE1h
cmt1cERvY3VtZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIGNsYXNzIE1hcmt1cE5v
ZGUgewogICAgIGNvbnN0cnVjdG9yKGlkKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
dHlwZW9mKGlkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5vayh0eXBlb2YoaWQpID09
ICdudW1iZXInKTsKICAgICAgICAgdGhpcy5faWQgPSBpZDsKICAgICAgICAgdGhpcy5fcGFyZW50
Tm9kZSA9IG51bGw7CiAgICAgfQpAQCAtNzMsOSArNzUsOSBAQCBjbGFzcyBNYXJrdXBOb2RlIHsK
IAogICAgIF9jbG9uZU5vZGVEYXRhKGNsb25lZE5vZGUpCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydCh0eXBlb2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5faWQgIT0gY2xvbmVkTm9kZS5faWQpOwotICAgICAgICBjb25zb2xl
LmFzc2VydChjbG9uZWROb2RlLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQu
b2sodHlwZW9mKGNsb25lZE5vZGUuX2lkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5v
ayh0aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7CisgICAgICAgIGFzc2VydC5vayhjbG9uZWRO
b2RlLl9wYXJlbnROb2RlID09IG51bGwpOwogICAgIH0KIAogICAgIHJlbW92ZSgpCkBAIC0xMTMs
NyArMTE1LDcgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewog
ICAgICAgICBpZiAoY2hpbGQuX3BhcmVudE5vZGUpCiAgICAgICAgICAgICBjaGlsZC5yZW1vdmUo
KTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydChjaGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsK
KyAgICAgICAgYXNzZXJ0Lm9rKGNoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOwogICAgICAgICB0
aGlzLl9jaGlsZE5vZGVzLnB1c2goY2hpbGQpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9
IHRoaXM7CiAgICAgfQpAQCAtMTIzLDcgKzEyNSw3IEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUg
ZXh0ZW5kcyBNYXJrdXBOb2RlIHsKICAgICAgICAgaWYgKGNoaWxkLl9wYXJlbnROb2RlICE9IHRo
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hp
bGROb2Rlcy5pbmRleE9mKGNoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0g
MCk7CisgICAgICAgIGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGRO
b2Rlcy5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7
CiAgICAgfQpAQCAtMTQyLDEwICsxNDQsMTAgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRl
bmRzIE1hcmt1cE5vZGUgewogCiAgICAgICAgIGlmIChuZXdDaGlsZC5fcGFyZW50Tm9kZSkKICAg
ICAgICAgICAgIG5ld0NoaWxkLnJlbW92ZSgpOwotICAgICAgICBjb25zb2xlLmFzc2VydChuZXdD
aGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG5ld0NoaWxkLl9w
YXJlbnROb2RlID09IG51bGwpOwogCiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hpbGRO
b2Rlcy5pbmRleE9mKG9sZENoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0g
MCk7CisgICAgICAgIGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGRO
b2Rlcy5zcGxpY2UoaW5kZXgsIDEsIG5ld0NoaWxkKTsKICAgICAgICAgb2xkQ2hpbGQuX3BhcmVu
dE5vZGUgPSBudWxsOwogICAgICAgICBuZXdDaGlsZC5fcGFyZW50Tm9kZSA9IHRoaXM7CkBAIC0x
NTUsOCArMTU3LDggQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUg
ewogY2xhc3MgTWFya3VwQ29udGVudFJvb3QgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2RlIHsKICAg
ICBjb25zdHJ1Y3RvcihpZCwgaG9zdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhv
c3QgaW5zdGFuY2VvZiBNYXJrdXBFbGVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaG9z
dC5fY29udGVudFJvb3QgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayhob3N0IGluc3RhbmNl
b2YgTWFya3VwRWxlbWVudCk7CisgICAgICAgIGFzc2VydC5vayhob3N0Ll9jb250ZW50Um9vdCA9
PSBudWxsKTsKICAgICAgICAgc3VwZXIoaWQpOwogICAgICAgICB0aGlzLl9ob3N0RWxlbWVudCA9
IG51bGw7CiAgICAgICAgIGhvc3QuX2NvbnRlbnRSb290ID0gdGhpczsKQEAgLTE3NSw3ICsxNzcs
NyBAQCBjbGFzcyBNYXJrdXBFbGVtZW50IGV4dGVuZHMgTWFya3VwUGFyZW50Tm9kZSB7CiAgICAg
Y29uc3RydWN0b3IoaWQsIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcihpZCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CisgICAgICAgIGFzc2Vy
dC5vayh0eXBlb2YobmFtZSkgPT0gJ3N0cmluZycpOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKICAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3Zh
bHVlID0gbnVsbDsKQEAgLTM2NCw3ICszNjYsNyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNl
IGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAg
IHRoaXMuX25hbWUgPSBjb21wb25lbnRzQnlDbGFzcy5nZXQobmV3LnRhcmdldCk7CiAgICAgICAg
IGNvbnN0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21wb25lbnQsIGBDb21wb25lbnQgIiR7dGhpcy5fbmFtZX0iIGhh
cyBub3QgYmVlbiBkZWZpbmVkYCk7CisgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQsIGBDb21w
b25lbnQgIiR7dGhpcy5fbmFtZX0iIGhhcyBub3QgYmVlbiBkZWZpbmVkYCk7CiAgICAgICAgIHRo
aXMuX2NvbXBvbmVudElkID0gY29tcG9uZW50LmlkOwogICAgICAgICB0aGlzLl9lbGVtZW50ID0g
bnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFJvb3QgPSBudWxsOwpAQCAtNDEyLDcgKzQxNCw3
IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNl
IHsKIAogICAgIHN0YXRpYyBydW5SZW5kZXJMb29wKCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2so
IWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CiAgICAgICAgIGRvIHsKICAgICAgICAgICAg
IGNvbnN0IGN1cnJlbnRTZXQgPSBbLi4uY29tcG9uZW50c1RvUmVuZGVyXTsKICAgICAgICAgICAg
IGNvbXBvbmVudHNUb1JlbmRlci5jbGVhcigpOwpAQCAtNDI5LDE0ICs0MzEsMTQgQEAgY2xhc3Mg
TWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAg
cmVuZGVyUmVwbGFjZShwYXJlbnROb2RlLCBjb250ZW50KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID09IHRoaXMpOwotICAgICAgICBj
b25zb2xlLmFzc2VydChwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7Cisg
ICAgICAgIGFzc2VydC5vayhjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7Cisg
ICAgICAgIGFzc2VydC5vayhwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7
CiAgICAgICAgIHBhcmVudE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICAgICAgaWYgKGNv
bnRlbnQpIHsKICAgICAgICAgICAgIE1hcmt1cENvbXBvbmVudEJhc2UuX2FkZENvbnRlbnRUb0Vs
ZW1lbnQocGFyZW50Tm9kZSwgY29udGVudCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVu
dCA9IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29tcG9uZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQpOwogICAg
ICAgICAgICAgdGhpcy5fYXBwbHlTdHlsZU92ZXJyaWRlcyhwYXJlbnROb2RlLCBjb21wb25lbnQu
c3R5bGVPdmVycmlkZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00OTMsNyArNDk1LDcgQEAgY2xh
c3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAg
ICAgc3RhdGljIHJlc2V0KCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjdXJyZW50
bHlSZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2soIWN1cnJlbnRseVJlbmRl
cmluZ0NvbXBvbmVudCk7CiAgICAgICAgIE1hcmt1cERvY3VtZW50LnJlc2V0KCk7CiAgICAgICAg
IGNvbXBvbmVudHNNYXAuY2xlYXIoKTsKICAgICAgICAgY29tcG9uZW50c0J5Q2xhc3MuY2xlYXIo
KTsKQEAgLTU2Nyw5ICs1NjksOSBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMg
Q29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICBzdGF0aWMgZGVmaW5lRWxlbWVudChuYW1lLCBj
b21wb25lbnRDbGFzcykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb21wb25lbnRz
TWFwLmdldChuYW1lKSwgYFRoZSBjb21wb25lbnQgIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4g
ZGVmaW5lZGApOworICAgICAgICBhc3NlcnQub2soIWNvbXBvbmVudHNNYXAuZ2V0KG5hbWUpLCBg
VGhlIGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkYCk7CiAgICAg
ICAgIGNvbnN0IGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MgPSBjb21wb25lbnRzQnlDbGFzcy5n
ZXQoY29tcG9uZW50Q2xhc3MpOwotICAgICAgICBjb25zb2xlLmFzc2VydCghZXhpc3RpbmdDb21w
b25lbnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcworICAgICAgICBhc3NlcnQu
b2soIWV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MsIGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MK
ICAgICAgICAgICAgID8gYFRoZSBjb21wb25lbnQgY2xhc3MgIiR7ZXhpc3RpbmdDb21wb25lbnRG
b3JDbGFzc30iIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCB0byBkZWZpbmUgYW5vdGhlciBjb21wb25l
bnQgIiR7ZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcy5uYW1lfSJgIDogJycpOwogICAgICAgICBj
b21wb25lbnRzTWFwLnNldChuYW1lLCB7CiAgICAgICAgICAgICBjbGFzczogY29tcG9uZW50Q2xh
c3MsCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVp
bGQtZmV0Y2hlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWls
ZC1mZXRjaGVyLmpzCmluZGV4IDk5MzQwNzlkNmIzYWE0OWQ4N2VlNDNkYTU5NTFhN2RjMTAyYzA5
ZmMuLjJkNmY1MGE5NTczMGRjZDY2YzQ3NDU4MzFiYjhlYjdlYjdmMjNhNmIgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpz
CkBAIC0xMjEsNyArMTIxLDcgQEAgY2xhc3MgT1NCdWlsZEZldGNoZXIgewogICAgICAgICAgICAg
ICAgIHRoaXMuX2xvZ2dlci5sb2coYEdvdCAke09iamVjdC5rZXlzKChvd25lZENvbW1pdHMpKS5s
ZW5ndGh9IG93bmVkIGNvbW1pdHMgZm9yICIke2NvbW1pdFsncmV2aXNpb24nXX0iYCk7CiAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeU5hbWUgaW4gb3duZWRDb21taXRzKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gb3duZWRDb21taXRzW3JlcG9z
aXRvcnlOYW1lXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhvd25lZENvbW1pdCksIFsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMob3duZWRDb21taXQpLCBbJ3JldmlzaW9u
J10pOwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQodHlwZW9mKG93bmVkQ29tbWl0WydyZXZp
c2lvbiddKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGNvbW1pdFsnb3duZWRDb21taXRzJ10gPSBvd25lZENvbW1pdHM7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwppbmRleCBhZjZhYTM2OGVmNTBiYjg3ODMxNzY3
ZjZhYjc1NjMxYzI4MWRlMGM3Li40NzczNzY2NjA2NjBiODA2ZDQxMTE5OTIwN2Y5NDI4ZGNhNDQ3
MjYwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3Rl
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKQEAg
LTMxLDE0ICszMSwxNCBAQCBjbGFzcyBOb2RlUmVtb3RlQVBJIGV4dGVuZHMgQ29tbW9uUmVtb3Rl
QVBJIHsKICAgICBjb25maWd1cmUoc2VydmVyKQogICAgIHsKICAgICAgICAgYXNzZXJ0KHNlcnZl
ci5zY2hlbWUgPT09ICdodHRwJyB8fCBzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cHMnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuaG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91
bGQgYmUgYSBzdHJpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2
ZXIuaG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91bGQgYmUgYSBzdHJpbmcnKTsKICAgICAgICAg
YXNzZXJ0KCFzZXJ2ZXIucG9ydCB8fCB0eXBlb2Yoc2VydmVyLnBvcnQpID09ICdudW1iZXInLCAn
cG9ydCBzaG91bGQgYmUgYSBudW1iZXInKTsKIAogICAgICAgICBsZXQgYXV0aCA9IG51bGw7CiAg
ICAgICAgIGlmIChzZXJ2ZXIuYXV0aCkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVv
ZihzZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5IHdp
dGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxk
IGNvbnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
eXBlb2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRh
aW4gYSBzdHJpbmcgcGFzc3dvcmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
eXBlb2Yoc2VydmVyLmF1dGgpLCAnb2JqZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEgZGljdGlvbmFy
eSB3aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBrZXlzJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnVzZXJuYW1lKSwgJ3N0cmluZycsICdh
dXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHVzZXJuYW1lJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnBhc3N3b3JkKSwgJ3N0cmluZycsICdh
dXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHBhc3N3b3JkJyk7CiAgICAgICAgICAgICBhdXRo
ID0gewogICAgICAgICAgICAgICAgIHVzZXJuYW1lOiBzZXJ2ZXIuYXV0aC51c2VybmFtZSwKICAg
ICAgICAgICAgICAgICBwYXNzd29yZDogc2VydmVyLmF1dGgucGFzc3dvcmQsCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCA2YTExZGJjNjdm
ZjYzNTYyMmEzOGU3NzE4OTRlOTI4NWEzNzU3NzA3Li45NGZjNzNkNzkxNTIyNTRiY2ZiMmU4Zjc1
Y2E0ZmM5Y2JiMzA3MDYxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy92My1tb2RlbHMuanMKQEAgLTQxLDUgKzQxLDYgQEAgaW1wb3J0RnJvbVYzKCdpbnN0cnVtZW50
YXRpb24uanMnLCAnSW5zdHJ1bWVudGF0aW9uJyk7CiBpbXBvcnRGcm9tVjMoJ2xhemlseS1ldmFs
dWF0ZWQtZnVuY3Rpb24uanMnLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsKIGltcG9ydEZy
b21WMygnY29tbWl0LXNldC1yYW5nZS1iaXNlY3Rvci5qcycsICdDb21taXRTZXRSYW5nZUJpc2Vj
dG9yJyk7CiBpbXBvcnRGcm9tVjMoJ2FzeW5jLXRhc2suanMnLCAnQXN5bmNUYXNrJyk7CitpbXBv
cnRGcm9tVjMoJ2NvbnNvbGUtYXNzZXJ0LmpzJywgJ2NvbnNvbGVBc3NlcnQnKTsKIAogZ2xvYmFs
LlN0YXRpc3RpY3MgPSByZXF1aXJlKCcuLi8uLi9wdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMn
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422440</attachid>
            <date>2021-03-05 15:32:39 -0800</date>
            <delta_ts>2021-03-05 17:49:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305153237.patch</filename>
            <type>text/plain</type>
            <size>913417</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi5mZGM3ZmI0Mjlh
MDY4OWI2NDYyMWY3YmVkNDU2ZmUzNTFkMjQ1OTI0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxODggQEAKKzIwMjEtMDMtMDUgIFpoaWZlaSBGYW5nICA8emhpZmVp
X2ZhbmdAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2VydmVyIHRlc3QgcnVuIHdpdGggbmV3
IG5vZGUgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyNDYzCisKKyAgICAgICAgQ2hhbmdlIGFzc2VydC5lcXVhbCB0byBhc3NlcnQuc3Ry
aWN0RXF1YWwgc2luY2Ugbm9kZSBkZXByZWNhdGVkIHRoaXMgQVBJCisgICAgICAgIEFkZCBhIG5l
dyBmdW5jdGlvbiBjb25zb2xlQXNzZXJ0IHRvIG1ha2Ugc3VyZSBpdCB3aWxsIHRocm93IGFuIGVy
cm9yCisgICAgICAgIE1ha2Ugc3VyZSBtb2RlbCdzIG1ldGhvZHMgd2lsbCBhbHdheXMgcmV0dXJu
IG51bGwgaW5zdGVhZCBvZiB1bmRlZmllbmQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy92My9jb25zb2xlLWFzc2VydC5qczogQWRkZWQu
CisgICAgICAgIChjb25zb2xlQXNzZXJ0KToKKyAgICAgICAgKiBwdWJsaWMvdjMvaW5kZXguaHRt
bDoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3VsdHMuanM6CisgICAg
ICAgIChBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmNvbnRhaW5zVGVzdCk6CisgICAgICAgIChB
bmFseXNpc1Jlc3VsdHMucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChBbmFseXNpc1Jlc3VsdHMu
cHJvdG90eXBlLnZpZXdGb3JNZXRyaWMpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYW5h
bHlzaXMtdGFzay5qczoKKyAgICAgICAgKEFuYWx5c2lzVGFzayk6CisgICAgICAgIChBbmFseXNp
c1Rhc2sucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChBbmFseXNpc1Rhc2su
cHJvdG90eXBlLmFzc29jaWF0ZUJ1Zyk6CisgICAgICAgIChBbmFseXNpc1Rhc2sucHJvdG90eXBl
LmRpc3NvY2lhdGVCdWcpOgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5hc3NvY2lh
dGVDb21taXQpOgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5kaXNzb2NpYXRlQ29t
bWl0KToKKyAgICAgICAgKEFuYWx5c2lzVGFzay5hc3luYyBjcmVhdGUpOgorICAgICAgICAqIHB1
YmxpYy92My9tb2RlbHMvYnVnLmpzOgorICAgICAgICAoQnVnKToKKyAgICAgICAgKEJ1Zy5lbnN1
cmVTaW5nbGV0b24pOgorICAgICAgICAoQnVnLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczoKKyAgICAgICAgKEJ1
aWxkUmVxdWVzdCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzOgorICAgICAgICAo
QnVpbGQpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qczoKKyAgICAg
ICAgKENvbW1pdExvZyk6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgIChDb21taXRMb2cuZmV0Y2hMYXRlc3RDb21taXRGb3JQbGF0Zm9ybSk6
CisgICAgICAgIChDb21taXRMb2cub3JkZXJUd29Db21taXRzKToKKyAgICAgICAgKENvbW1pdExv
Zy5vd25lZENvbW1pdERpZmZlcmVuY2VGb3JPd25lckNvbW1pdHMpOgorICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAgICAgICAgKENvbW1pdFNldC5wcm90b3R5cGUu
X3VwZGF0ZUZyb21PYmplY3QpOgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5wYXRjaEZv
clJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5yb290Rm9yUmVwb3Np
dG9yeSk6CisgICAgICAgIChDb21taXRTZXQuY29udGFpbnNNdWx0aXBsZUNvbW1pdHNGb3JSZXBv
c2l0b3J5LnNldCBjb25zdC5hbm90aGVyQ29tbWl0LnNldCBjb21taXRGb3JSZXBvc2l0b3J5KToK
KyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011bHRpcGxlQ29tbWl0c0ZvclJlcG9zaXRvcnku
c2V0IGNvbnN0KToKKyAgICAgICAgKENvbW1pdFNldC5jb250YWluc011bHRpcGxlQ29tbWl0c0Zv
clJlcG9zaXRvcnkpOgorICAgICAgICAoQ29tbWl0U2V0LmRpZmYpOgorICAgICAgICAoQ29tbWl0
U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKToKKyAgICAgICAgKENvbW1pdFNldCk6Cisg
ICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLnNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eSk6CisgICAgICAgIChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmVxdWFscyk6CisgICAgICAg
IChDdXN0b21Db21taXRTZXQucHJvdG90eXBlLmFkZEN1c3RvbVJvb3QpOgorICAgICAgICAoQ3Vz
dG9tQ29tbWl0U2V0KToKKyAgICAgICAgKEludGVybWVkaWF0ZUNvbW1pdFNldCk6CisgICAgICAg
IChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90eXBlLl9mZXRjaENvbW1pdExvZ0FuZE93bmVk
Q29tbWl0cyk6CisgICAgICAgIChJbnRlcm1lZGlhdGVDb21taXRTZXQucHJvdG90eXBlLnNldENv
bW1pdEZvclJlcG9zaXRvcnkpOgorICAgICAgICAoSW50ZXJtZWRpYXRlQ29tbWl0U2V0LnByb3Rv
dHlwZS5yZW1vdmVDb21taXRGb3JSZXBvc2l0b3J5KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL2RhdGEtbW9kZWwuanM6CisgICAgICAgIChEYXRhTW9kZWxPYmplY3QuZmluZEJ5SWQpOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0LmpzOgorICAgICAgICAo
TWVhc3VyZW1lbnRTZXQucHJvdG90eXBlLl9kaWRGZXRjaEpTT04pOgorICAgICAgICAoTWVhc3Vy
ZW1lbnRTZXQucHJvdG90eXBlLmhhc0ZldGNoZWRSYW5nZSk6CisgICAgICAgICogcHVibGljL3Yz
L21vZGVscy9tZXRyaWMuanM6CisgICAgICAgIChNZXRyaWMucHJvdG90eXBlLmFkZFBsYXRmb3Jt
KToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzOgorICAgICAgICAoUGxh
dGZvcm0ucHJvdG90eXBlLmxhc3RNb2RpZmllZCk6CisgICAgICAgICogcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzOgorICAgICAgICAoUmVwb3NpdG9yeS5wcm90b3R5cGUub3duZWRSZXBv
c2l0b3JpZXMpOgorICAgICAgICAoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKToKKyAgICAgICAgKFJlcG9zaXRvcnkpOgorICAgICAgICAqIHB1YmxpYy92My9tb2Rl
bHMvdGVzdC1ncm91cC5qczoKKyAgICAgICAgKFRlc3RHcm91cCk6CisgICAgICAgIChUZXN0R3Jv
dXAucHJvdG90eXBlLnVwZGF0ZVNpbmdsZXRvbik6CisgICAgICAgIChUZXN0R3JvdXAuX2NvbXB1
dGVSZXF1ZXN0ZWRDb21taXRTZXRzLnNldCByZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAg
KFRlc3RHcm91cC5fY29tcHV0ZVJlcXVlc3RlZENvbW1pdFNldHMuY29uc3Quc2V0IHJlcXVlc3Qp
OgorICAgICAgICAoVGVzdEdyb3VwLl9jb21wdXRlUmVxdWVzdGVkQ29tbWl0U2V0cyk6CisgICAg
ICAgIChUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2spOgorICAgICAgICAoVGVzdEdyb3VwLmNyZWF0
ZVdpdGhDdXN0b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFRlc3RHcm91cC5jcmVhdGVBbmRS
ZWZldGNoVGVzdEdyb3Vwcyk6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy90aW1lLXNlcmll
cy5qczoKKyAgICAgICAgKFRpbWVTZXJpZXMucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChU
aW1lU2VyaWVzLnByb3RvdHlwZS5wcmV2aW91c1BvaW50KToKKyAgICAgICAgKFRpbWVTZXJpZXMu
cHJvdG90eXBlLm5leHRQb2ludCk6CisgICAgICAgIChUaW1lU2VyaWVzLnByb3RvdHlwZS52aWV3
QmV0d2VlblBvaW50cyk6CisgICAgICAgIChUaW1lU2VyaWVzKToKKyAgICAgICAgKFRpbWVTZXJp
ZXNWaWV3KToKKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5maXJzdFBvaW50SW5U
aW1lUmFuZ2UpOgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLmxhc3RQb2ludElu
VGltZVJhbmdlKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzOgor
ICAgICAgICAoVHJpZ2dlcmFibGUpOgorICAgICAgICAoVHJpZ2dlcmFibGUudHJpZ2dlcmFibGVQ
bGF0Zm9ybXNGb3JUZXN0cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jt
cy10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1p
bi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgICog
c2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczoKKyAgICAgICAgKHJldHVy
bi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4p
OgorICAgICAgICAodGhlbik6CisgICAgICAgIChhc3luYyBhd2FpdCk6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAoYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQpOgorICAgICAgICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJ
LmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuKToKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzOgorICAgICAgICAocmV0
dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhl
bik6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qczoKKyAgICAgICAgKHRoZW4p
OgorICAgICAgICAoc2V0IHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGVtcHR5UmVwb3J0
LnRoZW4pOgorICAgICAgICAoYXN5bmMgaW5pdGlhbFJlcG9ydENvbW1pdHMpOgorICAgICAgICAo
YXN5bmMgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyk6CisgICAgICAgIChhc3luYyB0ZXN0
V2l0aEV4cGVjdGVkRmFpbHVyZSk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKGVtcHR5UmVwb3J0LnRoZW4pOgor
ICAgICAgICAoYXN5bmMgYXdhaXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUt
dGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHVwZGF0ZS50aGVuKToKKyAgICAg
ICAgKHRoZW4ucmVzcG9uc2UuZGIuc2VsZWN0QWxsLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4p
OgorICAgICAgICAodGhlbi5kYi5zZWxlY3RBbGwuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6
CisgICAgICAgICh0aGVuLk1hbmlmZXN0LmZldGNoLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanM6CisgICAgICAgICh0aGVuKToKKyAgICAgICAg
KGFzeW5jIGNvbnN0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUt
dGVzdHMuanM6CisgICAgICAgIChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5z
dHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6Cisg
ICAgICAgIChhc3luYyBjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAgICAoY29uc3QuY29tbWl0
U2V0Lm9mLnVwZGF0ZWRHcm91cHMuMC5yZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanM6
CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
Y3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6CisgICAgICAgIChjcmVhdGVBbmFseXNpc1Rhc2sp
OgorICAgICAgICAocmV0dXJuLmNyZWF0ZUFuYWx5c2lzVGFzay5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKHJldHVybi5hZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2suc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50
aGVuKToKKyAgICAgICAgKHRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzOgorICAgICAgICAodGhlbik6CisgICAgICAgICogc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOgorICAg
ICAgICAoYXN5bmMgY3JlYXRlQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanM6CisgICAgICAgIChUZXN0U2VydmVy
LnRlc3RDb25maWcudXBsb2FkRmlsZUxpbWl0SW5NQi4xLnRoZW4pOgorICAgICAgICAodGhlbik6
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qczoK
KyAgICAgICAgKGFzeW5jIGFzc2VydFRocm93cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jl
c291cmNlcy90ZW1wb3JhcnktZmlsZS5qczoKKyAgICAgICAgKFRlbXBvcmFyeUZpbGUubWFrZVRl
bXBvcmFyeUZpbGVPZlNpemVJbk1CKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVp
bGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgIChhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZSk6CisgICAgICAgICh0aGVuKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRo
ZW4pOgorICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5q
czoKKyAgICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90
eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5i
dWlsZFJlcXVlc3RTdGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAgICAgICAgKEJ1aWxkYm90QnVp
bGRFbnRyeSk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1
ZXN0KToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKToKKyAgICAgICAgKEJ1
aWxkYm90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6CisgICAgICAgIChCdWlsZGJvdFN5
bmNlci5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlcik6
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChC
dWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAg
ICogdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qczoKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERv
Y3VtZW50Lm5ldy5NYXJrdXBEb2N1bWVudC5wcm90b3R5cGUuX2lkRm9yQ2xvbmUpOgorICAgICAg
ICAoY29uc3QuTWFya3VwRG9jdW1lbnQubmV3Lk1hcmt1cERvY3VtZW50LnByb3RvdHlwZS5tYXJr
dXApOgorICAgICAgICAqIHRvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanM6CisgICAgICAgIChw
cm90b3R5cGUuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKToKKyAgICAgICAgKiB0b29scy9qcy9y
ZW1vdGUuanM6CisgICAgICAgIChOb2RlUmVtb3RlQVBJLnByb3RvdHlwZS5jb25maWd1cmUpOgor
ICAgICAgICAqIHRvb2xzL2pzL3YzLW1vZGVscy5qczoKKwogMjAyMS0wMi0xOCAgRGV3ZWkgWmh1
ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBidWcgdGhhdCBhIHN5bmNp
bmcgc2NyaXB0IG1heSB0cnkgdG8gcmV1c2UgYSBkZWxldGUgcm9vdC4KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29uc29sZS1hc3NlcnQuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbnNvbGUtYXNzZXJ0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyZGUzMTk4MjI0NmFhNmFiM2M4OWU0N2Q0ZWJjMDYwNGVlMjVlYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbnNvbGUtYXNzZXJ0
LmpzCkBAIC0wLDAgKzEsMTEgQEAKKyd1c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gY29uc29sZUFz
c2VydCAoY29uZGl0aW9uLCBtZXNzYWdlPSJBc3NlcnRpb24gZmFpbGVkIikgeworICAgIC8vTWFr
ZSBzdXJlIHRoYXQgYnJvd3NlciBzaWRlIHdlIGRvIHByaW50IG91dCB0aGUgZXJyb3IKKyAgICBj
b25zb2xlLmFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpOworICAgIGlmICghY29uZGl0aW9uKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2lmICh0eXBlb2YgbW9kdWxl
ICE9ICd1bmRlZmluZWQnKQorICAgIG1vZHVsZS5leHBvcnRzLmNvbnNvbGVBc3NlcnQgPSBjb25z
b2xlQXNzZXJ0OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbAppbmRleCBmNTMxMDAzZWQ1ZTY3MzUwOWU0
MzdlNDgxMWJiMDlmOGFjMzM3MmQzLi5iNzdiMzVhYTljNDYzYmNiZThkMDE2OTU3OWNiZDZkYjQ1
NTgwMDQ0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2lu
ZGV4Lmh0bWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5o
dG1sCkBAIC00Nyw2ICs0Nyw3IEBAIFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVl
ZCB1cCB0aGUgbG9hZCB0aW1lIGZvciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2NyaXB0IHNy
Yz0iYXN5bmMtdGFzay5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJsYXppbHkt
ZXZhbHVhdGVkLWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9ImNv
bW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iY29uc29sZS1hc3NlcnQuanMiPjwvc2NyaXB0PgogCiAgICAgICAgIDxzY3JpcHQgc3JjPSJt
b2RlbHMvdGltZS1zZXJpZXMuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9k
ZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXJlc3Vs
dHMuanMKaW5kZXggMjU5NTUzY2NiYjQxZTFlMWQ1ZTg4ZjNmNWFlMDBhM2IwZWE5NGFiYS4uZWU5
OTM5MDlhOGJiMzIzOGY4NTk2OTFmMDZkOTlkNmUxNWM3MGU4YyAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtcmVzdWx0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy1y
ZXN1bHRzLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiAKICAg
ICBjb250YWluc1Rlc3QodGVzdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRlc3Qg
aW5zdGFuY2VvZiBUZXN0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0ZXN0IGluc3RhbmNlb2Yg
VGVzdCk7CiAgICAgICAgIGZvciAoY29uc3QgbWV0cmljIG9mIHRlc3QubWV0cmljcygpKSB7CiAg
ICAgICAgICAgICBpZiAobWV0cmljLmlkKCkgaW4gdGhpcy5fbWV0cmljVG9CdWlsZE1hcCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU0LDE0ICs1NCwxNCBAQCBjbGFzcyBBbmFs
eXNpc1Jlc3VsdHMgewogCiAgICAgYWRkKG1lYXN1cmVtZW50KQogICAgIHsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQobWVhc3VyZW1lbnQuY29uZmlnVHlwZSA9PSAnY3VycmVudCcpOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KG1lYXN1cmVtZW50LmNvbmZpZ1R5cGUgPT0gJ2N1cnJlbnQnKTsKICAg
ICAgICAgY29uc3QgbWV0cmljSWQgPSBtZWFzdXJlbWVudC5tZXRyaWNJZDsKICAgICAgICAgaWYg
KCEobWV0cmljSWQgaW4gdGhpcy5fbWV0cmljVG9CdWlsZE1hcCkpIHsKICAgICAgICAgICAgIHRo
aXMuX21ldHJpY1RvQnVpbGRNYXBbbWV0cmljSWRdID0ge307CiAgICAgICAgICAgICB0aGlzLl9t
ZXRyaWNJZHMgPSBPYmplY3Qua2V5cyh0aGlzLl9tZXRyaWNUb0J1aWxkTWFwKTsKICAgICAgICAg
fQogICAgICAgICBjb25zdCBtYXAgPSB0aGlzLl9tZXRyaWNUb0J1aWxkTWFwW21ldHJpY0lkXTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoIW1hcFttZWFzdXJlbWVudC5idWlsZElkXSk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoIW1hcFttZWFzdXJlbWVudC5idWlsZElkXSk7CiAgICAgICAgIG1h
cFttZWFzdXJlbWVudC5idWlsZElkXSA9IG1lYXN1cmVtZW50OwogICAgIH0KIApAQCAtNzcsNyAr
NzcsNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHMgewogCiAgICAgdmlld0Zvck1ldHJpYyhtZXRy
aWMpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBNZXRy
aWMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KG1ldHJpYyBpbnN0YW5jZW9mIE1ldHJpYyk7CiAg
ICAgICAgIHJldHVybiBuZXcgQW5hbHlzaXNSZXN1bHRzVmlldyh0aGlzLCBtZXRyaWMpOwogICAg
IH0KIApAQCAtMTAzLDggKzEwMyw4IEBAIGNsYXNzIEFuYWx5c2lzUmVzdWx0cyB7CiBjbGFzcyBB
bmFseXNpc1Jlc3VsdHNWaWV3IHsKICAgICBjb25zdHJ1Y3RvcihhbmFseXNpc1Jlc3VsdHMsIG1l
dHJpYykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuYWx5c2lzUmVzdWx0cyBpbnN0
YW5jZW9mIEFuYWx5c2lzUmVzdWx0cyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1ldHJpYyBp
bnN0YW5jZW9mIE1ldHJpYyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYW5hbHlzaXNSZXN1bHRz
IGluc3RhbmNlb2YgQW5hbHlzaXNSZXN1bHRzKTsKKyAgICAgICAgY29uc29sZUFzc2VydChtZXRy
aWMgaW5zdGFuY2VvZiBNZXRyaWMpOwogICAgICAgICB0aGlzLl9yZXN1bHRzID0gYW5hbHlzaXNS
ZXN1bHRzOwogICAgICAgICB0aGlzLl9tZXRyaWMgPSBtZXRyaWM7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFz
ay5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lz
LXRhc2suanMKaW5kZXggMTc3NmE4MTdiYzMxOTk2OTI5NzJhNDBhYTRlZDY4YzFhOTVjZGVlZS4u
YzZlNzllZjhlZTM3MjViNWUyMGVlMTBiODdiNzZiNDZjMTZiMWU1MCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10
YXNrLmpzCkBAIC03LDEwICs3LDEwIEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVs
ZWRPYmplY3QgewogICAgICAgICB0aGlzLl9hdXRob3IgPSBvYmplY3QuYXV0aG9yOwogICAgICAg
ICB0aGlzLl9jcmVhdGVkQXQgPSBvYmplY3QuY3JlYXRlZEF0OwogCi0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxh
dGZvcm0pOworICAgICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QucGxhdGZvcm0gfHwgb2JqZWN0
LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9
IG9iamVjdC5wbGF0Zm9ybTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0Lm1ldHJp
YyB8fCBvYmplY3QubWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsKKyAgICAgICAgY29uc29sZUFz
c2VydCghb2JqZWN0Lm1ldHJpYyB8fCBvYmplY3QubWV0cmljIGluc3RhbmNlb2YgTWV0cmljKTsK
ICAgICAgICAgdGhpcy5fbWV0cmljID0gb2JqZWN0Lm1ldHJpYzsKIAogICAgICAgICB0aGlzLl9z
dGFydE1lYXN1cmVtZW50SWQgPSBvYmplY3Quc3RhcnRSdW47CkBAIC00MCwxNCArNDAsMTQgQEAg
Y2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgewogICAgICAg
ICBzdXBlci51cGRhdGVTaW5nbGV0b24ob2JqZWN0KTsKIAotICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl9hdXRob3IgPT0gb2JqZWN0LmF1dGhvcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCt0aGlzLl9jcmVhdGVkQXQgPT0gK29iamVjdC5jcmVhdGVkQXQpOwotICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwotICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9tZXRyaWMgPT0gb2JqZWN0Lm1ldHJpYyk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRoaXMuX3N0YXJ0TWVhc3VyZW1lbnRJZCA9PSBvYmplY3Quc3RhcnRSdW4pOwot
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zdGFydFRpbWUgPT0gb2JqZWN0LnN0YXJ0UnVu
VGltZSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuZE1lYXN1cmVtZW50SWQgPT0g
b2JqZWN0LmVuZFJ1bik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuZFRpbWUgPT0g
b2JqZWN0LmVuZFJ1blRpbWUpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2F1dGhvciA9
PSBvYmplY3QuYXV0aG9yKTsKKyAgICAgICAgY29uc29sZUFzc2VydCgrdGhpcy5fY3JlYXRlZEF0
ID09ICtvYmplY3QuY3JlYXRlZEF0KTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9wbGF0
Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX21l
dHJpYyA9PSBvYmplY3QubWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9zdGFy
dE1lYXN1cmVtZW50SWQgPT0gb2JqZWN0LnN0YXJ0UnVuKTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCh0aGlzLl9zdGFydFRpbWUgPT0gb2JqZWN0LnN0YXJ0UnVuVGltZSk7CisgICAgICAgIGNvbnNv
bGVBc3NlcnQodGhpcy5fZW5kTWVhc3VyZW1lbnRJZCA9PSBvYmplY3QuZW5kUnVuKTsKKyAgICAg
ICAgY29uc29sZUFzc2VydCh0aGlzLl9lbmRUaW1lID09IG9iamVjdC5lbmRSdW5UaW1lKTsKIAog
ICAgICAgICB0aGlzLl9jYXRlZ29yeSA9IG9iamVjdC5jYXRlZ29yeTsKICAgICAgICAgdGhpcy5f
Y2hhbmdlVHlwZSA9IG9iamVjdC5yZXN1bHQ7IC8vIENhbid0IGNoYW5nZSBkdWUgdG8gdjIgY29t
cGF0aWJpbGl0eS4KQEAgLTkzLDggKzkzLDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAKICAgICBhc3NvY2lhdGVCdWcodHJhY2tlciwgYnVnTnVtYmVyKQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNr
ZXIpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YoYnVnTnVtYmVyKSA9PSAnbnVtYmVy
Jyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodHJhY2tlciBpbnN0YW5jZW9mIEJ1Z1RyYWNrZXIp
OworICAgICAgICBjb25zb2xlQXNzZXJ0KHR5cGVvZihidWdOdW1iZXIpID09ICdudW1iZXInKTsK
ICAgICAgICAgdmFyIGlkID0gdGhpcy5pZCgpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnYXNzb2NpYXRlLWJ1ZycsIHsKICAgICAgICAgICAgIHRhc2s6IGlkLApA
QCAtMTA4LDggKzEwOCw4IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmpl
Y3QgewogCiAgICAgZGlzc29jaWF0ZUJ1ZyhidWcpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydChidWcgaW5zdGFuY2VvZiBCdWcpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmJ1
Z3MoKS5pbmNsdWRlcyhidWcpKTsKKyAgICAgICAgY29uc29sZUFzc2VydChidWcgaW5zdGFuY2Vv
ZiBCdWcpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuYnVncygpLmluY2x1ZGVzKGJ1Zykp
OwogICAgICAgICB2YXIgaWQgPSB0aGlzLmlkKCk7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdhc3NvY2lhdGUtYnVnJywgewogICAgICAgICAgICAgdGFzazogaWQs
CkBAIC0xMjQsOCArMTI0LDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9i
amVjdCB7CiAKICAgICBhc3NvY2lhdGVDb21taXQoa2luZCwgcmVwb3NpdG9yeSwgcmV2aXNpb24p
CiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChraW5kID09ICdjYXVzZScgfHwga2luZCA9
PSAnZml4Jyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBS
ZXBvc2l0b3J5KTsKKyAgICAgICAgY29uc29sZUFzc2VydChraW5kID09ICdjYXVzZScgfHwga2lu
ZCA9PSAnZml4Jyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9m
IFJlcG9zaXRvcnkpOwogICAgICAgICBpZiAocmV2aXNpb24uc3RhcnRzV2l0aCgncicpKQogICAg
ICAgICAgICAgcmV2aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMSk7CiAgICAgICAgIGNvbnN0
IGlkID0gdGhpcy5pZCgpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBl
eHRlbmRzIExhYmVsZWRPYmplY3QgewogCiAgICAgZGlzc29jaWF0ZUNvbW1pdChjb21taXQpCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cp
OworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7CiAg
ICAgICAgIHZhciBpZCA9IHRoaXMuaWQoKTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2Fzc29jaWF0ZS1jb21taXQnLCB7CiAgICAgICAgICAgICB0YXNrOiBpZCwK
QEAgLTMyOCw3ICszMjgsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2Jq
ZWN0IHsKICAgICB7CiAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7bmFtZSwgc3RhcnRSdW46
IHN0YXJ0UG9pbnQuaWQsIGVuZFJ1bjogZW5kUG9pbnQuaWR9OwogICAgICAgICBpZiAodGVzdEdy
b3VwTmFtZSkgewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwZXRpdGlvbkNvdW50KTsK
KyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwZXRpdGlvbkNvdW50KTsKICAgICAgICAgICAg
IHBhcmFtZXRlcnNbJ3JldmlzaW9uU2V0cyddID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21D
b21taXRTZXRzKFtzdGFydFBvaW50LmNvbW1pdFNldCgpLCBlbmRQb2ludC5jb21taXRTZXQoKV0p
OwogICAgICAgICAgICAgcGFyYW1ldGVyc1sncmVwZXRpdGlvbkNvdW50J10gPSByZXBldGl0aW9u
Q291bnQ7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzWyd0ZXN0R3JvdXBOYW1lJ10gPSB0ZXN0R3Jv
dXBOYW1lOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvYnVnLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
YnVnLmpzCmluZGV4IGMxNTg4NjcxOTJhNmQwZjc3ZGU5M2FmOGE3OGM5OTgyZTA1MWYxNjUuLmY3
OTAwMDljZTUzNzM3MmY4NzRhNWM0MTM1ODA5MDM4NzU1ODMyYTEgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1Zy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWcuanMKQEAgLTQsMTQgKzQsMTQg
QEAgY2xhc3MgQnVnIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAgICAgICAgIHN1
cGVyKGlkLCBvYmplY3QpOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdC5idWdUcmFj
a2VyIGluc3RhbmNlb2YgQnVnVHJhY2tlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQob2JqZWN0
LmJ1Z1RyYWNrZXIgaW5zdGFuY2VvZiBCdWdUcmFja2VyKTsKICAgICAgICAgdGhpcy5fYnVnVHJh
Y2tlciA9IG9iamVjdC5idWdUcmFja2VyOwogICAgICAgICB0aGlzLl9idWdOdW1iZXIgPSBvYmpl
Y3QubnVtYmVyOwogICAgIH0KIAogICAgIHN0YXRpYyBlbnN1cmVTaW5nbGV0b24ob2JqZWN0KQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQob2JqZWN0LmJ1Z1RyYWNrZXIgaW5zdGFuY2Vv
ZiBCdWdUcmFja2VyKTsKKyAgICAgICAgY29uc29sZUFzc2VydChvYmplY3QuYnVnVHJhY2tlciBp
bnN0YW5jZW9mIEJ1Z1RyYWNrZXIpOwogICAgICAgICB2YXIgaWQgPSBvYmplY3QuYnVnVHJhY2tl
ci5pZCgpICsgJy0nICsgb2JqZWN0Lm51bWJlcjsKICAgICAgICAgcmV0dXJuIHN1cGVyLmVuc3Vy
ZVNpbmdsZXRvbihpZCwgb2JqZWN0KTsKICAgICB9CkBAIC0xOSw4ICsxOSw4IEBAIGNsYXNzIEJ1
ZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgdXBkYXRlU2luZ2xldG9uKG9iamVjdCkK
ICAgICB7CiAgICAgICAgIHN1cGVyLnVwZGF0ZVNpbmdsZXRvbihvYmplY3QpOwotICAgICAgICBj
b25zb2xlLmFzc2VydCh0aGlzLl9idWdUcmFja2VyID09IG9iamVjdC5idWdUcmFja2VyKTsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fYnVnTnVtYmVyID09IG9iamVjdC5udW1iZXIpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2J1Z1RyYWNrZXIgPT0gb2JqZWN0LmJ1Z1RyYWNr
ZXIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRoaXMuX2J1Z051bWJlciA9PSBvYmplY3QubnVt
YmVyKTsKICAgICB9CiAKICAgICBidWdUcmFja2VyKCkgeyByZXR1cm4gdGhpcy5fYnVnVHJhY2tl
cjsgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggZjA5NWUwZDdhYmU4NmEwMjY1MjE1MTYxMjc4
NGQyMWQxMDNhNTYxNi4uOTUyYTM3ZDU2YmFhNDNlNDI1ZTc5NzRlODA4NzMwOTFhOTJlZjQ1OCAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVp
bGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC02LDIwICs2LDIwIEBAIGNsYXNzIEJ1aWxkUmVxdWVz
dCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgewogICAgICAgICBzdXBlcihpZCwgb2Jq
ZWN0KTsKICAgICAgICAgdGhpcy5fdHJpZ2dlcmFibGUgPSBvYmplY3QudHJpZ2dlcmFibGU7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmplY3QucmVwb3NpdG9yeUdyb3VwIHx8IG9iamVjdC5y
ZXBvc2l0b3J5R3JvdXAgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCk7Cisg
ICAgICAgIGNvbnNvbGVBc3NlcnQoIW9iamVjdC5yZXBvc2l0b3J5R3JvdXAgfHwgb2JqZWN0LnJl
cG9zaXRvcnlHcm91cCBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwKTsKICAg
ICAgICAgdGhpcy5fYW5hbHlzaXNUYXNrSWQgPSBvYmplY3QudGFzazsKICAgICAgICAgdGhpcy5f
dGVzdEdyb3VwSWQgPSBvYmplY3QudGVzdEdyb3VwSWQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFvYmplY3QudGVzdEdyb3VwIHx8IG9iamVjdC50ZXN0R3JvdXAgaW5zdGFuY2VvZiBUZXN0R3Jv
dXApOworICAgICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QudGVzdEdyb3VwIHx8IG9iamVjdC50
ZXN0R3JvdXAgaW5zdGFuY2VvZiBUZXN0R3JvdXApOwogICAgICAgICB0aGlzLl90ZXN0R3JvdXAg
PSBvYmplY3QudGVzdEdyb3VwOwogICAgICAgICBpZiAodGhpcy5fdGVzdEdyb3VwKQogICAgICAg
ICAgICAgdGhpcy5fdGVzdEdyb3VwLmFkZEJ1aWxkUmVxdWVzdCh0aGlzKTsKICAgICAgICAgdGhp
cy5fcmVwb3NpdG9yeUdyb3VwID0gb2JqZWN0LnJlcG9zaXRvcnlHcm91cDsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQob2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAg
ICAgICAgdGhpcy5fcGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFvYmplY3QudGVzdCB8fCBvYmplY3QudGVzdCBpbnN0YW5jZW9mIFRlc3QpOworICAg
ICAgICBjb25zb2xlQXNzZXJ0KCFvYmplY3QudGVzdCB8fCBvYmplY3QudGVzdCBpbnN0YW5jZW9m
IFRlc3QpOwogICAgICAgICB0aGlzLl90ZXN0ID0gb2JqZWN0LnRlc3Q7CiAgICAgICAgIHRoaXMu
X29yZGVyID0gb2JqZWN0Lm9yZGVyOwotICAgICAgICBjb25zb2xlLmFzc2VydChvYmplY3QuY29t
bWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2VydChvYmpl
Y3QuY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgdGhpcy5fY29tbWl0
U2V0ID0gb2JqZWN0LmNvbW1pdFNldDsKICAgICAgICAgdGhpcy5fc3RhdHVzID0gb2JqZWN0LnN0
YXR1czsKICAgICAgICAgdGhpcy5fc3RhdHVzVXJsID0gb2JqZWN0LnVybDsKQEAgLTMxLDExICsz
MSwxMSBAQCBjbGFzcyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAg
ICAgdXBkYXRlU2luZ2xldG9uKG9iamVjdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHRoaXMuX29yZGVyID09IG9iamVjdC5vcmRlcik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX2NvbW1pdFNldCA9PSBvYmplY3QuY29tbWl0U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2Vy
dCh0aGlzLl9vcmRlciA9PSBvYmplY3Qub3JkZXIpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHRo
aXMuX2NvbW1pdFNldCA9PSBvYmplY3QuY29tbWl0U2V0KTsKIAogICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSBvYmplY3QudGVzdEdyb3VwOwotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5f
dGVzdEdyb3VwIHx8IHRoaXMuX3Rlc3RHcm91cCA9PSB0ZXN0R3JvdXApOworICAgICAgICBjb25z
b2xlQXNzZXJ0KCF0aGlzLl90ZXN0R3JvdXAgfHwgdGhpcy5fdGVzdEdyb3VwID09IHRlc3RHcm91
cCk7CiAgICAgICAgIGlmICghdGhpcy5fdGVzdEdyb3VwICYmIHRlc3RHcm91cCkKICAgICAgICAg
ICAgIHRlc3RHcm91cC5hZGRCdWlsZFJlcXVlc3QodGhpcyk7CiAKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkZXIuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZGVyLmpzCmluZGV4IGIzMjA0
MGY0YjgwYTI0YWJiY2FhZDlmODAzZDMzODk0YTJmMmY1MDAuLjIyZWM3Mjc5NmIzMjEzZGUyMTQ4
M2Y1N2YyZDllY2I1Y2NjMDM5YTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGRlci5qcwpAQCAtMTgsNyArMTgsNyBAQCBjbGFzcyBC
dWlsZGVyIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiBjbGFzcyBCdWlsZCBleHRlbmRzIERhdGFN
b2RlbE9iamVjdCB7CiAgICAgY29uc3RydWN0b3IoaWQsIGJ1aWxkZXIsIGJ1aWxkVGFnLCBidWls
ZFRpbWUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChidWlsZGVyIGluc3RhbmNlb2Yg
QnVpbGRlcik7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYnVpbGRlciBpbnN0YW5jZW9mIEJ1aWxk
ZXIpOwogICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2J1aWxkZXIgPSBidWlsZGVy
OwogICAgICAgICB0aGlzLl9idWlsZFRhZyA9IGJ1aWxkVGFnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKaW5kZXgg
ZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAwYi4uMDZlNmFkZjc1ZWI4ZDE2
YmVhMTRkZTYwZjcyNTA1YTQ4OWU2OWJmMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCkBAIC0zLDExICszLDEx
IEBACiBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIGNvbnN0
cnVjdG9yKGlkLCByYXdEYXRhKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocGFyc2VJ
bnQoaWQpID09IGlkKTsKKyAgICAgICAgY29uc29sZUFzc2VydChwYXJzZUludChpZCkgPT0gaWQp
OwogICAgICAgICBzdXBlcihpZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkID09IHJhd0Rh
dGEuaWQpCisgICAgICAgIGNvbnNvbGVBc3NlcnQoaWQgPT0gcmF3RGF0YS5pZCkKICAgICAgICAg
dGhpcy5fcmVwb3NpdG9yeSA9IHJhd0RhdGEucmVwb3NpdG9yeTsKLSAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KHRoaXMuX3JlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKICAg
ICAgICAgdGhpcy5fcmF3RGF0YSA9IHJhd0RhdGE7CiAgICAgICAgIHRoaXMuX293bmVkQ29tbWl0
cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX293bmVyQ29tbWl0ID0gbnVsbDsKQEAgLTE4LDggKzE4
LDggQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB7CiAg
ICAgICAgIHN1cGVyLnVwZGF0ZVNpbmdsZXRvbihyYXdEYXRhKTsKIAotICAgICAgICBjb25zb2xl
LmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1lJ10pOwotICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09IHJhd0RhdGFb
J3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlQXNzZXJ0KCt0aGlzLl9yYXdEYXRhWyd0aW1l
J10gPT0gK3Jhd0RhdGFbJ3RpbWUnXSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fcmF3
RGF0YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKIAogICAgICAgICBpZiAo
cmF3RGF0YS5hdXRob3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3RGF0YS5hdXRob3JOYW1l
ID0gcmF3RGF0YS5hdXRob3JOYW1lOwpAQCAtODMsOCArODMsOCBAQCBjbGFzcyBDb21taXRMb2cg
ZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGZldGNoTGF0ZXN0Q29tbWl0
Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwgcGxhdGZvcm0pCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydChyZXBvc2l0b3J5IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBjb25zb2xl
QXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKKyAgICAgICAgY29uc29s
ZUFzc2VydChwbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAgICAgICAgcmV0dXJuIHRo
aXMuY2FjaGVkRmV0Y2goYC9hcGkvY29tbWl0cy8ke3JlcG9zaXRvcnkuaWQoKX0vbGF0ZXN0YCwg
e3BsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSkudGhlbigoZGF0YSkgPT4gewogICAgICAgICAgICAg
Y29uc3QgY29tbWl0cyA9IGRhdGFbJ2NvbW1pdHMnXTsKICAgICAgICAgICAgIGlmICghY29tbWl0
cyB8fCAhY29tbWl0cy5sZW5ndGgpCkBAIC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgQ29tbWl0TG9n
IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBvcmRlclR3b0NvbW1pdHMo
Zmlyc3RDb21taXQsIHNlY29uZENvbW1pdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KENvbW1pdExvZy5oYXNPcmRlcmluZyhmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0KSk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQoQ29tbWl0TG9nLmhhc09yZGVyaW5nKGZpcnN0Q29tbWl0LCBzZWNv
bmRDb21taXQpKTsKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTbWFsbGVyID0gZmlyc3RDb21t
aXQuaGFzQ29tbWl0VGltZSgpICYmIHNlY29uZENvbW1pdC5oYXNDb21taXRUaW1lKCkgPwogICAg
ICAgICAgICAgZmlyc3RDb21taXQudGltZSgpIDwgc2Vjb25kQ29tbWl0LnRpbWUoKSA6IGZpcnN0
Q29tbWl0Lm9yZGVyKCkgPCBzZWNvbmRDb21taXQub3JkZXIoKTsKICAgICAgICAgcmV0dXJuIGZp
cnN0Q29tbWl0U21hbGxlciA/IFtmaXJzdENvbW1pdCwgc2Vjb25kQ29tbWl0XSA6IFtzZWNvbmRD
b21taXQsIGZpcnN0Q29tbWl0XTsKQEAgLTE0MiwxMiArMTQyLDEyIEBAIGNsYXNzIENvbW1pdExv
ZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICBzdGF0aWMgb3duZWRDb21taXREaWZm
ZXJlbmNlRm9yT3duZXJDb21taXRzKC4uLmNvbW1pdHMpCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydChjb21taXRzLmxlbmd0aCA+PSAyKTsKKyAgICAgICAgY29uc29sZUFzc2VydChjb21t
aXRzLmxlbmd0aCA+PSAyKTsKIAogICAgICAgICBjb25zdCBvd25lZENvbW1pdFJlcG9zaXRvcmll
cyA9IG5ldyBTZXQ7CiAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0TWFwTGlzdCA9IGNvbW1pdHMu
bWFwKChjb21taXQpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCk7Ci0g
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXQuX293bmVkQ29tbWl0cyk7CisgICAgICAg
ICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KGNv
bW1pdC5fb3duZWRDb21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0TWFwID0g
Y29tbWl0Ll9idWlsZE93bmVkQ29tbWl0TWFwKCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IHJl
cG9zaXRvcnkgb2Ygb3duZWRDb21taXRNYXAua2V5cygpKQogICAgICAgICAgICAgICAgIG93bmVk
Q29tbWl0UmVwb3NpdG9yaWVzLmFkZChyZXBvc2l0b3J5KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCmluZGV4IDA0
MjI5ZTFlMDBiMjlkNzgzNTY5ODlmNDk5ZjA1ODk1ZWQzMmRkMzYuLjc3OGUzZjQ2OGQ1NzQxMjlm
Nzc4YzMwNDhmMjhiN2QzOGZlYTVkMTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcwpAQCAtMzksMTAgKzM5LDEw
IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIGNv
bnN0IHJvb3RGaWxlcyA9IG5ldyBTZXQ7CiAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBvYmpl
Y3QucmV2aXNpb25JdGVtcykgewogICAgICAgICAgICAgY29uc3QgY29tbWl0ID0gaXRlbS5jb21t
aXQ7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXQgaW5zdGFuY2VvZiBDb21taXRM
b2cpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWl0ZW0ucGF0Y2ggfHwgaXRlbS5wYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCgh
aXRlbS5yb290RmlsZSB8fCBpdGVtLnJvb3RGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFpdGVtLmNvbW1pdE93bmVyIHx8IGl0ZW0uY29t
bWl0T3duZXIgaW5zdGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICAgICAgY29uc29sZUFzc2Vy
dChjb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cpOworICAgICAgICAgICAgY29uc29sZUFzc2Vy
dCghaXRlbS5wYXRjaCB8fCBpdGVtLnBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAg
ICAgICAgICAgIGNvbnNvbGVBc3NlcnQoIWl0ZW0ucm9vdEZpbGUgfHwgaXRlbS5yb290RmlsZSBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KCFpdGVt
LmNvbW1pdE93bmVyIHx8IGl0ZW0uY29tbWl0T3duZXIgaW5zdGFuY2VvZiBDb21taXRMb2cpOwog
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IGNvbW1pdC5yZXBvc2l0b3J5KCk7CiAgICAg
ICAgICAgICB0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXAuc2V0KHJlcG9zaXRvcnksIGNvbW1p
dCk7CiAgICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5VG9QYXRjaE1hcC5zZXQocmVwb3NpdG9y
eSwgaXRlbS5wYXRjaCk7CkBAIC05Miw4ICs5Miw4IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRz
IERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBjb21taXQgPyBjb21taXQucmV2aXNp
b24oKSA6IG51bGw7CiAgICAgfQogCi0gICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkp
IHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KTsgfQot
ICAgIHJvb3RGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRv
cnlUb1Jvb3RNYXAuZ2V0KHJlcG9zaXRvcnkpOyB9CisgICAgcGF0Y2hGb3JSZXBvc2l0b3J5KHJl
cG9zaXRvcnkpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmhhcyhyZXBvc2l0
b3J5KSA/IHRoaXMuX3JlcG9zaXRvcnlUb1BhdGNoTWFwLmdldChyZXBvc2l0b3J5KSA6IG51bGw7
IH0KKyAgICByb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBv
c2l0b3J5VG9QYXRjaE1hcC5oYXMocmVwb3NpdG9yeSkgPyB0aGlzLl9yZXBvc2l0b3J5VG9Sb290
TWFwLmdldChyZXBvc2l0b3J5KSA6IG51bGw7IH0KICAgICByZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeShyZXBvc2l0b3J5KSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5UmVxdWlyZXNCdWlsZE1h
cC5nZXQocmVwb3NpdG9yeSkgfHwgZmFsc2U7IH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCByZXR1cm4gYSBEYXRlIG9iamVjdC4KQEAgLTE1Nyw3ICsxNTcsNyBAQCBjbGFzcyBDb21taXRT
ZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgc3RhdGljIGNvbnRhaW5zTXVsdGlw
bGVDb21taXRzRm9yUmVwb3NpdG9yeShjb21taXRTZXRzLCByZXBvc2l0b3J5KQogICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsK
ICAgICAgICAgaWYgKGNvbW1pdFNldHMubGVuZ3RoIDwgMikKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgY29uc3QgZmlyc3RDb21taXQgPSBjb21taXRTZXRzWzBdLmNvbW1pdEZv
clJlcG9zaXRvcnkocmVwb3NpdG9yeSk7CkBAIC0xODcsNyArMTg3LDcgQEAgY2xhc3MgQ29tbWl0
U2V0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBjcmVhdGVOYW1lV2l0
aG91dENvbGxpc2lvbihuYW1lLCBleGlzdGluZ05hbWVTZXQpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydChleGlzdGluZ05hbWVTZXQgaW5zdGFuY2VvZiBTZXQpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KGV4aXN0aW5nTmFtZVNldCBpbnN0YW5jZW9mIFNldCk7CiAgICAgICAgIGlmICgh
ZXhpc3RpbmdOYW1lU2V0LmhhcyhuYW1lKSkKICAgICAgICAgICAgIHJldHVybiBuYW1lOwogICAg
ICAgICBjb25zdCBuYW1lV2l0aE51bWJlck1hdGNoID0gbmFtZS5tYXRjaCgvKC4rPylccypcKFxz
KihcZCspXHMqXClccyokLyk7CkBAIC0yMDgsNyArMjA4LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4
dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRpYyBkaWZmKGZpcnN0Q29tbWl0U2V0
LCBzZWNvbmRDb21taXRTZXQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghZmlyc3RD
b21taXRTZXQuZXF1YWxzKHNlY29uZENvbW1pdFNldCkpOworICAgICAgICBjb25zb2xlQXNzZXJ0
KCFmaXJzdENvbW1pdFNldC5lcXVhbHMoc2Vjb25kQ29tbWl0U2V0KSk7CiAgICAgICAgIGNvbnN0
IGFsbFJlcG9zaXRvcmllcyA9IG5ldyBTZXQoWy4uLmZpcnN0Q29tbWl0U2V0LnJlcG9zaXRvcmll
cygpLCAuLi5zZWNvbmRDb21taXRTZXQucmVwb3NpdG9yaWVzKCldKTsKICAgICAgICAgY29uc3Qg
c29ydGVkUmVwb3NpdG9yaWVzID0gUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKFsuLi5hbGxSZXBvc2l0b3JpZXNdKTsKICAgICAgICAgY29uc3QgbmFtZVBhcnRzID0g
W107CkBAIC0yNjQsNyArMjY0LDcgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0YU1vZGVs
T2JqZWN0IHsKICAgICBzdGF0aWMgcmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0
cykKICAgICB7CiAgICAgICAgIHJldHVybiBjb21taXRTZXRzLm1hcCgoY29tbWl0U2V0KSA9PiB7
Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDdXN0b21D
b21taXRTZXQgfHwgY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAgICAg
IGNvbnNvbGVBc3NlcnQoY29tbWl0U2V0IGluc3RhbmNlb2YgQ3VzdG9tQ29tbWl0U2V0IHx8IGNv
bW1pdFNldCBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lv
blNldCA9IHt9OwogICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiBjb21taXRTZXQu
cmVwb3NpdG9yaWVzKCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBwYXRjaEZpbGUgPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpOwpAQCAtMzI5LDE0ICszMjksMTQg
QEAgY2xhc3MgQ3VzdG9tQ29tbWl0U2V0IHsKIAogICAgIHNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eShyZXBvc2l0b3J5LCByZXZpc2lvbiwgcGF0Y2ggPSBudWxsLCBvd25lclJldmlzaW9uID0gbnVs
bCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBS
ZXBvc2l0b3J5KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhdGNoIHx8IHBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5IGlu
c3RhbmNlb2YgUmVwb3NpdG9yeSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoIXBhdGNoIHx8IHBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKICAgICAgICAgdGhpcy5fcmV2aXNpb25MaXN0
QnlSZXBvc2l0b3J5LnNldChyZXBvc2l0b3J5LCB7cmV2aXNpb24sIHBhdGNoLCBvd25lclJldmlz
aW9ufSk7CiAgICAgfQogCiAgICAgZXF1YWxzKG90aGVyKQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQob3RoZXIgaW5zdGFuY2VvZiBDdXN0b21Db21taXRTZXQpOworICAgICAgICBjb25z
b2xlQXNzZXJ0KG90aGVyIGluc3RhbmNlb2YgQ3VzdG9tQ29tbWl0U2V0KTsKICAgICAgICAgaWYg
KHRoaXMuX3JldmlzaW9uTGlzdEJ5UmVwb3NpdG9yeS5zaXplICE9IG90aGVyLl9yZXZpc2lvbkxp
c3RCeVJlcG9zaXRvcnkuc2l6ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzc5
LDcgKzM3OSw3IEBAIGNsYXNzIEN1c3RvbUNvbW1pdFNldCB7CiAKICAgICBhZGRDdXN0b21Sb290
KHVwbG9hZGVkRmlsZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHVwbG9hZGVkRmls
ZSBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodXBsb2Fk
ZWRGaWxlIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKICAgICAgICAgdGhpcy5fY3VzdG9tUm9v
dHMucHVzaCh1cGxvYWRlZEZpbGUpOwogICAgIH0KIH0KQEAgLTM4OCw3ICszODgsNyBAQCBjbGFz
cyBJbnRlcm1lZGlhdGVDb21taXRTZXQgewogCiAgICAgY29uc3RydWN0b3IoY29tbWl0U2V0KQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0IGluc3RhbmNlb2YgQ29tbWl0
U2V0KTsKKyAgICAgICAgY29uc29sZUFzc2VydChjb21taXRTZXQgaW5zdGFuY2VvZiBDb21taXRT
ZXQpOwogICAgICAgICB0aGlzLl9jb21taXRCeVJlcG9zaXRvcnkgPSBuZXcgTWFwOwogICAgICAg
ICB0aGlzLl9vd25lclRvT3duZWRSZXBvc2l0b3JpZXMgPSBuZXcgTWFwOwogICAgICAgICB0aGlz
Ll9mZXRjaGluZ1Byb21pc2VCeVJlcG9zaXRvcnkgPSBuZXcgTWFwOwpAQCAtNDExLDcgKzQxMSw3
IEBAIGNsYXNzIEludGVybWVkaWF0ZUNvbW1pdFNldCB7CiAgICAgX2ZldGNoQ29tbWl0TG9nQW5k
T3duZWRDb21taXRzKHJlcG9zaXRvcnksIHJldmlzaW9uKQogICAgIHsKICAgICAgICAgcmV0dXJu
IENvbW1pdExvZy5mZXRjaEZvclNpbmdsZVJldmlzaW9uKHJlcG9zaXRvcnksIHJldmlzaW9uLCB0
cnVlKS50aGVuKChjb21taXRzKSA9PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb21t
aXRzLmxlbmd0aCA9PT0gMSk7CisgICAgICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdHMubGVu
Z3RoID09PSAxKTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IGNvbW1pdHNbMF07CiAgICAg
ICAgICAgICBpZiAoIWNvbW1pdC5vd25zQ29tbWl0cygpKQogICAgICAgICAgICAgICAgIHJldHVy
biBjb21taXQ7CkBAIC00MzQsOCArNDM0LDggQEAgY2xhc3MgSW50ZXJtZWRpYXRlQ29tbWl0U2V0
IHsKIAogICAgIHNldENvbW1pdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSwgY29tbWl0LCBvd25l
ckNvbW1pdCA9IG51bGwpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChyZXBvc2l0b3J5
IGluc3RhbmNlb2YgUmVwb3NpdG9yeSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdCBp
bnN0YW5jZW9mIENvbW1pdExvZyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQocmVwb3NpdG9yeSBp
bnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdCBpbnN0
YW5jZW9mIENvbW1pdExvZyk7CiAgICAgICAgIHRoaXMuX2NvbW1pdEJ5UmVwb3NpdG9yeS5zZXQo
cmVwb3NpdG9yeSwgY29tbWl0KTsKICAgICAgICAgaWYgKCFvd25lckNvbW1pdCkKICAgICAgICAg
ICAgIG93bmVyQ29tbWl0ID0gY29tbWl0Lm93bmVyQ29tbWl0KCk7CkBAIC00NTAsMTIgKzQ1MCwx
MiBAQCBjbGFzcyBJbnRlcm1lZGlhdGVDb21taXRTZXQgewogCiAgICAgcmVtb3ZlQ29tbWl0Rm9y
UmVwb3NpdG9yeShyZXBvc2l0b3J5KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocmVw
b3NpdG9yeSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHJl
cG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKICAgICAgICAgdGhpcy5fZmV0Y2hpbmdQ
cm9taXNlQnlSZXBvc2l0b3J5LnNldChyZXBvc2l0b3J5LCBudWxsKTsKICAgICAgICAgY29uc3Qg
b3duZXJDb21taXQgPSB0aGlzLm93bmVyQ29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsK
ICAgICAgICAgaWYgKG93bmVyQ29tbWl0KSB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5
U2V0ID0gdGhpcy5fb3duZXJUb093bmVkUmVwb3NpdG9yaWVzLmdldChvd25lckNvbW1pdC5yZXBv
c2l0b3J5KCkpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwb3NpdG9yeVNldC5oYXMo
cmVwb3NpdG9yeSkpOworICAgICAgICAgICAgY29uc29sZUFzc2VydChyZXBvc2l0b3J5U2V0Lmhh
cyhyZXBvc2l0b3J5KSk7CiAgICAgICAgICAgICByZXBvc2l0b3J5U2V0LmRlbGV0ZShyZXBvc2l0
b3J5KTsKICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vd25lclRvT3duZWRSZXBvc2l0b3JpZXMu
aGFzKHJlcG9zaXRvcnkpKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZFJlcG9zaXRvcmllcyA9
IHRoaXMuX293bmVyVG9Pd25lZFJlcG9zaXRvcmllcy5nZXQocmVwb3NpdG9yeSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVs
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2Rl
bC5qcwppbmRleCBmMTg5Mjk4YTQ3YjQ1OGRjYWI3YjdiYTlmMzU1ZmViOWY0ZWM4MGNhLi5lNTZj
ODEyMGMyMzQwYmIxNGU2YzFiZjc2NTE4NWY0NTZiYzFiMDAyIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2RhdGEtbW9kZWwuanMKQEAg
LTQ0LDcgKzQ0LDcgQEAgY2xhc3MgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBzdGF0aWMgZmluZEJ5
SWQoaWQpCiAgICAgewogICAgICAgICB2YXIgaWRNYXAgPSB0aGlzLm5hbWVkU3RhdGljTWFwKCdp
ZCcpOwotICAgICAgICByZXR1cm4gaWRNYXAgPyBpZE1hcFtpZF0gOiBudWxsOworICAgICAgICBy
ZXR1cm4gaWRNYXAgPyAoaWRNYXAuaGFzT3duUHJvcGVydHkoaWQpID8gaWRNYXBbaWRdIDogbnVs
bCkgOiBudWxsOwogICAgIH0KIAogICAgIHN0YXRpYyBsaXN0Rm9yU3RhdGljTWFwKG5hbWUpCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFz
dXJlbWVudC1zZXQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9tZWFzdXJlbWVudC1zZXQuanMKaW5kZXggYzJjZDAxNmYzNjkyZGRmNGEyZTVmMmI5NjkxYzdj
OTEzZGU1YzhhYS4uY2ZjMjA4NjI3NzgwNmRkODYzYmQ4NzMxNDY2NDZiOGI0Mzk4ZTI1MSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3Vy
ZW1lbnQtc2V0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9k
ZWxzL21lYXN1cmVtZW50LXNldC5qcwpAQCAtMTQ1LDcgKzE0NSw3IEBAIGNsYXNzIE1lYXN1cmVt
ZW50U2V0IHsKICAgICAgICAgICAgIHRoaXMuX2NsdXN0ZXJTdGFydCA9IHJlc3BvbnNlWydjbHVz
dGVyU3RhcnQnXTsKICAgICAgICAgICAgIHRoaXMuX2NsdXN0ZXJTaXplID0gcmVzcG9uc2VbJ2Ns
dXN0ZXJTaXplJ107CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5fcHJpbWFyeUNsdXN0ZXJFbmRUaW1lKTsKKyAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQo
dGhpcy5fcHJpbWFyeUNsdXN0ZXJFbmRUaW1lKTsKIAogICAgICAgICB0aGlzLl9hZGRGZXRjaGVk
Q2x1c3RlcihuZXcgTWVhc3VyZW1lbnRDbHVzdGVyKHJlc3BvbnNlKSk7CiAgICAgfQpAQCAtMTY0
LDcgKzE2NCw3IEBAIGNsYXNzIE1lYXN1cmVtZW50U2V0IHsKIAogICAgIGhhc0ZldGNoZWRSYW5n
ZShzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChzdGFy
dFRpbWUgPCBlbmRUaW1lKTsKKyAgICAgICAgY29uc29sZUFzc2VydChzdGFydFRpbWUgPCBlbmRU
aW1lKTsKICAgICAgICAgbGV0IGZvdW5kU3RhcnQgPSBmYWxzZTsKICAgICAgICAgbGV0IHByZXZp
b3VzRW5kVGltZSA9IG51bGw7CiAgICAgICAgIGVuZFRpbWUgPSBNYXRoLm1pbihlbmRUaW1lLCB0
aGlzLl9wcmltYXJ5Q2x1c3RlckVuZFRpbWUpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWV0cmljLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWV0cmljLmpzCmluZGV4IGEzZTkzNjkxY2Q3MDc4NDM3
ZDM1OWQ1ZTA3Zjc5ZTRhNzA4ZDhkNmYuLmFiOTE3NjJjOWYwODVlODc1ZjQ5MDAyODg1ODIxYWRi
OTFhZDVmMTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL21ldHJpYy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9tZXRyaWMuanMKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgTWV0cmljIGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAKICAgICBhZGRQbGF0Zm9ybShwbGF0Zm9ybSkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAg
ICBjb25zb2xlQXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAgICAgICB0
aGlzLl9wbGF0Zm9ybXMucHVzaChwbGF0Zm9ybSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCmluZGV4IDNh
NmQ1OGNjNDhiYTM2MGQwYzM5YTQxNzRiZWVlODVhYmViOGM2MDMuLjkzNmFhMDA1ZTQ4ZjQ0MjM1
OGY4ODAwMGIxZTI2OTY2OTI4MjYyOGQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzCkBAIC01MCw3ICs1MCw3IEBAIGNs
YXNzIFBsYXRmb3JtIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBsYXN0TW9kaWZpZWQo
bWV0cmljKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljIGluc3RhbmNlb2Yg
TWV0cmljKTsKKyAgICAgICAgY29uc29sZUFzc2VydChtZXRyaWMgaW5zdGFuY2VvZiBNZXRyaWMp
OwogICAgICAgICByZXR1cm4gdGhpcy5fbGFzdE1vZGlmaWVkQnlNZXRyaWNbbWV0cmljLmlkKCld
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvcmVwb3NpdG9yeS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3JlcG9zaXRvcnkuanMKaW5kZXggOTMxOTg5OWRkY2Y2MDI3NTlkMDI0ODA5MDM1
OTU3ZmUwNjNmMWE0Yi4uMDEyZjgyY2VkZTM4NDhhMTZmMWI4NGJlMTI4ZTNiMzljNjIyMzIyZCAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVw
b3NpdG9yeS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5k
cyBMYWJlbGVkT2JqZWN0IHsKICAgICBvd25lZFJlcG9zaXRvcmllcygpCiAgICAgewogICAgICAg
ICBjb25zdCBvd25lcnNoaXBzID0gdGhpcy5uYW1lZFN0YXRpY01hcCgncmVwb3NpdG9yeU93bmVy
c2hpcHMnKTsKLSAgICAgICAgcmV0dXJuIG93bmVyc2hpcHMgPyBvd25lcnNoaXBzW3RoaXMuaWQo
KV0gOiBudWxsOworICAgICAgICByZXR1cm4gb3duZXJzaGlwcyA/IChvd25lcnNoaXBzLmhhc093
blByb3BlcnR5KHRoaXMuaWQoKSkgPyBvd25lcnNoaXBzW3RoaXMuaWQoKV0gOiBudWxsKSA6IG51
bGw7CiAgICAgfQogCiAgICAgc3RhdGljIHNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
cmVwb3NpdG9yaWVzKQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBSZXBvc2l0b3J5IGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGEubmFtZSgpIDwgYi5uYW1lKCkpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VJbnQoYS5pZCgpKSAtIHBhcnNlSW50KGIuaWQoKSk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKGIuX2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAgICAgICAgICAgIHJldHVybiAx
OwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKaW5kZXggOTdlOGJjOGVlM2Nk
YTlhNmY2NDE2MjM1MzRlNjdmYjgwMDM5OTgyYi4uZTcwZmFjNmM5ZmYxZTI2OGYwMjBjYzQyOGU3
ZWU1MjJmOWVhMTVhNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdGVzdC1ncm91cC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCkBAIC0yMCw3ICsyMCw3IEBAIGNsYXNzIFRl
c3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0aGlzLl9jb21wdXRlUmVx
dWVzdGVkQ29tbWl0U2V0c0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbihUZXN0
R3JvdXAuX2NvbXB1dGVSZXF1ZXN0ZWRDb21taXRTZXRzKTsKICAgICAgICAgdGhpcy5fcmVxdWVz
dGVkQ29tbWl0U2V0cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbW1pdFNldFRvTGFiZWwgPSBu
ZXcgTWFwOwotICAgICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0LnBsYXRmb3JtIHx8IG9iamVj
dC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKKyAgICAgICAgY29uc29sZUFzc2VydCgh
b2JqZWN0LnBsYXRmb3JtIHx8IG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsK
ICAgICAgICAgdGhpcy5fcGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07CiAgICAgfQogCkBAIC0y
OCw5ICsyOCw5IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAg
IHsKICAgICAgICAgc3VwZXIudXBkYXRlU2luZ2xldG9uKG9iamVjdCk7CiAKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5fdGFza0lkID09IG9iamVjdC50YXNrKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoK3RoaXMuX2NyZWF0ZWRBdCA9PSArb2JqZWN0LmNyZWF0ZWRBdCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3BsYXRmb3JtID09IG9iamVjdC5wbGF0Zm9ybSk7CisgICAg
ICAgIGNvbnNvbGVBc3NlcnQodGhpcy5fdGFza0lkID09IG9iamVjdC50YXNrKTsKKyAgICAgICAg
Y29uc29sZUFzc2VydCgrdGhpcy5fY3JlYXRlZEF0ID09ICtvYmplY3QuY3JlYXRlZEF0KTsKKyAg
ICAgICAgY29uc29sZUFzc2VydCh0aGlzLl9wbGF0Zm9ybSA9PSBvYmplY3QucGxhdGZvcm0pOwog
CiAgICAgICAgIHRoaXMuX2lzSGlkZGVuID0gb2JqZWN0LmhpZGRlbjsKICAgICAgICAgdGhpcy5f
bmVlZHNOb3RpZmljYXRpb24gPSBvYmplY3QubmVlZHNOb3RpZmljYXRpb247CkBAIC0xNDIsNyAr
MTQyLDcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBj
b21wYXJlVGVzdFJlc3VsdHMobWV0cmljLCBiZWZvcmVNZWFzdXJlbWVudHMsIGFmdGVyTWVhc3Vy
ZW1lbnRzKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljKTsKKyAgICAgICAg
Y29uc29sZUFzc2VydChtZXRyaWMpOwogICAgICAgICBjb25zdCBiZWZvcmVWYWx1ZXMgPSBiZWZv
cmVNZWFzdXJlbWVudHMubWFwKChtZWFzdXJtZW50KSA9PiBtZWFzdXJtZW50LnZhbHVlKTsKICAg
ICAgICAgY29uc3QgYWZ0ZXJWYWx1ZXMgPSBhZnRlck1lYXN1cmVtZW50cy5tYXAoKG1lYXN1cmVt
ZW50KSA9PiBtZWFzdXJlbWVudC52YWx1ZSk7CiAgICAgICAgIGNvbnN0IGJlZm9yZU1lYW4gPSBT
dGF0aXN0aWNzLnN1bShiZWZvcmVWYWx1ZXMpIC8gYmVmb3JlVmFsdWVzLmxlbmd0aDsKQEAgLTE2
MCw3ICsxNjAsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAg
ICAgICAgICAgICAgICByZXN1bHQuZnVsbExhYmVsRm9yTWVhbiA9ICdSdW5uaW5nJzsKICAgICAg
ICAgICAgICAgICByZXN1bHQuZnVsbExhYmVsRm9ySW5kaXZpZHVhbCA9ICdSdW5uaW5nJzsKICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVzdWx0
LmNoYW5nZVR5cGUgPT09IG51bGwpOworICAgICAgICAgICAgICAgIGNvbnNvbGVBc3NlcnQocmVz
dWx0LmNoYW5nZVR5cGUgPT09IG51bGwpOwogICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0dXMg
PSAncGVuZGluZyc7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmxhYmVsID0gJ1BlbmRpbmcnOwog
ICAgICAgICAgICAgICAgIHJlc3VsdC5mdWxsTGFiZWxGb3JNZWFuID0gJ1BlbmRpbmcnOwpAQCAt
MjQ2LDcgKzI0Niw3IEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3Qgewog
CiAgICAgc3RhdGljIGNyZWF0ZVdpdGhUYXNrKHRhc2tOYW1lLCBwbGF0Zm9ybSwgdGVzdCwgZ3Jv
dXBOYW1lLCByZXBldGl0aW9uQ291bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikK
ICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwor
ICAgICAgICBjb25zb2xlQXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBj
b25zdCByZXZpc2lvblNldHMgPSBDb21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMo
Y29tbWl0U2V0cyk7CiAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt0YXNrTmFtZSwgbmFtZTogZ3Jv
dXBOYW1lLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKSwgdGVzdDogdGVzdC5pZCgpLCByZXBldGl0
aW9uQ291bnQsIHJldmlzaW9uU2V0cywgbmVlZHNOb3RpZmljYXRpb246ICEhbm90aWZ5T25Db21w
bGV0aW9ufTsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywgcGFyYW1zKS50aGVuKChkYXRhKSA9PiB7CkBAIC0yNTgsNyArMjU4LDcg
QEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBzdGF0aWMg
Y3JlYXRlV2l0aEN1c3RvbUNvbmZpZ3VyYXRpb24odGFzaywgcGxhdGZvcm0sIHRlc3QsIGdyb3Vw
TmFtZSwgcmVwZXRpdGlvbkNvdW50LCBjb21taXRTZXRzLCBub3RpZnlPbkNvbXBsZXRpb24pCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKKyAg
ICAgICAgY29uc29sZUFzc2VydChjb21taXRTZXRzLmxlbmd0aCA9PSAyKTsKICAgICAgICAgY29u
c3QgcmV2aXNpb25TZXRzID0gQ29tbWl0U2V0LnJldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNv
bW1pdFNldHMpOwogICAgICAgICBjb25zdCBwYXJhbXMgPSB7dGFzazogdGFzay5pZCgpLCBuYW1l
OiBncm91cE5hbWUsIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpLCB0ZXN0OiB0ZXN0LmlkKCksIHJl
cGV0aXRpb25Db3VudCwgcmV2aXNpb25TZXRzLCBuZWVkc05vdGlmaWNhdGlvbjogISFub3RpZnlP
bkNvbXBsZXRpb259OwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKQEAgLTI2OCw3ICsy
NjgsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIHN0
YXRpYyBjcmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyh0YXNrLCBuYW1lLCByZXBldGl0aW9uQ291
bnQsIGNvbW1pdFNldHMsIG5vdGlmeU9uQ29tcGxldGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOworICAgICAgICBjb25zb2xlQXNzZXJ0
KGNvbW1pdFNldHMubGVuZ3RoID09IDIpOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBD
b21taXRTZXQucmV2aXNpb25TZXRzRnJvbUNvbW1pdFNldHMoY29tbWl0U2V0cyk7CiAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHsK
ICAgICAgICAgICAgIHRhc2s6IHRhc2suaWQoKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RpbWUtc2VyaWVzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKaW5kZXggOTM4ODlh
NmMzYWZmNzJiNTQyZTYzOWI1NmI0YzZkNjE0NmM2OWQ2Zi4uNDIyNTdlNjc5ZWY5Y2FhYmQwMmUw
YmRiMmM3NThmMjJlNjQzYmRjNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKQEAgLTExLDcgKzExLDcgQEAg
Y2xhc3MgVGltZVNlcmllcyB7CiAKICAgICBhcHBlbmQoaXRlbSkKICAgICB7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGl0ZW0uc2VyaWVzID09PSB1bmRlZmluZWQpOworICAgICAgICBjb25zb2xl
QXNzZXJ0KGl0ZW0uc2VyaWVzID09PSB1bmRlZmluZWQpOwogICAgICAgICBpdGVtLnNlcmllcyA9
IHRoaXM7CiAgICAgICAgIGl0ZW0uc2VyaWVzSW5kZXggPSB0aGlzLl9kYXRhLmxlbmd0aDsKICAg
ICAgICAgdGhpcy5fZGF0YS5wdXNoKGl0ZW0pOwpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBUaW1l
U2VyaWVzIHsKIAogICAgIHByZXZpb3VzUG9pbnQocG9pbnQpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydChwb2ludC5zZXJpZXMgPT0gdGhpcyk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQo
cG9pbnQuc2VyaWVzID09IHRoaXMpOwogICAgICAgICBpZiAoIXBvaW50LnNlcmllc0luZGV4KQog
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW3BvaW50
LnNlcmllc0luZGV4IC0gMV07CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFRpbWVTZXJpZXMgewog
CiAgICAgbmV4dFBvaW50KHBvaW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocG9p
bnQuc2VyaWVzID09IHRoaXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHBvaW50LnNlcmllcyA9
PSB0aGlzKTsKICAgICAgICAgaWYgKHBvaW50LnNlcmllc0luZGV4ICsgMSA+PSB0aGlzLl9kYXRh
Lmxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gdGhpcy5f
ZGF0YVtwb2ludC5zZXJpZXNJbmRleCArIDFdOwpAQCAtODcsOCArODcsOCBAQCBjbGFzcyBUaW1l
U2VyaWVzIHsKIAogICAgIHZpZXdCZXR3ZWVuUG9pbnRzKGZpcnN0UG9pbnQsIGxhc3RQb2ludCkK
ICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0UG9pbnQuc2VyaWVzID09IHRoaXMp
OwotICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0UG9pbnQuc2VyaWVzID09IHRoaXMpOworICAg
ICAgICBjb25zb2xlQXNzZXJ0KGZpcnN0UG9pbnQuc2VyaWVzID09IHRoaXMpOworICAgICAgICBj
b25zb2xlQXNzZXJ0KGxhc3RQb2ludC5zZXJpZXMgPT0gdGhpcyk7CiAgICAgICAgIHJldHVybiBu
ZXcgVGltZVNlcmllc1ZpZXcodGhpcywgZmlyc3RQb2ludC5zZXJpZXNJbmRleCwgbGFzdFBvaW50
LnNlcmllc0luZGV4ICsgMSk7CiAgICAgfQogfTsKQEAgLTk2LDkgKzk2LDkgQEAgY2xhc3MgVGlt
ZVNlcmllcyB7CiBjbGFzcyBUaW1lU2VyaWVzVmlldyB7CiAgICAgY29uc3RydWN0b3IodGltZVNl
cmllcywgc3RhcnRpbmdJbmRleCwgYWZ0ZXJFbmRpbmdJbmRleCwgZmlsdGVyZWREYXRhID0gbnVs
bCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRpbWVTZXJpZXMgaW5zdGFuY2VvZiBU
aW1lU2VyaWVzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoc3RhcnRpbmdJbmRleCA8PSBhZnRl
ckVuZGluZ0luZGV4KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYWZ0ZXJFbmRpbmdJbmRleCA8
PSB0aW1lU2VyaWVzLl9kYXRhLmxlbmd0aCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQodGltZVNl
cmllcyBpbnN0YW5jZW9mIFRpbWVTZXJpZXMpOworICAgICAgICBjb25zb2xlQXNzZXJ0KHN0YXJ0
aW5nSW5kZXggPD0gYWZ0ZXJFbmRpbmdJbmRleCk7CisgICAgICAgIGNvbnNvbGVBc3NlcnQoYWZ0
ZXJFbmRpbmdJbmRleCA8PSB0aW1lU2VyaWVzLl9kYXRhLmxlbmd0aCk7CiAgICAgICAgIHRoaXMu
X3RpbWVTZXJpZXMgPSB0aW1lU2VyaWVzOwogICAgICAgICB0aGlzLl9kYXRhID0gZmlsdGVyZWRE
YXRhIHx8IHRpbWVTZXJpZXMuX2RhdGE7CiAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7CkBA
IC0yMDYsNyArMjA2LDcgQEAgY2xhc3MgVGltZVNlcmllc1ZpZXcgewogCiAgICAgZmlyc3RQb2lu
dEluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1lKTsKKyAgICAgICAgY29uc29sZUFzc2VydChzdGFy
dFRpbWUgPD0gZW5kVGltZSk7CiAgICAgICAgIGZvciAobGV0IHBvaW50IG9mIHRoaXMpIHsKICAg
ICAgICAgICAgIGlmIChwb2ludC50aW1lID4gZW5kVGltZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbDsKQEAgLTIxOCw3ICsyMTgsNyBAQCBjbGFzcyBUaW1lU2VyaWVzVmlldyB7CiAKICAg
ICBsYXN0UG9pbnRJblRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChzdGFydFRpbWUgPD0gZW5kVGltZSk7CisgICAgICAgIGNvbnNvbGVB
c3NlcnQoc3RhcnRUaW1lIDw9IGVuZFRpbWUpOwogICAgICAgICBmb3IgKGxldCBwb2ludCBvZiB0
aGlzLl9yZXZlcnNlKCkpIHsKICAgICAgICAgICAgIGlmIChwb2ludC50aW1lIDwgc3RhcnRUaW1l
KQogICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwppbmRleCBkNWZm
M2M0OGMzMjlmOWI0ZDY4ZTg0MjAzMGQyMGJkMmE4N2U1YThkLi4zNjMwZjM1NWFkMjgyMDVlOGQy
YTIwNGYyZTBmNTlhZTJiN2E5YjhmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwpAQCAtMTQsNyArMTQsNyBA
QCBjbGFzcyBUcmlnZ2VyYWJsZSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICBmb3Ig
KGNvbnN0IGNvbmZpZyBvZiBvYmplY3QuY29uZmlndXJhdGlvbnMpIHsKICAgICAgICAgICAgIGNv
bnN0IGtleSA9IGAke2NvbmZpZy50ZXN0LmlkKCl9LSR7Y29uZmlnLnBsYXRmb3JtLmlkKCl9YDsK
ICAgICAgICAgICAgIHRoaXMuX2FjY2VwdGVkVGVzdHMuYWRkKGNvbmZpZy50ZXN0KTsKLSAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEoa2V5IGluIGNvbmZpZ3VyYXRpb25NYXApKTsKKyAgICAg
ICAgICAgIGNvbnNvbGVBc3NlcnQoIShrZXkgaW4gY29uZmlndXJhdGlvbk1hcCkpOwogICAgICAg
ICAgICAgY29uZmlndXJhdGlvbk1hcFtrZXldID0gdGhpczsKICAgICAgICAgfQogICAgIH0KQEAg
LTQwLDcgKzQwLDcgQEAgY2xhc3MgVHJpZ2dlcmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
IAogICAgIHN0YXRpYyB0cmlnZ2VyYWJsZVBsYXRmb3Jtc0ZvclRlc3RzKHRlc3RzKQogICAgIHsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQodGVzdHMgaW5zdGFuY2VvZiBBcnJheSk7CisgICAgICAg
IGNvbnNvbGVBc3NlcnQodGVzdHMgaW5zdGFuY2VvZiBBcnJheSk7CiAgICAgICAgIGlmICghdGVz
dHMubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgICByZXR1cm4gdGhpcy5z
b3J0QnlOYW1lKFBsYXRmb3JtLmFsbCgpLmZpbHRlcigocGxhdGZvcm0pID0+IHsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1z
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1w
bGF0Zm9ybXMtdGVzdHMuanMKaW5kZXggMTEyYjA5MTVmZjhmOTk0MjVlZTY4NDY1M2MyOTU0MmE0
Nzk5OWJjNC4uM2JkZWRlYzdiOWMyYzFiZjdmNGEzOTBjNmI3OGNiZGM3NzIzMGUzMyAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9y
bXMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
ZG1pbi1wbGF0Zm9ybXMtdGVzdHMuanMKQEAgLTQ1LDE5ICs0NSwxOSBAQCBkZXNjcmliZSgiL2Fk
bWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxl
Y3RBbGwoJ3BsYXRmb3JtcycsICduYW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3Jtcykg
PT4gewogICAgICAgICAgICAgb2xkUGxhdGZvcm1zID0gcGxhdGZvcm1zOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZFBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzFdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzJdWyduYW1lJ10sICdUcnVu
ayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxh
dGZvcm1zLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxh
dGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5r
IE1vdW50YWluIExpb24nKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRt
aW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAn
aWQnOiBvbGRQbGF0Zm9ybXNbMV1bJ2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1sy
XVsnaWQnXX0pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBk
Yi5zZWxlY3RBbGwoJ3BsYXRmb3JtcycpOwogICAgICAgICB9KS50aGVuKChuZXdQbGF0Zm9ybXMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9y
bXNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9s
ZFBsYXRmb3Jtc1syXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3UGxhdGZv
cm1zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5ld1Bs
YXRmb3Jtc1swXSwgb2xkUGxhdGZvcm1zWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwobmV3UGxhdGZvcm1zWzFdLCBvbGRQbGF0Zm9ybXNbMl0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNjksMTUgKzY5LDE1IEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1z
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVu
cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkVGVzdFJ1
bnMgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0
Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRU
ZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1syXVsncGxhdGZvcm1fbmFt
ZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10s
IDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVucy5sZW5ndGgs
IDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0
Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4g
TGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydy
dW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRU
ZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAg
ICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVuc1sxXVsncGxhdGZv
cm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX2lkJ119KTsK
QEAgLTg1LDIwICs4NSwyMCBAQCBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeShxdWVyeUZvclJ1bnMpOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IG5ld1Rlc3RSdW5zID0g
cmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnMubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX2lkJ10s
IG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNb
MV1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsn
cGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJd
WydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3Bs
YXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1szXVsn
cnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0
Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNd
WydydW5fY29uZmlnJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1
bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZl
cmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1swXVsn
cnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdU
ZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwg
J1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVu
X2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydw
bGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xk
VGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChu
ZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2Nh
Y2hlJ10sIDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sx
XVsncnVuX2NvbmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTExNCwxMyArMTE0LDEzIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxh
dGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5
Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxhdGZvcm0n
XV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIG9sZENvbmZp
Z3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsncGxhdGZv
cm1fbmFtZSddLCByZXBvcnRzWzBdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvbGRDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5l
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1sxXVsncGxhdGZvcm1fbmFt
ZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob2xkQ29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1swXVsncGxhdGZvcm1fbmFtZSdd
LCByZXBvcnRzWzBdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2Vs
aW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsncGxh
dGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsnY29uZmlnX3R5
cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRt
aW4vcGxhdGZvcm1zLnBocCcsCiAgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAn
aWQnOiBvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRDb25m
aWdzWzFdWydwbGF0Zm9ybV9pZCddfSk7CkBAIC0xMjgsMTMgKzEyOCwxMyBAQCBkZXNjcmliZSgi
L2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBkYi5x
dWVyeShxdWVyeUZvckNvbmZpZywgW3JlcG9ydHNbMF1bJ3BsYXRmb3JtJ10sIHJlcG9ydHNbMl1b
J3BsYXRmb3JtJ11dKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBuZXdDb25maWdzID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3Q29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0Nv
bmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1l
UmF0ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190
eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10s
ICdjdXJyZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlncy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1b
J3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZp
Z190eXBlJ10sICdiYXNlbGluZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5l
d0NvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUn
XSwgJ0ZyYW1lUmF0ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZp
Z3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKaW5kZXggMmZmNTNjYmY4
OGFjMjRiMGU5MjE2YjBhNzJlNGUzNzA5MjI3YTg4MS4uYjA4YWY5ZmRmOWM2YjQzMDUwMjkwZGM3
NWEyMzQ1YTcyNjUxZjhlNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0
cy5qcwpAQCAtNDgsMTAgKzQ4LDEwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2lt
cGxlUmVwb3J0V2l0aFJldmlzaW9ucyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6
ICdXZWJLaXQnfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9zaXRvcmllcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0UmVwc2l0b3J5SWQgPSByZXBvc2l0b3JpZXNbMF0ub3duZXIgPT0gMSA/IHJl
cG9zaXRvcmllc1sxXS5pZCA6IHJlcG9zaXRvcmllc1swXS5pZDsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICcyMTMyMTQnLCAncmVwb3Np
dG9yeSc6IHdlYmtpdFJlcHNpdG9yeUlkfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewpAQCAtNjUsMjcgKzY1LDI3IEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoc2ltcGxl
UmVwb3J0WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChb
ZGIuc2VsZWN0QWxsKCdidWlsZHMnKSwgZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyldKTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBidWlsZHMgPSByZXN1
bHRbMF07CiAgICAgICAgICAgICBjb25zdCByZXBvcnRzID0gcmVzdWx0WzFdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkc1swXVsndGFnJ10sIDE5ODYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHNbMF1bJ3Rh
ZyddLCAnMTk4NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIHJlcG9ydElkID0gcmVwb3J0c1swXVsnaWQnXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgMTk4Nik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0c1swXVsnYnVpbGRfdGFnJ10sICcxOTg2
Jyk7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCByZXBv
cnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAg
ICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0
aCwgMCk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cyhgL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PSR7cmVwb3J0SWR9YCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkc1swXVsndGFnJ10sIDE5ODYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
c1swXVsndGFnJ10sICcxOTg2Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NSwxMCAr
OTUsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBvcnRbMF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOwog
ICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90ID0gcmVwb3J0c1swXTsK
ICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9i
dWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTEwNiwxNCArMTA2LDE0IEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgbmV3UG9ydCA9IHJlcG9ydHNbMF07CiAgICAgICAgICAgICBvcmlnaW5hbFJlcHJv
dFsnY29tbWl0dGVkX2F0J10gPSBudWxsOwogICAgICAgICAgICAgbmV3UG9ydFsnY29tbWl0dGVk
X2F0J10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFsUmVwcm90
WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJp
Y3RFcXVhbChvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9ydFsnYnVpbGQnXSk7CiAgICAg
ICAgICAgICBvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQ
b3J0WydidWlsZCddID0gbnVsbDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3JpZ2lu
YWxSZXByb3QsIG5ld1BvcnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChv
cmlnaW5hbFJlcHJvdCwgbmV3UG9ydCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IDgzZmJlNTk3ZmU3OWEzYTFiZjgwNTBh
YzgzNzdiZGQ4NjQ3NDRlNjYuLmNkZTVlZGYyYmIxZjI3ZDVkMzk3MTVjYjM2YWVmNjBjYmU1MTJi
MDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC0xMyw3ICsxMyw3IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQo
J3Nob3VsZCByZXR1cm4gIlRyaWdnZXJhYmxlTm90Rm91bmQiIHdoZW4gdGhlIGRhdGFiYXNlIGlz
IGVtcHR5JywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpLnRoZW4oKGNvbnRlbnQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ1RyaWdn
ZXJhYmxlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydzdGF0dXMnXSwgJ1RyaWdnZXJhYmxlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTIxLDExICsyMSwxMSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQo
J2J1aWxkX3RyaWdnZXJhYmxlcycsIHtuYW1lOiAnYnVpbGQtd2Via2l0J30pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVu
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ10s
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCku
c29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1
cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzMsMzYgKzMzLDM2IEBAIGRl
c2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVyLmRhdGFi
YXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAn
Y29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0
T3duZXI6ICI5MzExNiIsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogbnVsbH1dKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMV0uaWQsIDQwNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCksIDQwNCk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZp
c2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAg
ICAgICAgICAgICAgIHtjb21taXQ6ICcyMDE3JywgY29tbWl0T3duZXI6ICI5NjMzNiIsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0sIHtjb21taXRPd25l
cjogbnVsbCwgaWQ6IDg3ODMyLCByZXBvc2l0b3J5OiAnOScsIHJldmlzaW9uOiAnMTAuMTEgMTVB
Mjg0JywgdGltZTogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRzJ11bMV0sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDkzMTE2LCByZXBvc2l0b3J5OiAn
MTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4Nzh9KQotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0sIHtjb21taXRPd25lcjog
JzkzMTE2JywgaWQ6ICcxNzk3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQt
anNjLTYxNjEnLCB0aW1lOiAxNDU2OTYwNzk1MzAwfSkKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0cyddWzNdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiA5NjMz
NiwgcmVwb3NpdG9yeTogJzExJywgcmV2aXNpb246ICcxOTI3MzYnLCB0aW1lOiAxNDQ4MjI1MzI1
NjUwfSkKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzRd
LCB7Y29tbWl0T3duZXI6ICc5NjMzNicsIGlkOiAyMDE3LCByZXBvc2l0b3J5OiAnMjEzJywgcmV2
aXNpb246ICdvd25lZC1qc2MtOTE5MScsIHRpbWU6IDE0NjIyMzA4MzcxMDB9KQorICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDUpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0sIHtj
b21taXRPd25lcjogbnVsbCwgaWQ6ICc4NzgzMicsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246
ICcxMC4xMSAxNUEyODQnLCB0aW1lOiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogJzkz
MTE2JywgcmVwb3NpdG9yeTogJzExJywgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAxNDQ1OTQ1
ODE2ODc4fSkKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0cyddWzJdLCB7Y29tbWl0T3duZXI6ICc5MzExNicsIGlkOiAnMTc5NycsIHJlcG9zaXRvcnk6
ICcyMTMnLCByZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgdGltZTogMTQ1Njk2MDc5NTMwMH0p
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsz
XSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogJzk2MzM2JywgcmVwb3NpdG9yeTogJzExJywgcmV2
aXNpb246ICcxOTI3MzYnLCB0aW1lOiAxNDQ4MjI1MzI1NjUwfSkKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzRdLCB7Y29tbWl0T3duZXI6ICc5
NjMzNicsIGlkOiAnMjAxNycsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lvbjogJ293bmVkLWpz
Yy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKICAgICAg
ICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXVsnY3JlYXRlZEF0J10gPSAwOwogICAg
ICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdWydjcmVhdGVkQXQnXSA9IDA7CiAg
ICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl1bJ2NyZWF0ZWRBdCddID0gMDsK
ICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXVsnY3JlYXRlZEF0J10gPSAw
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3Np
dG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3Vw
OiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycs
IHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVk
QXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLCB7aWQ6ICc3MDUnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcs
IHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRl
c3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3Bl
bmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwg
Y3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTog
JzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAn
NjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0
dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6
IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dl
cmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0
Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0
Jywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGws
IGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAn
MTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0
OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNv
bW1pdFNldDogJzQwMycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVs
bCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAn
NzA1JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6
ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBv
cmRlcjogJzEnLCBjb21taXRTZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVz
Y3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMl0sIHtpZDogJzcwNicsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcyJywgY29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxl
OiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06
ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMycsIGNvbW1pdFNldDogJzQwNCcsIHN0
YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWls
ZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CiAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwLDMw
ICs3MCwzMCBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1
aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0
U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
aWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsK
ICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAg
ICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsK
KworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxl
bmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0g
ICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVy
bDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJl
dXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1
czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9i
dWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzog
J3N5bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLApA
QCAtMTAxLDUzICsxMDEsNTMgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1
aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
Lmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0uaWQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYw
MCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxl
OiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0
ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJl
dmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotCi0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0
ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIHJldXNlIHJvb3QgYnVpbHQgZm9yIG93bmVkIGNvbW1pdCBpZiBzYW1l
IGNvbXBsZXRlZCBidWlsZCByZXF1ZXN0IGV4aXN0cycsIGFzeW5jICgpID0+IHsKICAgICAgICAg
YXdhaXQgTW9ja0RhdGEuYWRkVHdvTW9ja1Rlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoVGVzdFNl
cnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxk
LXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQp
LnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0
dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzJdLmlkLCA0MDUpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9i
amVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMn
LCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCksIDQwNSk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnMTc5Nycs
IGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzE3OTcn
LCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUs
IHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1p
dDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjog
JzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVu
Z3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmlkKSwgNzA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDMpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCks
IDcwOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezcwODogewogICAgICAgICAgICAgc3Rh
dHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogNzA0fX07CkBA
IC0xNTksMjkgKzE1OSwyOSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVp
bGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVu
dCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0
YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
T2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0
cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQp
LCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29t
bWl0U2V0cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAg
ICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtj
b21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNC
dWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3
JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5
NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29t
bWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEw
MX1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxl
bmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uaWQsIDcwNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0LCA0MDMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5pZCwgNzA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5jb21taXRTZXQsIDQwNSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRP
d25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAnMTAxJ31dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgNzA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKICAgICB9KTsKIAogICAgIGl0KCdyZXVzZSByb290cyBmcm9tIGV4aXN0aW5nIGJ1aWxk
IHJlcXVlc3RzIGlmIHRoZSBjb21taXRzIHNldHMgYXJlIGVxdWFsIGV4Y2VwdCB0aGUgZXhpc3Rl
bmNlIG9mIGN1c3RvbSByb290cycsIGFzeW5jICgpID0+IHsKQEAgLTE5NSwzMiArMTk1LDMyIEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBd
KTsKICAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
aWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
aWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21t
aXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
bnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uY3VzdG9tUm9vdHMsIFsxMDNdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsxMDRdKTsKLQotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYw
MCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogbnVsbH1dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWycxMDQnXSk7
CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5s
ZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdw
ZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewot
ICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JS
b290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAg
ICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKICAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xh
dmVOYW1lJzogJ3N5bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFz
c3dvcmQnLApAQCAtMjI4LDI3ICsyMjgsMjcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRlbnQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJl
cXVlc3RzL2J1aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsy
XS5pZCksIDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4Nzgz
MicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAx
fV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5y
ZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEw
MSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5jdXN0b21S
b290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVk
Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJs
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbJzEwMyddKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
Y3VzdG9tUm9vdHMsIFsnMTA0J10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVlc3Qg
d2l0aCAiQ2Fubm90UmV1c2VEZWxldGVkUm9vdCIgaWYgYW55IHJvb3QgdG8gcmV1c2UgaXMgZGVs
ZXRlZCcsIGFzeW5jICgpID0+IHsKQEAgLTI5OSwzMSArMjk5LDMwIEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LmRhdGFiYXNlKCkucXVlcnkoYENSRUFURSBUUklHR0VSIGVtdWxhdGVfZmlsZV9wdXJnZSBBRlRF
UiBVUERBVEUgT0YgY29tbWl0c2V0X3Jvb3RfZmlsZSBPTiBjb21taXRfc2V0X2l0ZW1zCiAgICAg
ICAgICAgICBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZW11bGF0ZV9maWxlX3B1cmdl
KCk7YCk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNv
cnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMn
LCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7
CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCks
IFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3Vw
bG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5pZCwgNjAwKTsKLQotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAg
IHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMx
MTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21t
aXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWls
ZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7Cisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcx
MDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlk
KSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCl9fTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5v
dFJldXNlRGVsZXRlZFJvb3QnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAg
ICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtMzM3LDI5ICszMzYsMjkgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0
IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKSwgWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRp
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwgZmFsc2UpOwogICAg
ICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQsIDYwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
Wydjb21taXRTZXRzJ11bNF0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQs
IDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0u
c3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21t
aXRTZXQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0KSwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs4XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRh
dGVzID0gezkwMDogewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBi
dWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19
OworICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsK
IAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ05vTWF0Y2hpbmdDb21taXRTZXRJdGVtJywg
KCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVp
bGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdz
eW5jLXNsYXZlJywKQEAgLTM3NCwzMCArMzczLDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDAxLCBjb21taXQ6IDExMTE2OH0p
CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29t
bWl0OiAnMTExMTY4JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCAxMik7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5pZCwgOTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQsIDYwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uc3RhdHVz
LCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzhdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTog
bnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQp
LCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0KSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bOF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0g
ezkwMDogewotICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJl
cXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAg
ICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
dXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290
UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCl9fTsKIAogICAg
ICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdFJldXNlUm9vdFdpdGhOb25NYXRjaGluZ0Nv
bW1pdFNldHMnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xh
dmVOYW1lJzogJ3N5bmMtc2xhdmUnLApAQCAtNDEwLDMwICs0MDksMzAgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydy
dW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVz
dHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0
aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlz
aW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
LSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
MTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcx
MDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRl
bXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCBy
ZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J3J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQp
LCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ3J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5
MDA6IHsKLSAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAg
ICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBhd2FpdCBh
c3NlcnRUaHJvd3MoJ0Nhbk9ubHlSZXVzZUNvbXBsZXRlZEJ1aWxkUmVxdWVzdCcsICgpID0+IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVl
c3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2
ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC00NDUsMjcg
KzQ0NCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhj
b250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMn
LCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVk
Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJs
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5k
aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
dXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0p
OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10u
bGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsK
ICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
dXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290
UmV1c2U6IDk5OX19OwpAQCAtNDgxLDU1ICs0ODAsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQt
cmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2Nr
RGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQt
cmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAogICAg
ICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6
IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJv
b3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwg
JzknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2
aXNpb24sICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMV0uaWQsIDkzMTE2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMV0ucmVwb3NpdG9yeSwgJzExJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMzNik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcx
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZp
c2lvbiwgJzE5MjczNicpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3Jt
LCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcy
MDAnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRT
ZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
Ml0ub3JkZXIsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVz
LCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBs
YXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRl
c3QsICcyMDAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRzJ11bMF0uaWQpLCA4NzgzMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICc5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9u
LCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNp
b24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICcxMScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwg
JzE5MjczNicpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5vcmRlciksIDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNv
bW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAn
MjAwJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVy
KSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQp
LCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOwor
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVszXS5pZCksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0U2V0KSwgNDAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTUzNyw1NSArNTM2LDU1IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdD91c2VMZWdhY3lJZFJlc29sdXRpb249dHJ1ZScpOwogICAg
ICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1
aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRl
ZEZpbGVzJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0
MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LCB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQsIDQwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZp
c2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsxXS5pZCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAogICAgICAg
ICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5NjMz
NicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0cyddLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0cyddWzBdLmlkLCA4NzgzMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0cyddWzBdLnJlcG9zaXRvcnksICdtYWNPUycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCwgOTMxMTYp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0
b3J5LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzJdLmlkLCA5NjMzNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmV2aXNpb24sICcxOTI3MzYnKTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0
ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9y
bScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21l
IHRlc3QnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICdzb21lIHBsYXRm
b3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3Nv
bWUgdGVzdCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxh
dGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsIFsn
c29tZSB0ZXN0J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJl
dmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzFdLmlkKSwgOTMxMTYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cydd
WzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzJdLmlkKSwgOTYzMzYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0b3J5LCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cydd
WzJdLnJldmlzaW9uLCAnMTkyNzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
KSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJ3Nv
bWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBs
YXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0KSwgNDAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsIFsnc29tZSB0ZXN0J10p
OworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21t
aXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgWydz
b21lIHRlc3QnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNd
Lm9yZGVyKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU5NSw3
ICs1OTQsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChi
dWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIw
MCk7CiAgICAgICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC02MDMsOTQgKzYwMiw5NCBAQCBkZXNj
cmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxl
dCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKDY1KTsKICAgICAgICAgICAgIGFzc2VydChw
bGF0Zm9ybSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlk
KCksIDcwNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzBdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLm9yZGVyKCksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwNCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwg
OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRl
c3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpKSwgMCk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNl
dCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3MDUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3
MDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMV0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIo
KSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0
KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3RzWzFdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3RzWzFdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1
ZXN0c1sxXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzA2KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDkw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRl
c3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0o
KSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
b3JkZXIoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpKSwgNzA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3Jt
KCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzJdLm9yZGVyKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWls
ZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1syXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1syXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzNdLmlkKCksIDcwNyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcwNyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3Jv
dXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzNdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSBpbnN0YW5jZW9m
IENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFz
U3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmlzUGVu
ZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCiAgICAgICAgICAgICBj
b25zdCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeC5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5h
bWUoKSwgJ1dlYktpdCcpOwogCiAgICAgICAgICAgICBjb25zdCBqc2MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDIxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFT
Y3JpcHRDb3JlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjLm5hbWUoKSwg
J0phdmFTY3JpcHRDb3JlJyk7CiAKICAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RD
b21taXRTZXQpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJl
cXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0
U2V0KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZmlyc3RDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVB
Mjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNj
LTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwg
JzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2Vjb25kQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcx
OTI3MzYnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0ID0gZmlyc3RDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEw
LjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdCwg
c2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CiAKICAgICAgICAgICAg
IGNvbnN0IGZpcnN0V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0
LnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RX
ZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0
NTk0NTgxNjg3OCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFdlYktpdENvbW1pdCA9IHNl
Y29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIy
NTMyNTY1MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kV2ViS2l0Q29t
bWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGZpcnN0U0pDQ29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeShqc2MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0U0pDQ29tbWl0LnJldmlz
aW9uKCksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJz
dFNKQ0NvbW1pdC50aW1lKCksIDE0NTY5NjA3OTUzMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGZpcnN0U0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFNKQ0NvbW1pdC50aW1lKCksIDE0
NTY5NjA3OTUzMDApOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRTSkNDb21taXQgPSBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShqc2MpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgz
NzEwMCkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRTSkNDb21taXQucmV2
aXNpb24oKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoK3NlY29uZFNKQ0NvbW1pdC50aW1lKCksIDE0NjIyMzA4MzcxMDApCiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC02OTgsNyArNjk3LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFRlc3RHcm91cFdp
dGhPd25lckNvbW1pdE5vdEluQ29tbWl0U2V0KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAg
ICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMg
PSBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKICAgICAgICAg
Y29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgYXNzZXJ0KHRlc3QpOwpA
QCAtNzA4LDMzICs3MDcsMzMgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gYnVpbGRSZXF1ZXN0c1sw
XTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDcwNCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QudGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5vcmRlcigpLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgNzA0KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpKSwgOTAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRm
b3JtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5v
cmRlcigpKSwgMCk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkg
aW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3QuaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwogCiAgICAgICAgIGNvbnN0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOwogCiAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoMjEzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGpzYy5uYW1lKCksICdKYXZhU2NyaXB0
Q29yZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3Jp
cHRDb3JlJyk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQt
anNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBv
bmUuaWQoKSA8IGFub3RoZXIuaWQoKSksIFtvc3gsIHdlYmtpdF0pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkx
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbW1pdFNldC50b3BMZXZlbFJlcG9zaXRvcmllcygpLnNvcnQoKG9uZSwgYW5vdGhlcikg
PT4gcGFyc2VJbnQob25lLmlkKCkpIC0gcGFyc2VJbnQoYW5vdGhlci5pZCgpKSksIFtvc3gsIHdl
YmtpdF0pOwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LnJlcG9zaXRvcnlHcm91cCgp
LmFjY2VwdHMoY29tbWl0U2V0KSk7CiAgICAgfSk7CiAKQEAgLTc0NCw3ICs3NDMsNyBAQCBkZXNj
cmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsK
IAogICAgICAgICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAgICAgICAgICAg
ICBhc3NlcnQodGVzdCk7CkBAIC03NTIsNzkgKzc1MSw3OSBAQCBkZXNjcmliZSgnL2FwaS9idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9IFBs
YXRmb3JtLmZpbmRCeUlkKDY1KTsKICAgICAgICAgICAgIGFzc2VydChwbGF0Zm9ybSk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCks
IHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgp
LCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS5vcmRlcigpKSwgMCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1swXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS5pZCgpLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1sxXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSksIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBD
b21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmhhc1N0
YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5p
ZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJd
Lm9yZGVyKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmNv
bW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1syXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1syXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1
aWxkUmVxdWVzdHNbMl0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmlkKCksIDcw
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVz
dCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnBs
YXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzNdLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbM10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwg
dGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpKSwgMyk7CiAgICAgICAgICAgICBhc3NlcnQu
b2soYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbM10uaGFzU3RhcnRlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmlzUGVuZGluZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCiAgICAgICAgICAgICBsZXQgb3N4ID0gUmVwb3Np
dG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFtZSgpLCAn
bWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgpLCAnbWFj
T1MnKTsKIAogICAgICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAK
ICAgICAgICAgICAgIGxldCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRT
ZXQoKSwgZmlyc3RDb21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKIAogICAgICAgICAg
ICAgbGV0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vj
b25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4x
MSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAn
MTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
b3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBsZXQgb3N4Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0
Rm9yUmVwb3NpdG9yeShvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdC5y
ZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0LCBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1
QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdCwgc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CiAKICAgICAgICAgICAgIGxldCBm
aXJzdFdlYktpdENvbW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lv
bigpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0V2ViS2l0Q29t
bWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZmlyc3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4
NzgpOwogCiAgICAgICAgICAgICBsZXQgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25kQ29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNp
b24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtzZWNvbmRX
ZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTgzNCw3ICs4MzMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
QnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAg
ICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg0
NCw3ICs4NDMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1
ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVu
KChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1NCw3ICs4NTMs
NyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJl
cXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzBdLmhhc0Zpbmlz
aGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRpbmco
KSk7CkBAIC04NzYsNyArODc1LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAg
ICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJl
cXVlc3RzWzBdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVx
dWVzdHNbMF0uaXNQZW5kaW5nKCkpOwpAQCAtODk5LDMyICs4OTgsMzIgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdi
dWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSwgMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSwg
NjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLm9y
ZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQo
KSwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3RH
cm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzNdLmlkKCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MTEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzEyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCksIDYwMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigp
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlkKCksIDcx
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0R3JvdXBJ
ZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
N10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzFdLmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigp
KSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1syXS5pZCgpKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0u
aWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLmlkKCkp
LCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgNzEy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzZdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcxMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS50
ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTkzNywzMCArOTM2LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBUcmln
Z2VyYWJsZS5hbGwoKS5maW5kKCh0cmlnZ2VyYWJsZSkgPT4gdHJpZ2dlcmFibGUubmFtZSgpID09
ICdidWlsZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5y
ZXBvc2l0b3J5R3JvdXBzKCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkubGVuZ3RoLCAyKTsKICAgICAgICAg
ICAgIGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dl
cmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1naXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnd2Via2l0LXN2bicpOwogICAgICAgICAg
ICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQn
KTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzFdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCks
IDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzNdLmlkKCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSwgMTcwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDE3MDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2
XS5pZCgpLCAxNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgMTcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s3XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwg
NzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnJl
cG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnJlcG9z
aXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpKSwgMTcwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzVdLmlkKCkpLCAxNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzVdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSksIDE3
MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVw
b3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgMTcwMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3Jv
dXBzWzBdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk3MSwzMiArOTcwLDMyIEBAIGRl
c2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MTApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSwg
NjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCksIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQo
KSwgNzExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RH
cm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5vcmRlcigpLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzJdLmlkKCksIDcxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1syXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpLCA3MTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOwotCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCA3MDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCksIDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgNzAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCksIDYwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigp
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlkKCksIDcw
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
Nl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3
XS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10u
dGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzddLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSks
IDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS5vcmRlcigpKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzExKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA2MDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
MV0ub3JkZXIoKSksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLm9y
ZGVyKCkpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLmlkKCkpLCA3MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigp
KSwgMyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzRdLmlkKCkpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpKSwg
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s1XS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSksIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0u
aWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCkpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkp
LCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbN10udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpKSwgMyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMDA4LDM2ICsxMDA3LDM2IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxk
LXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3Jk
JzogJ3Bhc3N3b3JkJywKICAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVw
ZGF0ZXMKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2FuY2VsZWQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0udGVz
dCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRm
b3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydi
dWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCwgNzAyKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIsIDIp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVz
dHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3Rh
dHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQw
Mik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVswXS5vcmRlciksIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NhbmNlbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChw
YXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyKSwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzFdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0KSwgNDAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAw
Jyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsy
XS5vcmRlciksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzJdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMl0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkKSwgNzAz
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Bv
bnNlWydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIpLCAzKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0s
ICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnRlc3QsICcyMDAnKTsKICAgICAgICAg
ICAgIH0sICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdTaG91bGQgbm90
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXgg
MTUxOTEwYmFlYjI1NTYwMjZiOTJmMGEzMWJkMTkwNTY4YmZhYjcxMy4uMjg1NjlmMDYzNzMwNGUz
YTYyY2Y3NzAwOTIzOTNmN2YwZTczNjU5NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCkBAIC0xMTks
MjIgKzExOSwyMiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKIAog
ICAgIGZ1bmN0aW9uIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdCwgc3Vi
bWl0dGVkKQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsncmV2aXNpb24nXSwg
c3VibWl0dGVkWydyZXZpc2lvbiddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG5ldyBEYXRlKGNv
bW1pdFsndGltZSddKS50b0lTT1N0cmluZygpLCBzdWJtaXR0ZWRbJ3RpbWUnXSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRbJ21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0
aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvckVtYWls
J10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRbJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZFsncmV2aXNpb24nXSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXcgRGF0ZShjb21taXRbJ3RpbWUnXSkudG9JU09TdHJp
bmcoKSwgc3VibWl0dGVkWyd0aW1lJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0WydtZXNzYWdlJ10sIHN1Ym1pdHRlZFsnbWVzc2FnZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFsnYXV0aG9yTmFtZSddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWyduYW1l
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydhdXRob3JFbWFpbCddLCBz
dWJtaXR0ZWRbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICBpZihzdWJtaXR0ZWRbJ3By
ZXZpb3VzQ29tbWl0J10pIHsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRbJ3ByZXZpb3Vz
Q29tbWl0J10pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFsncHJldmlvdXNDb21taXQnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKICAgICAgICAgfQogICAgIH0K
IAogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+LycsICgpID0+IHsKICAg
ICAgICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJl
IG5vIG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0JykudGhlbigo
cmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDYsOCArMTQ2LDggQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0xNTUsMTggKzE1NSwxOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0
cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0LycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0sn
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbJ2NvbW1pdHMnXTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CiAgICAgICAg
ICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN1YnZlcnNpb25Db21taXRzWydjb21t
aXRzJ107CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQo
Y29tbWl0c1swXSwgc3VibWl0dGVkQ29tbWl0c1swXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0c1sxXSwgc3VibWl0dGVkQ29tbWl0c1sx
XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29t
bWl0c1syXSwgc3VibWl0dGVkQ29tbWl0c1syXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHNbMl1bJ3ByZXZpb3VzQ29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzJdWydwcmV2aW91c0NvbW1p
dCddLCBjb21taXRzWzFdWydpZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtMTc0LDE5ICsxNzQsMTkgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1p
dHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL09TWC8nKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbW1pdHMgPSBzeXN0ZW1WZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxl
bmd0aCwgc3VibWl0dGVkQ29tbWl0cy5sZW5ndGgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzVdWydyZXZpc2lv
biddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24n
XSwgc3VibWl0dGVkQ29tbWl0c1s0XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMl1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbM11bJ3Jl
dmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzNdWydyZXZp
c2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzJdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1s0XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1sx
XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbNV1b
J3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgc3VibWl0dGVkQ29tbWl0
cy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBd
WydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzVdWydyZXZpc2lvbiddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgc3VibWl0
dGVkQ29tbWl0c1s0XVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMl1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbM11bJ3Jldmlz
aW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzNdWydy
ZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzJdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1s0XVsncmV2aXNpb24nXSwgc3VibWl0dGVk
Q29tbWl0c1sxXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbNV1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMF1bJ3JldmlzaW9u
J10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTk0LDcgKzE5
NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2Ny
aWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L29sZGVzdCcsICgpID0+IHsKICAgICAgICAg
aXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1h
dGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjAyLDggKzIwMiw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6
ICdXZWJLaXQnfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9vbGRlc3QnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIxNCw4ICsyMTQsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dl
YktpdC9vbGRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11b
MF0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjI3LDkgKzIyNyw5IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVs1XVsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1p
dHMnXVs1XVsncmV2aXNpb24nXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vbGF0ZXN0Jywg
KCkgPT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hl
biB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvbGF0ZXN0JykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRv
cnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNDUsOCAr
MjQ1LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywg
eydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0L2xhdGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21t
aXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjU3LDggKzI1
Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhdGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNv
bW1pdHNbJ2NvbW1pdHMnXS5zbGljZSgpLnBvcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKQEAgLTI3MCw5ICsyNzAsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXRlc3QnKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
IHN5c3RlbVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yODQsMTMgKzI4NCwxMyBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGRiLnF1ZXJ5
KGBERUxFVEUgRlJPTSB0ZXN0cyBXSEVSRSB0ZXN0X25hbWUgPSAnQS1UZXN0J2ApOwogCiAgICAg
ICAgICAgICBjb25zdCBwbGF0Zm9ybXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3BsYXRmb3Jtcycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICBjb25zdCB0ZXN0X21ldHJpY3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3Rlc3RfbWV0cmlj
cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RfbWV0cmljcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RfbWV0cmljcy5sZW5ndGgsIDEpOwog
CiAgICAgICAgICAgICBjb25zdCB0ZXN0cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdHMnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgIGFzc2Vy
dCh0ZXN0X21ldHJpY3NbMF0uaWQgIT0gdGVzdHNbMF0uaWQpOwogCkBAIC0zMDIsNyArMzAyLDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUo
Jy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vbGFzdC1yZXBvcnRlZCcsICgpID0+IHsKICAgICAg
ICAgaXQoInNob3VsZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5v
IG1hdGNoaW5nIHJlcG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0
ZWQnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZv
dW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTMxNCw4ICszMTQsOCBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzIzLDggKzMyMyw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJL
aXQnfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0zNDAsOCArMzQwLDggQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9X
ZWJLaXQvbGFzdC1yZXBvcnRlZCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVz
dWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXS5zbGljZSgpLnBvcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAg
LTM1Myw5ICszNTMsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiByZW1v
dGUuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBz
eXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM3MiwzMSArMzcyLDMxIEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzY3JnRvPTM3MCcpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgY29t
bWl0ID0gcmVzdWx0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJl
dmlzaW9uLCAnU2llcnJhMTZDNjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0LnJldmlzaW9uLCAnU2llcnJhMTZDNjgnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM3MCZ0bz0zNjcnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MjAwJnRvPTI5OScpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjkmdG89NDMyJyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQgPSBy
ZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNpb24s
ICdTaWVycmExNkQzMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXQucmV2aXNpb24sICdTaWVycmExNkQzMicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtNDA0LDcgKzQwNCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+Lzxj
b21taXQ+JywgKCkgPT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90
Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvMjEwOTQ5JykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC00MTYsNyArNDE2LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScp
OwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3du
Q29tbWl0Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyOCw4ICs0Mjgs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTUwJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CiAg
ICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAogICAgICAgICAgICAgICAg
ICAgICByZXZpc2lvbjogJzIxMDk1MCcsCkBAIC00NDcsOCArNDQ3LDggQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvMjEwOTQ5Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11b
MV0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNDU4LDggKzQ1OCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQg
YWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQg
cmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJz
aW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NDk/cHJlZml4LW1hdGNoPWZhbHNlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRb
J2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7CiAgICAgICAg
IH0pOwogCkBAIC00NjgsOCArNDY4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9u
Q29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIx
MDk0OT9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMV0pOwogICAgICAgICB9KTsKIApAQCAtNDc4LDcgKzQ3OCw3IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQg
YWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQg
cmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJz
aW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5ND9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXZpc2lv
blByZWZpeCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgic2hvdWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRoZXJl
IGlzIGEgY29tbWl0IHJldmlzaW9uIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQgcmV2aXNpb24g
cHJlZml4IiwgYXN5bmMgKCkgPT4gewpAQCAtNDg2LDggKzQ4Niw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JS
ZXBvcnQoY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXIpOwogICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBjb21taXRzT25l
UHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1v
dGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5ND9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVz
dWx0Wydjb21taXRzJ11bMF0sIGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyWydjb21taXRzJ11b
MF0pOwogICAgICAgICB9KTsKIApAQCAtNDk2LDcgKzQ5Niw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8yMTA5MD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBub3QgbWF0Y2ggcHJlZml4IGFuZCByZXR1
cm4gJ1Vua293bkNvbW1pdCcgd2hlbiBzdm4gY29tbWl0IHN0YXJ0cyB3aXRoICdyJyBwcmVmaXgg
YW5kIHRoZXJlIGlzIG5vIGV4YWN0IG1hdGNoIiwgYXN5bmMgKCkgPT4gewpAQCAtNTA0LDcgKzUw
NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAg
ICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBy
ZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9yMjEwOTU/cHJlZml4LW1hdGNoPXRy
dWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93
bkNvbW1pdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdVbmtub3duQ29tbWl0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJzaG91bGQg
aGFuZGxlIGNvbW1pdCByZXZpc2lvbiB3aXRoIHNwYWNlIiwgKCkgPT4gewpAQCAtNTE1LDEyICs1
MTUsMTIgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1MlMjBYLzEwLjExLjEwJTIwU2llcnJh
MTZDNjcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAxKTsKIAogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3VsdHMuY29tbWl0c1swXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LmlkLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAgU2llcnJhMTZDNjcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29tbWl0LmlkKSwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJzEwLjEx
LjEwIFNpZXJyYTE2QzY3Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUz
OCwxMyArNTM4LDEzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9v
d25lci1yZXZpc2lvbj0xMC4xMiUyMDE2QTMyMycpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVz
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21t
aXRzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBvd25lZENvbW1pdCA9IHJl
c3VsdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21t
aXQucmVwb3NpdG9yeSwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93bmVkQ29t
bWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG93
bmVkQ29tbWl0LmlkLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQob3duZWRDb21taXQucmVwb3NpdG9yeSksIDIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvd25lZENvbW1pdC5yZXZpc2lvbiwgJzIxMDk1MCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvd25lZENvbW1pdC5pZCksIDIpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NTgsOCArNTU4LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIw
MTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cywgW10pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NzMsOCArNTczLDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTEwLjEyJTIwMTZBMzI0JykK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KQogICAgIH0pOwpAQCAtNTgyLDcgKzU4Miw3IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJl
cG9zaXRvcnk+Lz9wcmVjZWRpbmdSZXZpc2lvbj08Y29tbWl0LTE+Jmxhc3RSZXZpc2lvbj08Y29t
bWl0LTI+JywgKCkgPT4gewogICAgICAgICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90
Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvP2Zyb209MjEwOTAwJnRvPTIxMTAwMCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9z
aXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIApAQCAtNTk0LDcgKzU5NCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTAwJmxhc3RSZXZpc2lvbj0yMTEwMDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNv
bW1pdCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MDcsOCArNjA3LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBd
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5
NDkmbGFzdFJldmlzaW9uPTIxMDk1MCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRz
J10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtNjIxLDcgKzYyMSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2Vk
aW5nUmV2aXNpb249MjEwOTUwJmxhc3RSZXZpc2lvbj0yMTA5NDknKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29tbWl0UmFuZ2Un
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjM1LDggKzYzNSw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2
QTMyMyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXS5tYXAoKGNvbW1pdCkgPT4gY29tbWl0WydyZXZpc2lvbiddKSwgWycxMC4x
MiAxNkIyNTU1JywgJzEwLjEyIDE2QjI2NTcnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBj
b21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjUwLDcgKzY1MCw3IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMy
MyZsYXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjY0LDcgKzY2NCw3IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZs
YXN0UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbmNvbnNpc3RlbnRDb21taXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjc4LDggKzY3OCw4IEBAIGRlc2NyaWJlKCIv
YXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0
UmV2aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1p
dHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC02OTMsOCArNjkzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNl
ZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTcwOCw4ICs3MDgsOCBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZsYXN0
UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNP
bmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAgICAgICAgICAgICAgICAg
cHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEw
OTQ5JywKQEAgLTc0Myw4ICs3NDMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNp
b249MjEwOTQ3Jmxhc3RSZXZpc2lvbj0yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lv
bkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRz
Wydjb21taXRzJ11bMV0pOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCmlu
ZGV4IGJkYTI3NGZiMTk5NmQ0N2E2MTIxNDNmY2Y1MjJkNmQ5OTRjNGVmZDguLmFjNzE5ZTlkYzgw
MWUyYTYwM2QxZDMzOGEwYWY5NmU3MTc5NmYwNzAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCkBA
IC0xMyw3ICsxMyw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewog
CiAgICAgaXQoInNob3VsZCBnZW5lcmF0ZSBhbiBlbXB0eSBtYW5pZmVzdCB3aGVuIGRhdGFiYXNl
IGlzIGVtcHR5IiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL21hbmlmZXN0JykudGhlbigobWFuaWZlc3QpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMobWFuaWZlc3QpLnNvcnQoKSwgWydhbGwn
LCAnYnVnVHJhY2tlcnMnLCAnYnVpbGRlcnMnLCAnZGFzaGJvYXJkJywgJ2Rhc2hib2FyZHMnLAor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCku
c29ydCgpLCBbJ2FsbCcsICdidWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAn
ZGFzaGJvYXJkcycsCiAgICAgICAgICAgICAgICAgJ2ZpbGVVcGxvYWRTaXplTGltaXQnLCAnbWF4
Um9vdFJldXNlQWdlSW5EYXlzJywgJ21ldHJpY3MnLCAncGxhdGZvcm1Hcm91cHMnLCAncmVwb3Np
dG9yaWVzJywgJ3NpdGVUaXRsZScsCiAgICAgICAgICAgICAgICAgJ3N0YXR1cycsICdzdW1tYXJ5
UGFnZXMnLCAndGVzdEFnZVRvbGVyYW5jZUluSG91cnMnLCAndGVzdHMnLCAndHJpZ2dlcmFibGVz
J10pOwogCkBAIC00NSwyMiArNDUsMjIgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdi
dWdfdHJhY2tlcnMnLCBidWd6aWxsYURhdGEpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAg
ICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJsOiAnaHR0
cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJs
OiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICAgICAgbmV3QnVn
VXJsOiAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJywgcmVwb3NpdG9yaWVzOiBudWxsfX0pOwog
CiAgICAgICAgICAgICBsZXQgbWFuaWZlc3QgPSBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChj
b250ZW50KTsKICAgICAgICAgICAgIGxldCB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgx
KTsKICAgICAgICAgICAgIGFzc2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy8nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUo
KSwgJ0J1Z3ppbGxhJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5i
dWdVcmwoMTIzKSwgJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy8nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIGNsZWFyIEJ1
ZyBhbmQgQnVnVHJhY2tlciBzdGF0aWMgbWFwcyB3aGVuIHJlc2V0IiwgYXN5bmMgKCkgPT4gewog
ICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdidWdfdHJhY2tlcnMn
LCBidWd6aWxsYURhdGEpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdV
cmw6ICdodHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1
Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAogICAgICAgICAgICAgbmV3QnVn
VXJsOiAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJywgcmVwb3NpdG9yaWVzOiBudWxsfX0pOwog
CiAgICAgICAgIE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwpAQCAtOTIsMjgg
KzkyLDI4IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3Ry
YWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAgICAgbGV0IG1hY29zID0gUmVwb3NpdG9y
eS5maW5kQnlJZCg5KTsKICAgICAgICAgICAgIGFzc2VydChtYWNvcyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOwogCiAgICAgICAgICAgICBsZXQgaW9z
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgyMik7CiAgICAgICAgICAgICBhc3NlcnQoaW9zKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOwogCiAgICAgICAgICAgICBsZXQg
dHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQodHJh
Y2tlcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxs
YScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRw
czovL3dlYmtpdC5vcmcvYi8xMjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2Vy
Lm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRyYWNrZXIucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBz
Oi8vd2Via2l0Lm9yZy9iLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRy
YWNrZXIubmV3QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOwogCiAgICAgICAgICAgICB0cmFja2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgyKTsKICAg
ICAgICAgICAgIGFzc2VydCh0cmFja2VyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLm5hbWUoKSwgJ1JhZGFyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZSh0cmFja2VyLnJlcG9zaXRvcmllcygpKSwgW2lvcywgbWFjb3NdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5hbWUoKSwgJ1JhZGFyJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZSh0cmFja2VyLnJlcG9zaXRvcmllcygpKSwgW2lvcywgbWFjb3NdKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEzMSwxOSArMTMxLDE5IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0Jywg
ZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZCgxMSk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8x
MjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQub3duZWRSZXBvc2l0b3JpZXMo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwg
J1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JS
ZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm93bmVkUmVwb3NpdG9yaWVzKCksIG51bGwpOwog
CiAgICAgICAgICAgICBsZXQgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKICAgICAgICAg
ICAgIGFzc2VydChvc3gpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdP
UyBYJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmll
cygpLCBbUmVwb3NpdG9yeS5maW5kQnlJZCgzNSldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3gubmFtZSgpLCAnT1MgWCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChvc3gub3duZWRSZXBvc2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUp
XSk7CiAKICAgICAgICAgICAgIGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAg
ICAgICAgICAgIGFzc2VydChpb3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1l
KCksICdpT1MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3Mub3duZWRSZXBvc2l0b3Jp
ZXMoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwg
J2lPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5vd25lZFJlcG9zaXRv
cmllcygpLCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBA
QCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZGVycywgeworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CiAgICAgICAgICAg
ICAgICAgJzEnOiB7bmFtZTogJ1NvbWVCdWlsZGVyJywgYnVpbGRVcmw6ICdodHRwczovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvJGJ1aWxkZXJOYW1lL2J1aWxkLyRidWlsZFRhZyd9LAogICAg
ICAgICAgICAgICAgICcyJzoge25hbWU6ICdTb21lT3RoZXJCdWlsZGVyJywgYnVpbGRVcmw6IG51
bGx9CiAgICAgICAgICAgICB9KTsKQEAgLTE2NSwxMyArMTY1LDEzIEBAIGRlc2NyaWJlKCcvYXBp
L21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgYnVpbGRlciA9IEJ1
aWxkZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lQnVpbGRlcicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgJ2h0dHBzOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9Tb21lQnVpbGRlci9idWlsZC8xMjMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAn
aHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycp
OwogCiAgICAgICAgICAgICBidWlsZGVyID0gQnVpbGRlci5maW5kQnlJZCgyKTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZGVyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLm5h
bWUoKSwgJ1NvbWVPdGhlckJ1aWxkZXInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZGVyLnVybEZvckJ1aWxkKDEyMyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkZXIubmFtZSgpLCAnU29tZU90aGVyQnVpbGRlcicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yMDIsMTQgKzIwMiwxNCBAQCBkZXNjcmliZSgnL2FwaS9tYW5p
ZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7
CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudC50ZXN0cywgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50LnRlc3RzLCB7CiAgICAgICAgICAgICAgICAgIjEiOiB7Im5hbWUiOiAiU29tZVRl
c3QiLCAicGFyZW50SWQiOiBudWxsLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjIi
OiB7Im5hbWUiOiAiU29tZU90aGVyVGVzdCIsICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxs
fSwKICAgICAgICAgICAgICAgICAiMyI6IHsibmFtZSI6ICJDaGlsZFRlc3QiLCAicGFyZW50SWQi
OiAiMSIsICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgICAgICAiNCI6IHsibmFtZSI6ICJHcmFu
ZENoaWxkIiwgInBhcmVudElkIjogIjMiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5tZXRyaWNzLCB7CiAgICAgICAg
ICAgICAgICAgJzUnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMScsIGFnZ3JlZ2F0b3I6IG51bGx9
LAogICAgICAgICAgICAgICAgICc2Jzoge25hbWU6ICdUaW1lJywgdGVzdDogJzInLCBhZ2dyZWdh
dG9yOiAnVG90YWwnfSwKICAgICAgICAgICAgICAgICAnNyc6IHtuYW1lOiAnTWFsbG9jJywgdGVz
dDogJzInLCBhZ2dyZWdhdG9yOiAnVG90YWwnfSwKQEAgLTI0NCw3ICsyNDQsNyBAQCBkZXNjcmli
ZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChpb3NH
cm91cCk7CiAgICAgICAgICAgICBhc3NlcnQobWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3Mn
KTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChzb21lVGVzdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAg
ICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI1Myw5ICsy
NTMsOSBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAg
ICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFsbG9jKSk7
CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNH
cm91cCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAn
aU9TIDkgaVBob25lIDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlw
aG9uZTVzLm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogICAgICAgICAgICAgYXNzZXJ0KGlv
czlpcGhvbmU1cy5oYXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlp
cGhvbmU1cy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9z
OWlwaG9uZTVzLmhhc1Rlc3QoY2hpbGRUZXN0KSk7CkBAIC0yNjQsNjMgKzI2NCw2MyBAQCBkZXNj
cmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydCgh
aW9zOWlwaG9uZTVzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0VGltZSkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAg
ICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMuZ3JvdXAoKSwgaW9zR3Jv
dXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgp
LCBpb3NHcm91cCk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1BsYXRmb3JtcyA9IG1hY0dyb3Vw
LnBsYXRmb3JtcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJp
Y2tzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXNbMF0sIG1h
dmVyaWNrcyk7CiAKICAgICAgICAgICAgIGNvbnN0IGlvc1BsYXRmb3JtcyA9IGlvc0dyb3VwLnBs
YXRmb3JtcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlwaG9u
ZTVzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXNbMF0sIGlv
czlpcGhvbmU1cyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1lKCks
ICdTb21lVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0LnBhcmVudFRl
c3QoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0LnBhdGgo
KSwgW3NvbWVUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3Qu
bmFtZSgpLCAnU29tZVRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21l
VGVzdC5wYXJlbnRUZXN0KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzb21lVGVzdC5wYXRoKCksIFtzb21lVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFz
b21lVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21lVGVzdE1ldHJpY10p
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMubmFtZSgpLCAnVGlt
ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JO
YW1lKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmxh
YmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0TWV0
cmljLmNoaWxkTWV0cmljcygpLCBjaGlsZFRlc3QubWV0cmljcygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7
Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVP
dGhlclRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0LnBhcmVu
dFRlc3QoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVPdGhlclRl
c3QucGF0aCgpLCBbc29tZU90aGVyVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzb21lVGVzdC5jaGlsZFRlc3RzKCksIFtjaGlsZFRlc3RdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZVRlc3QubWV0cmljcygpLCBbc29tZVRlc3RNZXRy
aWNdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLm5h
bWUoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1l
dHJpYy5hZ2dyZWdhdG9yTmFtZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lVGVzdE1ldHJpYy5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5jaGlsZE1ldHJpY3MoKSwgY2hpbGRUZXN0
Lm1ldHJpY3MoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRy
aWMuZnVsbE5hbWUoKSwgJ1NvbWVUZXN0IDogVGltZScpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5wYXJlbnRUZXN0KCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBh
dGgoKSwgW3NvbWVPdGhlclRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZU90aGVyVGVz
dC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1lJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uYWdncmVn
YXRvck5hbWUoKSwgJ1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVy
VGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3RhbCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxl
bmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNz
KClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdN
YWxsb2MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVsxXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGls
ZE1ldHJpY3MoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhl
clRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9jIDog
VG90YWwnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdD
aGlsZFRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QucGFyZW50VGVz
dCgpLCBzb21lVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5w
YXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5u
YW1lKCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVy
VGVzdC5tZXRyaWNzKClbMF0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwg
J1RpbWUgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhl
clRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUo
KSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsx
XS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVsxXS5jaGlsZE1ldHJpY3MoKS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJU
ZXN0IDogTWFsbG9jIDogVG90YWwnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVzdCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRU
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoIWNoaWxkVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVN
ZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5jaGlsZFRl
c3RzKCksIFtncmFuZENoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxk
VGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGls
ZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBC
IENoaWxkVGVzdCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hp
bGRUZXN0Lm5hbWUoKSwgJ0dyYW5kQ2hpbGQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cmFuZENoaWxkVGVzdC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3Qs
IGdyYW5kQ2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNo
aWxkVGVzdC5jaGlsZFRlc3RzKCksIFtncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdU
aW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3Mo
KVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6IFRpbWUnKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUoKSwgJ0dy
YW5kQ2hpbGQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVz
dC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5k
Q2hpbGRUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoZ3JhbmRDaGlsZFRlc3Qub25seUNvbnRh
aW5zU2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENo
aWxkVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFu
ZENoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwg
J1NvbWVUZXN0IFx1MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBUaW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVz
dHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0
Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
YW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgp
LCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3NCw1OSArMzc0LDU5IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0
LmZldGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMp
LCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9z
V2Via2l0MSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3NXZWJraXQxLm93bmVySWQoKSwgOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NX
ZWJraXQxLnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3NXZWJraXQx
Lm93bmVySWQoKSksIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0
MS51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAg
IGNvbnN0IHNoYXJlZCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzaGFyZWQubmFtZSgpLCAnU2hhcmVkJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IHNvbWVUZXN0ID0gVGVzdC5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lVGVzdC5uYW1lKCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNv
bWVPdGhlclRlc3QgPSBUZXN0LmZpbmRCeUlkKDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOwog
CiAgICAgICAgICAgICBjb25zdCBjaGlsZFRlc3QgPSBUZXN0LmZpbmRCeUlkKDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7
CiAKICAgICAgICAgICAgIGNvbnN0IGlvczlpcGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkg
aVBob25lIDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVz
Lm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogCiAgICAgICAgICAgICBjb25zdCBtYXZlcmlj
a3MgPSBQbGF0Zm9ybS5maW5kQnlJZCg0Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2
ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKIAogICAgICAg
ICAgICAgY29uc3Qgc2llcnJhID0gUGxhdGZvcm0uZmluZEJ5SWQoMTA0KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2llcnJhLm5hbWUoKSwgJ1RydW5r
IFNpZXJyYSBNYWNCb29rUHJvMTEsMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJp
Z2dlcmFibGUuYWxsKCkubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDMpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNv
c1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRl
c3QsIG1hdmVyaWNrcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3NUcmlnZ2VyYWJs
ZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWFjb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlv
bihzb21lT3RoZXJUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGls
ZFRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhl
clRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVz
dCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IGlv
c1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90
aGVyVGVzdCwgaW9zOWlwaG9uZTVzKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChpb3NU
cmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW9zVHJpZ2dlcmFibGUubmFtZSgpLCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJs
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zVHJpZ2dlcmFibGUubmFtZSgp
LCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRy
aWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhv
bmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2Vy
YWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlv
c1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJs
ZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpLCBp
b3NUcmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFi
bGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NU
cmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1RyaWdnZXJhYmxlID0gVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIHNpZXJyYSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwobWFjVHJpZ2dlcmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndlYmtp
dC5vcmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNUcmlnZ2VyYWJsZS5u
YW1lKCksICdtYWMtYnVpbGQud2Via2l0Lm9yZycpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY1Ry
aWdnZXJhYmxlLmFjY2VwdGVkVGVzdHMoKS5oYXMoc29tZVRlc3QpKTsKIAogICAgICAgICAgICAg
Y29uc3QgZ3JvdXBzID0gbWFjVHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBUcmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKGdyb3Vwcyk7CiAKICAgICAgICAgICAg
IGNvbnN0IGVtcHR5Q3VzdG9tU2V0ID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKQEAgLTQ0NSwzNSAr
NDQ1LDM1IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQsICcxOTE2MjInKTsKICAgICAgICAgICAgIGN1c29tU2V0V2l0aFdlYktpdEFuZFNo
YXJlZC5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkLCAnODY0NTYnKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWUoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29t
U2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2Vi
S2l0KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUo
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLmlzSGlkZGVuKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2Vw
dHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCB0
cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNl
dFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwotCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWUoZ3JvdXBzWzJdLnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0
V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNj
ZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21T
ZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUo
Z3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0
V2l0aE9TWCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sw
XS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRB
bmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmlzSGlkZGVuKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0c0N1
c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2Vw
dHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hB
bmRXZWJLaXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
MV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2Vi
S2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJd
Lm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBz
WzJdLnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9t
U2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2Vi
S2l0QW5kU2hhcmVkKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCmluZGV4IDM1MmI2
MTJmNzY3NjE4NTVlNzhmNTM2YmIzYTEzMDg5NTVhY2IxZjQuLjI2YWYzZDMwMWM1ZGEzMzQ2NjIx
OTQ4N2IwMzQ3N2NhMjI0ZGNjYzYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMu
anMKQEAgLTI0MywxMiArMjQzLDEyIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0
V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxk
VGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJu
IHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmln
dW91c1JlcXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1NiwxMiArMjU2LDEy
IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRy
aWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWApOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNjksMTIgKzI2OSwxMiBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9u
JywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1hJm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJ
ZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZv
cm0nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MiwxMiArMjgyLDEyIEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50
YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YmApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
TWV0cmljJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTcsNyArMzE3LDcgQEAgZGVz
Y3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVh
c3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT00NiZtZXRyaWM9NWApLnRoZW4oKHJlc3BvbnNlKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlKTsKICAgICAgICAgICAgIH0sIChlcnJvcikg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMjYsMzEgKzMyNiwzMSBAQCBkZXNjcmliZSgiL2Fw
aS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9u
JywgJ1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFz
dXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3Vs
dC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsn
YnVpbGRUaW1lJ10pKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5
cyhyZXNwb25zZSkuc29ydCgpLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhyZXNwb25zZSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnY2x1c3RlckNv
dW50JywgJ2NsdXN0ZXJTaXplJywgJ2NsdXN0ZXJTdGFydCcsCiAgICAgICAgICAgICAgICAgICAn
Y29uZmlndXJhdGlvbnMnLCAnZWxhcHNlZFRpbWUnLCAnZW5kVGltZScsICdmb3JtYXRNYXAnLCAn
bGFzdE1vZGlmaWVkJywgJ3N0YXJ0VGltZScsICdzdGF0dXMnXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIFsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWwogICAgICAgICAgICAg
ICAgICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50JywgJ3N1bScsICdzcXVhcmVTdW0nLCAn
bWFya2VkT3V0bGllcicsCiAgICAgICAgICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1l
JywgJ2J1aWxkJywgJ2J1aWxkVGltZScsICdidWlsZFRhZycsICdidWlsZGVyJ10pOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVp
bGRUaW1lLnN0YXJ0VGltZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CiAgICAgICAg
ICAgICBhc3NlcnQodHlwZW9mKHJlc3BvbnNlWydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcics
ICdsYXN0TW9kaWZpZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10p
LCBbJ2N1cnJlbnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVj
dC5rZXlzKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddKSwgWydjdXJyZW50J10pOwogCiAgICAg
ICAgICAgICBjb25zdCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydj
dXJyZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHJlc3Bv
bnNlWydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zv
cm1hdE1hcCddLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZv
cm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAg
ICAgICAgIG1lYW46IDMsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAg
ICAgICAgICAgICAgc3VtOiAxNSwKQEAgLTM2Nyw3ICszNjcsNyBAQCBkZXNjcmliZSgiL2FwaS9t
ZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVy
Rm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywg
J1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25z
dCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKQEAgLTM4MywyMCArMzgzLDIwIEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkZXJzID0gcmVzdWx0WzJdOwogICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBy
ZXN1bHRbM107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRl
cnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50SWQgPSBydW5zWzBd
WydpZCddOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJZCA9IGJ1aWxkc1swXVsnaWQnXTsKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydpZCddOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydjb25m
aWd1cmF0aW9ucyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1l
YXN1cmVtZW50ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10u
aW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVp
bGRJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zv
cm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4
T2YoJ2lkJyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1
aWxkSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3Bv
bnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uVGlt
ZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0
J11bJ3RpbWVzdGFtcCddKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvbkJ1aWxkVGltZSA9
ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJv
d3NbMF0pLCB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFu
OiAxMywKICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAg
c3VtOiA2NSwKQEAgLTQzOSw3ICs0MzksNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1z
ZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRp
bWUsCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAogICAgICAg
ICAgICAgICAgYnVpbGRUYWc6ICcxMjQnIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAn
XSwgY3VycmVudFJvd3NbMV0pLCB7CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAg
ICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAt
NDY2LDE2ICs0NjYsMTYgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0
aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3Jt
SWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKIAogICAgICAgICBjb25zdCBjdXJyZW50
Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRh
ZywgMTI3KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1h
dE1hcCddLCBjdXJyZW50Um93c1sxXSkuYnVpbGRUYWcsIDEyOCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5i
dWlsZFRhZywgJzEyNycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChy
ZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgJzEyOCcpOwog
ICAgICAgICBhc3NlcnQoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3Nb
MF0pLmNvbW1pdFRpbWUgPCByZXNwb25zZS5zdGFydFRpbWUpOwogICAgICAgICBhc3NlcnQoZm9y
bWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmNvbW1pdFRpbWUgPCBy
ZXNwb25zZS5zdGFydFRpbWUpOwogCiAgICAgICAgIGNvbnN0IGJhc2VsaW5lUm93cyA9IHJlc3Bv
bnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICBhc3NlcnQuZXF1YWwo
YmFzZWxpbmVSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgMTMxKTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBi
YXNlbGluZVJvd3NbMV0pLmJ1aWxkVGFnLCAxMjkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYmFzZWxpbmVSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRh
ZywgJzEzMScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25z
ZVsnZm9ybWF0TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsICcxMjknKTsKICAgICB9
KTsKIAogICAgIGl0KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBidWlsZCB0aW1lIHdoZW4gY29t
bWl0IHRpbWVzIGFyZSBtaXNzaW5nIiwgKCkgPT4gewpAQCAtNTIyLDggKzUyMiw4IEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0
Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50
Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBd
KSwgeworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsn
Zm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAgbWVhbjogMywK
ICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiAx
NSwKQEAgLTUzMyw3ICs1MzMsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiArRGF0ZS5VVEMoMjAxNywg
MCwgMTksIDE1LCAyOCwgMSksCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6ICtEYXRlLlVUQygy
MDE3LCAwLCAxOSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGFnOiAnMTAwMScg
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0
TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAg
ICAgICAgICAgICAgICBtZWFuOiA3LAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1
LAogICAgICAgICAgICAgICAgIHN1bTogMzUsCkBAIC01NjIsOSArNTYyLDkgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMo
YC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRy
aWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91
bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVp
bGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0
ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNw
b25zZSwgJ2N1cnJlbnQnKSwKICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0aEFuY2llbnRSZXZp
c2lvblswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWlsZFRhZydd
XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTgwLDEwICs1ODAsMTAgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMo
YC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRy
aWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAn
c2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJz
Jyk7CiAgICAgICAgICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlv
bnMnXVsnY3VycmVudCddOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxl
bmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRX
aXRoQW5jaWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoQnVpbGRUaW1lWzBd
WydidWlsZFRhZyddXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJv
d3MubGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQn
KSwgW3JlcG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhC
dWlsZFRpbWVbMF1bJ2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYw
MywxNCArNjAzLDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkv
bWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHty
ZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1Jlc3VsdCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0u
anNvbmApLnRoZW4oKGNhY2hlZFJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOwogICAgICAgICAgICAg
ICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2Fj
aGVkUmVzdWx0WydzdGFydFRpbWUnXX0uanNvbmApOwogICAgICAgICAgICAgfSkudGhlbigob2xk
UmVzdWx0KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb2xkYnVpbGRUYWdzID0gYnVpbGRU
YWdzKG9sZFJlc3VsdCwgJ2N1cnJlbnQnKTsKICAgICAgICAgICAgICAgICBjb25zdCBuZXdidWls
ZFRhZ3MgPSBidWlsZFRhZ3MobmV3UmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAg
IGFzc2VydChvbGRidWlsZFRhZ3MubGVuZ3RoID49IDIsICdUaGUgb2xkIGNsdXN0ZXIgc2hvdWxk
IGNvbnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KG5ld2J1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBuZXcgY2x1c3RlciBzaG91bGQgY29u
dGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5l
d2J1aWxkVGFncy5zbGljZSgwLCAyKSwKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1
aWxkVGFncy5zbGljZSgwLCAyKSwKICAgICAgICAgICAgICAgICAgICAgJ1R3byBjb25zZXFjdXRp
dmUgY2x1c3RlcnMgc2hvdWxkIHNoYXJlIHR3byBkYXRhIHBvaW50cycpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwpAQCAtNjI5LDkgKzYyOSw5IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBtYW5pZmVz
dCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwogCiAgICAgICAgICAgICAg
ICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdNb3VudGFpbiBMaW9uJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNZXRyaWMuYWxsKCkubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICBjb25zdCBtZXRyaWMgPSBNZXRyaWMuYWxsKClbMF07Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBw
cmltYXJ5Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwbGF0Zm9ybS5sYXN0TW9kaWZpZWQobWV0cmljKSwgcHJpbWFyeUNsdXN0ZXJb
J2xhc3RNb2RpZmllZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTY3MywxMCArNjczLDEwIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICBpdCgic2hvdWxkIGFsbG93IHRvIHJlcG9ydCBhIGJ1aWxkIHJlcXVl
c3QiLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJlcG9y
dEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhC
dWlsZFJlcXVlc3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OV2l0aFN0YXR1cygnL2FwaS9tZWFzdXJlbWVudC1zZXQvP2FuYWx5c2lzVGFzaz01MDAnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEy
LCA1MCwgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1l
bnRzJ10sIFtbMSwgNCwgMywgMTIsIDUwLCBbCiAgICAgICAgICAgICAgICAgWycxJywgJzknLCAn
MTAuOC4yIDEyQzYwJywgbnVsbCwgMF0sIFsnMicsICcxMScsICcxNDE5NzcnLCBudWxsLCAxMzYw
MTQwOTIwOTAwXV0sCiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwg
J2N1cnJlbnQnXV0pOwogICAgIH0pOwpAQCAtNzExLDE3ICs3MTEsMTcgQEAgZGVzY3JpYmUoIi9h
cGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCByZW1vdGUg
PSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2Nr
RGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2Fp
dCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBv
cnRXaXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lQW5kQnVpbGRSZXF1ZXN0KTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCiAgICAgICAgIGNvbnN0
IHJhd1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9j
b21taXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENv
bW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBl
Y3RlZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4y
JTIwMTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNb
MF0udGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0
VGltZSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUw
MCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwg
MywgMTIsIDUwLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFz
dXJlbWVudHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgIFsnMScsICc5Jywg
JzEwLjguMiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWycyJywgJzEx
JywgJzE0MTk3NycsIG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAg
ICAgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDEsIDEsICdjdXJyZW50J11dKTsKICAgICB9KTsK
QEAgLTc1NywxNCArNzU3LDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbcmVwb3J0V2l0aENvbW1pdHNOZWVkc1JvdW5kQ29tbWl0VGltZV0pOwogCiAgICAgICAgIGNv
bnN0IHJhd1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2Fw
aS9jb21taXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktp
dENvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBl
eHBlY3RlZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0
ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAu
OC4yJTIwMTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1p
dHNbMF0udGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29t
bWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlQbGF0Zm9ybUFu
ZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdGcmFtZVJhdGUnKTsKICAgICAgICAgY29uc3QgcHJp
bWFyeUNsdXN0ZXIgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocHJpbWFyeUNsdXN0ZXIuY29u
ZmlndXJhdGlvbnMuY3VycmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJhdGlvbnMuY3Vy
cmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCiAgICAgICAgICAgICBbMSwgMSwgJzEw
LjguMiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWzIsIDIsICcxNDE5
NzcnLCBudWxsLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWVdXSwKICAgICAgICAgICAgIGV4cGVj
dGVkV2ViS2l0Q29tbWl0VGltZSwgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDFdXSk7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IDMyNDczMzk2MTg4ZjY4
YzczOWQ3NDhhYmY4YTg2ZmVkNGE0MGZmZTEuLmI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQw
YzMwYzRiMTg1OWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC03OCwx
NiArNzgsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRy
dWUiLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNs
YXZlIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCAo
KSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91
bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTk1LDcgKzk1LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9y
dChlbXB0eVJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9y
dCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTAzLDExICsxMDMsMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZv
clJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvc2l0b3Jp
ZXMnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydu
YW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsnbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1p
dHNbMF1bJ3JlcG9zaXRvcnknXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTUsNyAr
MTE1LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJz
aW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21t
aXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBAIC0xMjMsMTQgKzEyMywxNCBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGxldCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogICAgICAgICAgICAg
bGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1swXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERh
dGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21t
aXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBd
WyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2
aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMt
MDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBj
b21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTM4LDEwICsxMzgsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25JbnZhbGlkQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2
aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmV2aXNpb24nKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRh
dGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTQ5LDMyICsxNDksMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2
ZUZvclJlcG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAg
ICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5z
ZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25z
dCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsK
IAogICAgICAgICAgICAgbGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNv
bW1pdHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24n
XSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6
MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1b
J21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydwcmV2aW91c19jb21taXQnXSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbidd
LCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAw
ODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1b
J3ByZXZpb3VzX2NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogCiAgICAgICAgICAgICByZXBv
cnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsndGltZSddLnRvU3Ry
aW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0
YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21t
aXR0ZXInXSwgY29tbWl0dGVyc1sxXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXVsncHJldmlvdXNfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydh
dXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFd
WydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWRE
YXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzFdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcp
LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1b
J21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydwcmV2aW91c19j
b21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xh
dmVGb3JSZXBvcnQoc3VidmVyc2lvbkludmFsaWRQcmV2aW91c0NvbW1pdCkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb0ZpbmRQcmV2aW91c0NvbW1pdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmlu
ZFByZXZpb3VzQ29tbWl0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTIwMCwxOCArMjAwLDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0
QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsw
XTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydp
ZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJl
cG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBv
cnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydh
dXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0
ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMjgsMjMgKzIyOCwyMyBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMn
KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0
WzFdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1sw
XVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSdd
LCBmaXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCdd
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3Nh
Z2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0
dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10s
IGZpcnN0RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzFdWydpZCddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBudWxsKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTI1OSwxMiArMjU5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2Nv
bW1pdHRlcnMnKTsKICAgICAgICAgfSkudGhlbigoY29tbWl0dGVycykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3Vu
dCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSdd
LCBhdXRob3JbJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
dGVyc1swXVsnYWNjb3VudCddLCBhdXRob3JbJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0zMDIsMTUgKzMwMiwxNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlRm9yUmVwb3J0KHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1p
dCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzYW1lUmVwb3NpdG9yeU5hbWVJbk93
bmVkQ29tbWl0QW5kTWFqb3JDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncmVw
b3NpdG9yaWVzJywgeyduYW1lJzogJ1dlYktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CiAgICAgICAgICAg
ICBsZXQgb3NXZWJLaXQgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgd2Via2l0UmVwb3Np
dG9yeSA9IHJlc3VsdFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc1dlYktpdC5p
ZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJL
aXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RT
dHJpY3RFcXVhbChvc1dlYktpdC5pZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3NXZWJLaXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1l
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVy
LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Myw3ICszNDMsNyBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRX
aXRoT3duZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZl
cnNpb25Db21taXRXaXRoT3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1p
dHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDMyJ30pLAogICAgICAgICAgICAgICAgIGRiLnNl
bGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnV2ViS2l0IENvbW1pdCd9KSwKICAgICAg
ICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ0phdmFTY3Jp
cHRDb3JlIGNvbW1pdCd9KSwKQEAgLTM1MSw1NCArMzUxLDU0IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICJXZWJLaXQifSks
CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzog
J0phdmFTY3JpcHRDb3JlJ30pXSkKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdCA9IHJl
c3VsdFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdENvbW1pdCA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmlj
dEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY0NvbW1pdCA9IHJlc3VsdFsy
XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IG9zeFJlcG9zaXRvcnkgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1
YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbNF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
NF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1
bHRbNF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0UmVwb3NpdG9yeSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9y
eSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbNV1bMF07Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJl
cG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdC5yZXBvc2l0
b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBv
c2l0b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnks
IHdlYmtpdFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpz
Y0NvbW1pdC5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5Lmlk
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBv
c3hSZXBvc2l0b3J5LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQuaWQsICdv
d25lZCc6IHdlYmtpdENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENv
bW1pdC5pZCwgJ293bmVkJzoganNjQ29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdl
YmtpdFJlcG9zaXRvcnkuaWR9KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRG
b3JXZWJLaXRDb21taXQgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0LCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3Qgb3duZXJDb21taXRGb3JKU0NDb21taXQgPSAgcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdCwgbnVsbCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAg
fSk7CiAgICAgfSkKIApAQCAtNDQ4LDcgKzQ0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkU2xhdmVGb3JSZXBvcnQobXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29tbWl0c1dpdGhPd25lZENv
bW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgbXVsdGlwbGVTeXN0ZW1WZXJz
aW9uQ29tbWl0c1dpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0
cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2Vs
ZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZDNjcnfSksCiAgICAgICAg
ICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29t
bWl0J30pLApAQCAtNDU4LDQ5ICs0NTgsNDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIu
c2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2YVNjcmlw
dENvcmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHQubGVuZ3RoLCA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsw
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MCA9IHJlc3VsdFswXVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
b3N4Q29tbWl0MSA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
c3hDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hD
b21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzJdWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNj
Q29tbWl0MCA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2ND
b21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NDb21t
aXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0MSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5ub3RTdHJpY3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WzVdLmxlbmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IG9zeFJlcG9zaXRvcnkg
PSByZXN1bHRbNV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4UmVwb3NpdG9y
eSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeS5vd25l
ciwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNl0ubGVuZ3RoLCAx
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzZdWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnku
aWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3du
ZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WzddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wzdd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NSZXBvc2l0b3J5ID0gcmVzdWx0Wzdd
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJl
cG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRv
cnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBv
c2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NDb21taXQwLnJlcG9zaXRv
cnksIGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1p
dDEucmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBv
c2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxLnJl
cG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpzY1JlcG9z
aXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDEucmVw
b3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9y
eS5pZCk7CiAKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygn
Y29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MC5pZCwgJ293bmVkJzogd2Vi
a2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIu
c2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MS5pZCwg
J293bmVkJzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCkBAIC01MDgs
MjUgKzUwOCwyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9
dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21t
aXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3duZWQnOiBqc2NDb21t
aXQxLmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJlcG9zaXRvcnkuaWR9KV0pOwog
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHQubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQu
bGVuZ3RoLCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21taXQwID0gcmVzdWx0
WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0
Q29tbWl0MCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJD
b21taXRGb3JXZWJLaXRDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJL
aXRDb21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93
bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90
U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
b3duZXJDb21taXRGb3JKU0NDb21taXQwID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZXJDb21taXRGb3JKU0NDb21taXQxID0gcmVzdWx0WzNdWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQx
LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTQ4LDE4ICs1NDgsMTggQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0V2l0aEVtcHR5
T3duZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNp
b25Db21taXRXaXRoRW1wdHlPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIu
c2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXRfb3duZXJzaGlw
cycsICdvd25lcicpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgbGV0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgcmVwb3NpdG9yaWVz
ID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgbGV0IGNvbW1pdF9vd25lcnNoaXBzID0gcmVzdWx0
WzJdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1swXS5pZCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzWzBdLm5hbWUsICdPU1gnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRfb3duZXJzaGlwcy5sZW5ndGgsIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRv
cmllc1swXS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVz
WzBdLm5hbWUsICdPU1gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRf
b3duZXJzaGlwcy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcg
KzU4Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVl
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVt
VmVyc2lvbkNvbW1pdEFuZE93bmVkQ29tbWl0V2l0aFRpbWVzdGFtcCkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGlt
ZXN0YW1wKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRh
aW5UaW1lc3RhbXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1lc3RhbXAnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiB9KTsKQEAgLTY5OSwxMSArNjk5LDExIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LycpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgY29uc3QgY29t
bWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7CiAK
ICAgICAgICAgcmV0dXJuIGNvbW1pdHM7CiAgICAgfQpAQCAtNzEyLDcgKzcxMiw3IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgp
IHsKICAgICB7CiAgICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAgICAgICAg
IGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOwogICAgICAgICByZXN1bHQg
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvJyk7CiAgICAgICAgIHJldHVybiByZXN1bHRbJ2NvbW1pdHMnXTsKICAgICB9CkBAIC03MjAs
OSArNzIwLDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZh
bHNlIiwgZnVuY3Rpb24gKCkgewogICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoRXhwZWN0ZWRG
YWlsdXJlKGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpCiAgICAgewogICAgICAg
ICBjb25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyhjb21t
aXRzVXBkYXRlLCBleHBlY3RlZEZhaWx1cmVOYW1lKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFi
aWxpdHksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0
eSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51
bGwpOwogICAgIH0KIAogICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoICJNaXNzaW5nUmV2aXNpb24i
IGlmIGNvbW1pdCB1cGRhdGUgZG9lcyBub3QgaGF2ZSBjb21taXQgcmV2aXNpb24gc3BlY2lmaWVk
JywgYXN5bmMgKCkgPT4gewpAQCAtNzQ2LDMyICs3NDYsMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBh
d2FpdCBpbml0aWFsUmVwb3J0Q29tbWl0cygpOwogCiAgICAgICAgIGxldCBjb21taXRzID0gYXdh
aXQgZGF0YWJhc2Uuc2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzBdLnJlcG9ydGVkLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV0ucmVwb3J0ZWQsIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sw
XS5yZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFd
LnJlcG9ydGVkLCB0cnVlKTsKIAogICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRF
IGNvbW1pdHMgU0VUIGNvbW1pdF9yZXBvcnRlZD1mYWxzZScpOwogICAgICAgICBsZXQgcmVzdWx0
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBjb21taXRzVXBkYXRlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7CiAKICAgICAgICAgY29tbWl0cyA9IGF3YWl0IGRhdGFiYXNlLnNlbGVjdEFsbCgn
Y29tbWl0cycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFs
c2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwog
ICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSBjb21taXRzIG1lc3Nh
Z2UsIHRpbWUsIG9yZGVyLCBhdXRob3IgYW5kIHByZXZpb3VzIGNvbW1pdCIsIGFzeW5jICgpID0+
IHsKICAgICAgICAgY29uc3QgY29tbWl0cyA9IGF3YWl0IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRT
dGF0dXMoY29tbWl0c1VwZGF0ZSwgJ09LJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxp
dHksICdCcmVha3MgYnVpbGRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRl
c3RhYmlsaXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2FnZScpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdLm9yZGVyLCAyMTA5NDgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1sxXS5vcmRlciwgMjEwOTQ5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzFdLnRpbWUsIDE0ODQ4ODYyMzA2NDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1sxXS5wcmV2aW91c0NvbW1pdCwgY29tbWl0c1swXS5pZCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRzWzBdLnRlc3RhYmlsaXR5LCAnQnJlYWtzIGJ1aWxkcycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgJ0NyYXNoZXMgV2ViS2l0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdhbm90aGVyIG1l
c3NhZ2UnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwg
J2Fub3RoZXIgbWVzc2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sw
XS5hdXRob3JOYW1lLCAnQ2hyaXMgRHVtZXonKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMV0uYXV0aG9yTmFtZSwgJ1phbGFuIEJ1anRhcycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29tbWl0c1swXS5vcmRlciksIDIxMDk0OCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXRzWzFdLm9yZGVyKSwgMjEwOTQ5KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3
Nyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRpbWUsIDE0ODQ4ODYy
MzA2NDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5wcmV2aW91c0Nv
bW1pdCwgY29tbWl0c1swXS5pZCk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1yZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKaW5kZXggZDlhMmNlZDY3MTgzODBmYWI5ZTBjZDViMDU3
MDQ3MjE0YmQxMzRmYS4uNWM0NDVmZWZjMGQ3MjA0YzBiYjVhMTZlMDJjZjYxMzcyZmYzZmI2OSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVw
b3J0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC10ZXN0cy5qcwpAQCAtMTAxLDcgKzEwMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4g
YnVpbGRlciBuYW1lIGlzIG1pc3NpbmciLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQifV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJO
YW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzc2luZ0J1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDks
MTggKzEwOSwxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQifV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdC
dWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdNaXNzaW5nQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAg
aXQoInNob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gYnVpbGRlcnMiLCAoKSA9PiB7CiAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBbZW1wdHlSZXBvcnQoKV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxk
ZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
cG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM0LDU4ICsxMzQsNTggQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7fX1d
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZv
dW5kJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQn
XSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRS
dW5zJ10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0J1aWxkZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5n
dGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHJl
cG9ydCB3aXRoICJNaXNtYXRjaGluZ0NvbW1pdFRpbWUiIGlmIHRpbWUgZGlmZmVyZW5jZSBpcyBs
YXJnZXIgdGhhbiAxIHNlY29uZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkQnVp
bGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9y
dFdpdE1pc21hdGNoaW5nQ29tbWl0VGltZSgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2Zh
aWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3By
b2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Zh
aWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQo
KV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hp
bmdDb21taXRUaW1lJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRS
dW5zJ10sIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzbWF0Y2hpbmdDb21taXRUaW1lJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgIH0pOwogCiAgICAgaXQoJ3No
b3VsZCBub3QgcmVqZWN0IHJlcG9ydCBpZiB0aGUgY29tbWl0IHRpbWUgZGlmZmVyZW5jZSBpcyB3
aXRoaW4gMSBzZWNvbmQiJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVy
Rm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0
aE9uZVNlY29uZENvbW1pdFRpbWVEaWZmZXJlbmNlKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJl
cG9ydCgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxp
ZCBidWlsZGVyIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChl
bXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsK
ICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1w
dHlSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNl
KHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRD
b250ZW50WydidWlsZGVyUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRD
b250ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3Rz
J107Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRl
ZENvbnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250
ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5Nywx
OCArMTk3LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW3JlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5z
J10sIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RB
bGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRD
b250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAgICAgICAgICAg
ICBkZWxldGUgcmVwb3J0WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgcmVw
b3J0Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTYsMTkgKzIxNiwxOSBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChlbXB0eVNsYXZlUmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNs
YXZlUmVwb3J0KCldKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVu
cyddLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0
QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3VibWl0
dGVkQ29udGVudCA9IGVtcHR5U2xhdmVSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3Jl
ZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAg
ICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAg
ICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBz
dG9yZWRDb250ZW50Wyd0ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9y
ZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yMzgsOSArMjM4LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAg
ICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShy
ZXBvcnRzWzBdWydjb250ZW50J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENv
bnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10s
IGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOwogICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1
aWxkZXJQYXNzd29yZCcgaW4gc3RvcmVkQ29udGVudCkpOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTI1MSw4ICsyNTEsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRfc2xhdmVzJyk7CiAgICAgICAgIH0p
LnRoZW4oKHNsYXZlcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlc1swXVsnbmFtZSddLCBlbXB0
eVJlcG9ydCgpWydzbGF2ZU5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2xhdmVzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVz
WzBdWyduYW1lJ10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTI2Miw4ICsyNjIsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRlcnMnKTsKICAgICAg
ICAgfSkudGhlbigoYnVpbGRlcnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzWzBdWydu
YW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUn
XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzMsNyArMjczLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMn
KTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRzWzBdWyd0YWcnXSwgMTIzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZHNbMF1bJ3RhZyddLCAnMTIzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0y
ODMsNyArMjgzLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGRlbGV0
ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAg
ICBpdCgic2hvdWxkIHJlamVjdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1i
ZXIgYW5kIGJ1aWxkIHRhZyB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLCBhc3luYyAoKSA9PiB7CkBA
IC0yOTEsNyArMjkxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICBjb25zdCByZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICByZXBvcnQuYnVp
bGROdW1iZXIgPSAnNDU2JzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlz
bWF0Y2gnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0J1aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxkIGFj
Y2VwdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRh
ZyB3aXRoIGlkZW50aWNhbCB2YWx1ZSIsIGFzeW5jICgpID0+IHsKQEAgLTI5OSw3ICsyOTksNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJl
cG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9y
dC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KQogCiAgICAgaXQoInNo
b3VsZCBhZGQgdGhlIHBsYXRmb3JtIiwgKCkgPT4gewpAQCAtMzA4LDggKzMwOCw4IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncGxh
dGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3JtcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVz
ID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsxXTsKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9ucyA9IHJlc3VsdFsyXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSku
c29ydCgpLCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBb
J1dlYktpdCcsICdtYWNPUyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxh
dGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBj
b21taXRzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNS
ZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2Nv
bW1pdF9idWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVs
YXRpb25zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRD
b21taXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydi
dWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRD
b21taXRzUmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CiAKICAgICAgICAgICAgIGxldCBy
ZXBvc2l0b3J5SWRUb05hbWUgPSB7fTsKICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkg
b2YgcmVwb3NpdG9yaWVzKQpAQCAtMzQ0LDkgKzM0NCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRz
KQogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5
SWRUb05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNp
b24nXSwgJzEwLjguMiAxMkM2MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktp
dCddWyd0aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIg
MTJDNjAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRv
UmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQn
XVsndGltZSddLnRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDIt
MDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2
MCwxNiArMzYwLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM4MiwxNiArMzgyLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlS
ZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vj
b25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAg
ICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3Ro
LCAyKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQxNSwxNyArNDE1LDE3IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxk
ZXJGb3JSZXBvcnQoZmlyc3RSZXBvcnQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJl
cG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSku
dGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW3NlY29uZFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21h
dGNoaW5nQ29tbWl0UmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFJldmlzaW9uJyk7CiAgICAgICAg
ICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE0MTk3NycpID49
IDApOwogICAgICAgICAgICAgYXNzZXJ0KEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9m
KCcxNTAwMDAnKSA+PSAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
cHJvY2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTQ4Nyw4ICs0ODcsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgZnVuY3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMo
cmVwb3J0KQogICAgIHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFu
ZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydCkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgICAgfSk7CiAgICAg
fQpAQCAtNTExLDcgKzUxMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3Jz
KHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAg
ICAgICAgfSkudGhlbigodGVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGVzdHMubWFwKChyb3cpID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RzLm1hcCgocm93KSA9PiB7IHJldHVy
biByb3dbJ25hbWUnXTsgfSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScs
ICdEdW1teUJlbmNobWFyaycsICdEdW1teVBhZ2VMb2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1Ry
YXZlcnNlTm9kZXMnLCAnYXBwbGUuY29tJywgJ3dlYmtpdC5vcmcnXSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtNTI2LDE0ICs1MjYsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rl
c3RfbmFtZSddXSA9IG5ldyBBcnJheTsKICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmlj
c1tyb3dbJ3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVn
YXRvcl9uYW1lJ11dKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBb
WydUaW1lJywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyaydd
LCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRo
bWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmlj
c1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBu
dWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1sn
YXBwbGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NT
UyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGVzdE5hbWVUb01ldHJpY3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0aG1ldGlj
J10sIFsnVGltZScsICdHZW9tZXRyaWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlCZW5jaG1hcmsnXSwgW1snVGltZScsICdB
cml0aG1ldGljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5h
bWVUb01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11d
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3Nb
J01vZGlmeU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snVHJhdmVyc2VOb2RlcyddLCBbWydUaW1l
JywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1sn
VGltZScsIG51bGxdXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDIsNyArNTQyLDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21l
dHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMKICAgICAgICAgICAgIFdIRVJFIHRlc3RfaWQgPSBt
ZXRyaWNfdGVzdCBBTkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYwogICAgICAgICAgICAgQU5E
IHRlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBtZXRyaWNO
YW1lXSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdC5yb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdC5yb3dzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
b3dzWzBdOwogICAgICAgICAgICAgfSk7CiAgICAgfQpAQCAtNTY1LDIwICs1NjUsMjAgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAg
ICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6
IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTAwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAg
ICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTEw
LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTIwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAg
ICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTog
NTMwLCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gNTAw
ICsgNTEwICsgNTIwICsgNTMwOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9j
YWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAq
IDUyMCArIDUzMCAqIDUzMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydt
ZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsg
NTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKICAgICAgICAgICAgIHJldHVybiBm
ZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47
CiAgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBy
dW5JZCwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2ZV90aW1lOiBudWxs
fSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1
ZTogMTAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDIsIGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
QEAgLTYwMCw5ICs2MDAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlOwogICAgICAgICAgICAgICAgIHNxdWFyZVN1
bSArPSB2YWx1ZSAqIHZhbHVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJl
c3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTYxMywxNSArNjEzLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBj
b25zdCBydW5JZCA9IHJlc3VsdC5ydW5bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAgKyAxMTApIC8gMiwgKDUyMCArIDEyMCkg
LyAyLCAoNTMwICsgMTMwKSAvIDJdOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwg
Z3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1swXSwgcmVsYXRpdmVfdGltZTogbnVs
bH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwg
dmFsdWU6IGV4cGVjdGVkVmFsdWVzWzFdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0
ZWRWYWx1ZXNbMl0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46
IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1szXSwg
cmVsYXRpdmVfdGltZTogbnVsbH1dKTsKICAgICAgICAgICAgIGNvbnN0IHN1bSA9IGV4cGVjdGVk
VmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7
IH0sIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0g
LyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1
ZSkgeyByZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9u
cy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hl
J10sIHN1bSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3Vt
X2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyBy
ZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtNjQyLDEwICs2NDIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0
ZWRWYWx1ZTsKICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7cnVuOiBy
dW5JZCwgb3JkZXI6IGksIGdyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwgdmFsdWU6IGV4cGVjdGVk
VmFsdWUsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3Vs
dC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1f
Y2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUn
XSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwMywxMCAr
NzAzLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1ZTsKICAgICAgICAg
ICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6
IE1hdGguZmxvb3IoaSAvIDIpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOwogICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJh
dGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21l
YW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRl
cmF0aW9ucy5sZW5ndGgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2Fj
aGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9j
YWNoZSddLCBzcXVhcmVTdW0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRl
c3RzIHdpdGhvdXQgYW55IG1ldHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7
CkBAIC03MzcsMjcgKzczNywyNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIGNvbnN0IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0
ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBs
ZXQgcnVuID0gYmVuY2htYXJrUmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJl
bmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91
cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsK
LSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwg
e3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVs
YXRpdmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jl
c3VsdC5pdGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMg
KyAxMykgKyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBn
cm91cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSAr
IDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6
IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTog
bnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5p
dGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykg
KyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBn
cm91cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9
KTsKIAogICAgICAgICBjb25zdCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1
Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qg
c3F1YXJlU3VtID0gYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93
KSA9PiB0b3RhbCArIHJvdy52YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIHNxdWFyZVN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1
bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNx
dWFyZVN1bSk7CiAKICAgICAgICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRl
c3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdBU3ViVGVzdCcsICdUaW1lJyk7CiAgICAgICAgIHJ1
biA9IHNvbWVUZXN0UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21l
VGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
c29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAge3J1biwgb3JkZXI6IDAs
IGdyb3VwOiBudWxsLCB2YWx1ZTogMzEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAg
ICAge3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnbWVhbl9jYWNoZSddLCAzMS41KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0
UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVU
ZXN0UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUn
XSwgMzEuNSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5b
J3N1bV9jYWNoZSddLCA2Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJl
c3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMzEgKiAzMSArIDMyICogMzIpOwogICAgIH0p
OwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3RzIG1pc3NpbmcgdGhlIG1hdGNoaW5nIG1l
dHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03OTIsMjcgKzc5Miwy
NyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0
IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMo
J0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVuID0gYmVuY2htYXJr
UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVy
YXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSAr
IDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdy
b3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJd
LCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgo
NCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0s
IHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJl
bGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5j
aG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1
ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVu
LCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgo
NCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAogICAgICAgICBjb25z
dCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+
IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJlU3VtID0gYmVuY2ht
YXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCArIHJvdy52
YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1
bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVu
Y2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hl
J10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0
LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5j
aG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAKICAgICAg
ICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9y
TWV0cmljKCdBdXhpbGlhcnlSZXN1bHQnLCAnQWxsb2NhdGlvbnMnKTsKICAgICAgICAgcnVuID0g
c29tZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0
UmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21l
VGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiAzMSArIDQxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgIHtydW4sIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDMyICsgNDIsIHJlbGF0aXZl
X3RpbWU6IG51bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0
UmVzdWx0LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQx
ICsgMzIgKyA0Mik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQy
LCAyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21l
YW5fY2FjaGUnXSwgKDMxICsgNDEgKyAzMiArIDQyKSAvIDIpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgMzEgKyA0MSArIDMyICsg
NDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVh
cmVfc3VtX2NhY2hlJ10sIE1hdGgucG93KDMxICsgNDEsIDIpICsgTWF0aC5wb3coMzIgKyA0Miwg
MikpOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2hlbiB0aGVy
ZSBhcmUgbW9yZSB0aGFuIG9uZSBub24tbWF0Y2hpbmcgYWdncmVnYXRvcnMgaW4gYSBzdWJ0ZXN0
IiwgYXN5bmMgKCkgPT4gewpAQCAtODQ4LDcgKzg0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH19OwogCiAgICAgICAgIGNvbnN0IHJlc3Bv
bnNlID0gYXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVz
cG9uc2UocmVwb3J0V2l0aEFtYmlnaW91c0FnZ3JlZ2F0b3JzKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRl
c3QnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05v
TWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsKICAgICB9KTsKIAogICAgIGZ1bmN0
aW9uIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKQpAQCAtODkyLDE2ICs4OTIsMTYgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0
QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFt
ZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuc2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGxldCBuZXdSZXBv
cnQgPSByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCk7CiAgICAgICAgICAgICBuZXdSZXBvcnQu
YnVpbGRUYWcgPSAiMTI1IjsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZFRpbWUgPSAiMjAx
My0wMi0yOFQxMjoxNzoyNC4xIjsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbbmV3UmVwb3J0XSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtOTMwLDE3ICs5MzAsMTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMo
J3Rlc3QxJywgJ0NvbWJpbmVkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAg
ICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ21lYW5fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzdW1fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVf
c3VtX2NhY2hlJ10sIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnaXRl
cmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ3N1bV9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVu
SXRlcmF0aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtOTYyLDEzICs5NjIsMTMgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlv
bnNGb3JNZXRyaWMoJ3Rlc3QnLCAnRnJhbWVSYXRlJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkp
OwogCiAgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVu
OiBydW5JZCwgb3JkZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNCwgcmVsYXRpdmVfdGltZTog
MH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwg
dmFsdWU6IDUsIHJlbGF0aXZlX3RpbWU6IDEwMH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVu
SWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDMsIHJlbGF0aXZlX3RpbWU6IDIwNX1d
KTsKQEAgLTEwMDYsNyArMTAwNiw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0c1VwZGF0aW5n
RGlmZmVyZW50VGVzdHNbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRp
bmdEaWZmZXJlbnRUZXN0c1swXV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAg
ICAgfSkudGhlbigob3JpZ2luYWxDb25maWcpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0
aW5nRGlmZmVyZW50VGVzdHNbMl1dKS50aGVuKCgpID0+IHsKQEAgLTEwMjMsMTYgKzEwMjMsMTYg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENv
bmZpZykgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXV0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNo
VGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICAgICAgfSkudGhlbigoY29uZmln
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29uZmlnWydjb25maWdfcnVu
c19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVu
c19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29u
ZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlm
aWVkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTA2OSw3
ICsxMDY5LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRB
Z2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDc3LDIy
ICsxMDc3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5k
QWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTIzJ30pOwogICAgICAgICB9KS50
aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygn
cGxhdGZvcm1zJywge25hbWU6ICdNb3VudGFpbiBMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCBbYW5vdGhlclJlcG9ydFdpdGhTYW1lQnVpbGRSZXF1ZXN0XSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnRmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxk
UmVxdWVzdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTI0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZvcm1zJywg
e25hbWU6ICdMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRl
c3QtZ3JvdXBzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
dGVzdC1ncm91cHMuanMKaW5kZXggYzAxOWE0MmRiMTcyNDEyMTkzMjU4ODI1MGViOTM1OTAxMTFk
OTRmOS4uMTYyOWQ0YmIwYWYxZmY0YjJkNjkzYzFjYTc1ZGY3MDdlODA4YmJjYSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanMKQEAgLTExLDM5ICsxMSwzOSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcycs
IGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3It
bm90aWZpY2F0aW9uJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGdpdmUgYW4gZW1wdHkg
bGlzdCBpZiB0aGVyZSBpcyBub3QgZXhpc3RpbmcgdGVzdCBncm91cCBhdCBhbGwnLCBhc3luYyAo
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24n
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmls
ZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBh
IHRlc3QgZ3JvdXAgd2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxlYXN0IG9uZSBidWlsZCBy
ZXF1ZXN0JywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAn
Y29tcGxldGVkJywgJ2NhbmNlbGVkJ10pOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFk
eS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5z
dGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RH
cm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJl
cXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0
U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWls
ZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgbGlzdCBhbGwgdGVzdCBncm91cHMgd2l0aCBwZW5kaW5nIG5vdGlmaWNhdGlvbicsIGFz
eW5jICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcs
ICdjb21wbGV0ZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3Rp
ZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQu
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVuLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywg
JzcwMicsICc3MDMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5j
b21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBn
cm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRob3Is
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5oaWRkZW4s
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmVlZHNO
b3RpZmljYXRpb24sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3
MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5jb21t
aXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCBub3QgbGlzdCBoaWRkZW4gdGVzdCBncm91cCcsIGFzeW5jICgpID0+
IHsKQEAgLTUxLDEyICs1MSwxMiBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNl
LCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsK
ICAgICAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9n
cm91cHMgU0VUIHRlc3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYw
MCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVz
LCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgdGVzdCBn
cm91cHMgd2l0aG91dCBuZWVkcyBub3RpZmljYXRpb24gZmxhZycsIGFzeW5jICgpID0+IHsKQEAg
LTY0LDI0ICs2NCwyNCBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2Nv
bXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAg
ICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMg
U0VUIHRlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gPSBGQUxTRSBXSEVSRSB0ZXN0Z3JvdXBf
aWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNh
dGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRz
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2Fk
ZWRGaWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0
IGEgdGVzdCBncm91cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVkIGJ1aWxkIHJlcXVlc3RzJywg
YXN5bmMgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRh
dGFiYXNlKCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFz
ZSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdydW5uaW5nJ10pOwog
ICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzgsMTggKzEzOCwxOCBAQCBkZXNjcmliZSgn
L2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tE
YXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29t
cGxldGVkJywgJ2ZhaWxlZCcsICdjb21wbGV0ZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91
cHMgU0VUIHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0
Z3JvdXBfaWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJl
cXVlc3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBjb250ZW50LnRl
c3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmlkLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC50YXNrLCA1MDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAudGFzayksIDUw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21l
IHRlc3QgZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YXV0aG9yLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLmhpZGRlbik7
CiAgICAgICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAg
ICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEn
LCAnNzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3Vw
LmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMs
IFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQw
MiddKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdy
b3VwcyBtYXkgbmVlZCBhZGRpdGlvbmFsIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4gewpA
QCAtMTU4LDMxICsxNTgsMzEgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQ
REFURSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVx
dWVzdHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91
cHMgU0VUIHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0
Z3JvdXBfaWQgPSA2MDEnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJl
cXVlc3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3Jv
dXBzLmxlbmd0aCwgMik7CiAKICAgICAgICAgICAgIGNvbnN0IG9uZVRlc3RHcm91cCA9IGNvbnRl
bnQudGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAu
aWQsIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLnRhc2ssIDUw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLm5hbWUsICdzb21lIHRl
c3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuYXV0aG9y
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvbmVUZXN0
R3JvdXAuaWQpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9uZVRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbmVUZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFvbmVUZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayhv
bmVUZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9u
ZVRlc3RHcm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvbmVUZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMn
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRz
LCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvbmVUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcw
MCcsJzcwMScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChvbmVUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDIn
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IGFub3RoZXJUZXN0R3JvdXAgPSBjb250ZW50LnRlc3RH
cm91cHNbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5pZCwg
NjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLnRhc2ssIDUw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5v
dGhlciB0ZXN0IGdyb3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RH
cm91cC5hdXRob3IsICd3ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChhbm90aGVyVGVzdEdyb3VwLmlkKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAubmFtZSwgJ2Fub3RoZXIg
dGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0
R3JvdXAuYXV0aG9yLCAnd2Via2l0Jyk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWFub3RoZXJU
ZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RHcm91
cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2soYW5vdGhlclRlc3RH
cm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyVGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGFub3RoZXJUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcx
MyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21t
aXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMsIFsnNzEwJywnNzExJywgJzcxMicsICc3MTMnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAn
NDAyJywgJzQwMScsICc0MDInXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3Rz
LmpzCmluZGV4IGZmZjJhY2YxZmI2MzlhYjNlOThhMmIxYjdiM2Q0MDZkZjFhY2M3ZTEuLmJiZjkz
MzY2NTBlNWVhNDE1N2RmZmE0ZDk2MmViYjk1OTA0N2U5NDAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0
cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRh
dGUtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTMwLDE0ICszMCwxNCBAQCBkZXNjcmliZSgnL2Fw
aS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCBy
ZWplY3Qgd2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUg
YXJlIG5vIHNsYXZlcycsICgpID0+IHsKICAgICAgICAgY29uc3QgdXBkYXRlID0ge3NsYXZlTmFt
ZTogZW1wdHlVcGRhdGUuc2xhdmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiBlbXB0eVVwZGF0ZS5zbGF2
ZVBhc3N3b3JkfTsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5v
dEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnU2xhdmVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgsNyAr
NDgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0ge3NsYXZlTmFtZTogZW1wdHlVcGRhdGUuc2xh
dmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiAnYmFkUGFzc3dvcmQnfTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNTgsNyArNTgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzMsMTAgKzczLDEwIEBAIGRlc2Ny
aWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxs
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4o
KHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtODcsMTIgKzg3LDEyIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHNtYWxsVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVz
dCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBzbWFs
bFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF1bJ3Rlc3QnXSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3Rl
c3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsncGxhdGZvcm0n
XSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTA4LDcgKzEwOCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3Vy
YXRpb25FbnRyeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRDb25maWd1cmF0aW9uRW50cnknKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0
b3J5R3JvdXBzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
R3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNjEsNyArMTYxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3Vw
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcz
LDcgKzE3Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVw
ZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NSw3ICsx
ODUsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5RGF0YScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnRHVwbGljYXRlUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0R1cGxpY2F0ZVJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTIyMSwxOCArMjIxLDE4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKSwgZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpXSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCBy
ZXBvc2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bmZpZ3VyYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmln
dXJhdGlvbnNbMF1bJ3Rlc3QnXSwgTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSwgTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1
cmF0aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJp
Z2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0Rh
dGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1
Myw4ICsyNTMsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRp
YWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlH
cm91cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0
aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3Vy
YXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBA
IC0yNzUsOCArMjc1LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBp
bml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0
b3J5R3JvdXBzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmln
dXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25m
aWd1cmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKICAgICB9KTsK
IApAQCAtMjkwLDE0ICsyOTAsMTQgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50
aGVuKChyZXBvc2l0b3J5R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUn
XSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gZGIuc2Vs
ZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChyZXBvc2l0b3J5
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1b
J25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydu
YW1lJ10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3VwIGlzIGF3ZXNvbWUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzOSArMzQ0LDM5IEBAIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBj
b25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5
TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAg
ICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNP
UycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
LmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlv
bigpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1Bh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFu
ZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlv
bigpLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVz
KCksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0
Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZl
dGNoKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9
IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGVSZXBvc2l0
b3J5R3JvdXAuYWxsKCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5m
aW5kVG9wTGV2ZWxCeU5hbWUoJ1dlYktpdCcpOwogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBS
ZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnbWFjT1MnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24o
KSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Vi
a2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21S
b290cygpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFu
ZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3Rz
KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFs
c2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XS5uYW1lKCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3Vz
dG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFs
c2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0zOTUsMjkgKzM5NSwyOSBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
J25hbWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3Np
dG9yeScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29u
c3QgW3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJh
YmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1l
J10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxl
SWQoKSk7CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAog
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5
R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5
cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBb
TW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCldKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3Jp
ZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIu
c2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICduYW1lJyksIGRiLnNl
bGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtyZXBvc2l0b3J5
R3JvdXBzLCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbEdyb3Vwcyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0b3JpZXNCeUdy
b3VwKHJlcG9zaXRvcmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2JqZWN0LmtleXMo
cmVwb3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tE
YXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgp
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5p
dGlhbEdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVwb3NpdG9yaWVzQnlH
cm91cCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVw
b3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1hY29z
UmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlh
bEdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC00MzYsMTcgKzQzNiwxNyBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
J25hbWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3Np
dG9yeScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29u
c3QgW3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJp
Z2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJh
YmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1l
J10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxl
SWQoKSk7CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAog
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5
R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5
cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBb
TW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCldKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3Jp
ZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFty
ZXBvc2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCld
KTsKICAgICAgICAgICAgIGluaXRpYWxSZXBvc2l0b3JpZXMgPSByZXBvc2l0b3JpZXM7CiAKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKQEAgLTQ1NSwxMyAr
NDU1LDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3Jl
cG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9ubHknKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBp
bml0aWFsR3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10s
IGluaXRpYWxHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdn
ZXJhYmxlJ10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLCBpbml0aWFsUmVw
b3NpdG9yaWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9y
aWVzLCBpbml0aWFsUmVwb3NpdG9yaWVzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1y
b290LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
dXBsb2FkLXJvb3QtdGVzdHMuanMKaW5kZXggYThiMTkxZDc1ZmMxYzgwMTY2YmEzNmUxMzUzMzVi
MDEwNjE4ODlmOC4uNDk4MmYwOThiZTgxNzY1OTU3ZmExNTIzY2I3ZmRhYTNkNjcwNzVmNCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2Fk
LXJvb3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVj
dCB3aGVuIHJvb3QgZmlsZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywge30p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJv
b3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVt
cG9yYXJ5RmlsZSgnc29tZS5kYXQnLCAnc29tZSBjb250ZW50JykudGhlbigocm9vdEZpbGUpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlKSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnNsYXZlTmFtZTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdT
bGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NDksNyArMTQ5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZGVyTmFtZTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZGVyTmFtZScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRCdWlsZGVyTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU5LDcgKzE1
OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVp
bGROdW1iZXIgPSAnMWFiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VS
ZXBvcnQocm9vdEZpbGUpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnNDU2JzsKICAg
ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RG
b3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVy
VGFnTWlzbWF0Y2gnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgYWNjZXB0IGlmIGJvdGgg
YnVpbGQgbnVtYmVyIGFuZCBidWlsZCB0YWcgZXhpc3RzIHdpdGggc2FtZSB2YWx1ZScsIGFzeW5j
ICgpID0+IHsKQEAgLTE4OCwzOSArMTg4LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogCiAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5o
YXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGNvbnN0IHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAg
ICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0Lmlk
KCksIFsnV2ViS2l0J10pOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVp
bGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pOwogCiAgICAgaXQo
J3Nob3VsZCBjb250aW51ZSB3b3JraW5nIHdpdGggYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRhZyBp
cyBub3QgcHJlc2VudCcsIGFzeW5jICgpID0+IHsKQEAgLTIyOSw0MCArMjI5LDQwIEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3du
ZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlk
KCkpOwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CiAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVk
LWpzYy02MTYxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CiAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVk
LWpzYy05MTkxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5k
Q3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290
RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICBkZWxldGUgcmVw
b3J0LmJ1aWxkVGFnOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnMTIzJzsKICAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3Jt
RGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJlamVj
dCB3aGVuIGJ1aWxkIHRpbWUgaXMgbWlzc2luZycsICgpID0+IHsKQEAgLTI3MSw3ICsyNzEsNyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBkZWxldGUgcmVwb3J0LmJ1aWxkVGltZTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxk
VGltZSA9ICdXZWQsIDEwIE1heSAyMDE3IDAzOjAyOjMwIEdNVCc7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZEJ1aWxkVGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjkxLDcgKzI5MSw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGRlbGV0ZSByZXBvcnQuYnVpbGRSZXF1ZXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJl
cXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBv
cnQuYnVpbGRSZXF1ZXN0ID0gJ2FiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVz
dCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlQW5kQ3JlYXRlUm9vdEZpbGUoKS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkQnVpbGRSZXF1ZXN0VHlwZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zMTksNyArMzE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJv
b3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5yZXBvc2l0b3J5
TGlzdDsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3Jt
RGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzI5LDcgKzMyOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1y
b290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9
ICdhK2InOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZv
cm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0zNDcsNjYgKzM0Nyw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3Vw
OwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJv
b3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RG
aWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywg
cmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25z
dCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAg
ICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRl
ZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0
LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAg
ICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRS
ZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1
ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxs
Um9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5Rmls
ZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAg
ICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9
IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9y
eVdyb25nS2V5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0s
ICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEtleUZvclJlcG9zaXRvcnknKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5
Rm9yUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDI0LDY2ICs0MjQs
NjYgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAg
ICAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290Rmls
ZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3Qg
cmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0
J10pOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1E
YXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNl
Wyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmls
ZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3
RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCks
ICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9v
dC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
ZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBv
cmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0ph
dmFTY3JpcHQgQ29udGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAg
ICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVl
c3QuaWQoKSwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQyJywgb3duZWRSZXBvc2l0b3J5OiAn
SmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9h
ZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTAxLDc5
ICs1MDEsNzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewog
CiAgICAgICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
JzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVS
b290RmlsZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpKSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3
RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9v
dCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwg
dXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRS
b290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
bG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3Qu
dGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxk
UmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCks
ICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5y
ZXBvc2l0b3J5TGlzdCA9ICciYSInOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlM
aXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MDEsOCArNjAxLDggQEAgZGVzY3Jp
YmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0
LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIkJhZFJlcG9zaXRvcnlOYW1lIl0nOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBp
L3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJl
cG9zaXRvcnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9y
eU5hbWUnXSwgJ0JhZFJlcG9zaXRvcnlOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ0JhZFJl
cG9zaXRvcnlOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MTYsOCArNjE2LDgg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgcmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIm1hY09TIl0nOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9z
aXRvcnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5h
bWUnXSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ21hY09TJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC02MzUsMzQgKzYzNSwzNCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwog
ICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CkBAIC02NzAsNDUgKzY3MCw0NSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9v
dC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAn
WyJXZWJLaXQiLCAiU2hhcmVkIl0nOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290
UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVk
Um9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5p
ZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2Fk
ZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2Vy
Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVl
c3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1
aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxk
UmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRS
b290KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9hZGVkUm9v
dCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgd2Via2l0UGF0Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVk
KSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBsb2FkZWRSb290
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCks
ICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzI3LDg3ICs3MjcsODcgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0
R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAg
ICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAg
ICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFr
ZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAg
ICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZp
bGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5n
bGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgp
LCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJl
cXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBk
YXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5h
bGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFr
ZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29u
dGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tv
d25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29y
ZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1
cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAg
ICAganNjUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3
RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUm9vdC5maWxlbmFtZSgpLCAnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29y
ZS1Sb290LmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
YnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3Rd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZGVkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCmluZGV4IGJlZGM1NDc3ZDU1YTRjNzQ3
YjIxZDcwOTQ4NTUyZTM1N2Y0NjJhOTQuLjAyZTFkODlmY2MxZDIyZWE2ODZhY2VkMTYwMjI5MjMy
MWZkZGQ4ZDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcwpAQCAtNywxOSArNywx
OCBAQCBnbG9iYWwuRm9ybURhdGEgPSByZXF1aXJlKCdmb3JtLWRhdGEnKTsKIAogY29uc3QgVGVz
dFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBU
ZW1wb3JhcnlGaWxlID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMnKS5U
ZW1wb3JhcnlGaWxlOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogCiBkZXNjcmli
ZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91dCg1
MDAwKTsKLSAgICBUZXN0U2VydmVyLmluamVjdCgpOwotCisgICAgcHJlcGFyZVNlcnZlclRlc3Qo
dGhpcyk7CiAgICAgVGVtcG9yYXJ5RmlsZS5pbmplY3QoKTsKIAogICAgIGl0KCdzaG91bGQgcmV0
dXJuICJJbnZhbGlkQXJndW1lbnRzIiB3aGVuIG5laXRoZXIgcGF0aCBub3Igc2hhMjU2IHF1ZXJ5
IGlzIHNldCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlJykudGhlbigoY29udGVudCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52
YWxpZEFyZ3VtZW50cycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLycpOwogICAgICAgICB9KS50aGVuKChjb250
ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJ
bnZhbGlkQXJndW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yNyw3ICsyNiw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvdXBsb2FkZWQtZmlsZS8xJykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zNSw3ICszNCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvdXBsb2FkZWQtZmlsZS9mb28nKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZp
bGUnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRw
UmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7dXBsb2FkZWRGaWxlWydpZCddfWAsICdHRVQn
LCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdz
b21lIGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY4LDEzICs2NywxMyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQo
J3Nob3VsZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZSBzcGVjaWZpZWQgU0hBMjU2IGlzIGlu
dmFsaWQnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PWFiYycpLnRoZW4oKGNvbnRlbnQpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5k
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdO
b3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJu
ICJOb3RGb3VuZCIgd2hlbiB0aGVyZSBpcyBubyBmaWxlIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQg
U0hBMjU2ICcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9NTI1NmVjMThmMTE2MjQwMjU5MDVk
MDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpLnRoZW4oKGNvbnRl
bnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05v
dEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODYsNyArODUsNyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxl
Lz9zaGEyNTY9JHt1cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUs
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHVwbG9hZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTk3LDExICs5NiwxMSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRl
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewog
ICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAg
ICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGIuY29ubmVjdCgpLnRoZW4oKCkgPT4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9m
aWxlcyBTRVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KGBVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VUIGZp
bGVfZGVsZXRlZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJ2ApOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oYC9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRGaWxlWydzaGEyNTYn
XX1gKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMTcsMTYgKzExNiwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRl
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3Bv
bnNlLmhlYWRlcnM7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5p
bmNsdWRlcygnZXRhZycpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydldGFn
J10sIHVwbG9hZGVkRmlsZVsnc2hhMjU2J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGhlYWRlcnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CiAKICAgICAgICAg
ICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnYWNjZXB0LXJhbmdlcycp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydhY2NlcHQtcmFuZ2VzJ10sICdi
eXRlcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1y
YW5nZXMnXSwgJ2J5dGVzJyk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFk
ZXJzKS5pbmNsdWRlcygnY29udGVudC1kaXNwb3NpdGlvbicpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxl
bmFtZSo9dXRmLTgnJ3NvbWUuZGF0YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVudDsgZmlsZW5hbWUqPXV0
Zi04Jydzb21lLmRhdGApOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVy
cykuaW5jbHVkZXMoJ2NvbnRlbnQtbGVuZ3RoJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCB1cGxv
YWRlZEZpbGVbJ3NpemUnXSk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFk
ZXJzKS5pbmNsdWRlcygnbGFzdC1tb2RpZmllZCcpKTsKICAgICAgICAgfSk7CkBAIC0xNDQsNyAr
MTQzLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGxhc3RNb2RpZmllZCA9IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQn
XTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVx
dWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ10s
IGxhc3RNb2RpZmllZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsOSArMTU1LDkg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91
cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1Jhbmdl
JzogJ2J5dGVzPTUtJ319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwg
J2J5dGVzIDUtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZS5yZXNwb25zZVRleHQsICdjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NzAsOSArMTY5LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVx
dWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFk
ZXJzOiB7J1JhbmdlJzogJ2J5dGVzPTQtOSd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQtOS8x
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJyBj
b250ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVu
dC1yYW5nZSddLCAnYnl0ZXMgNC05LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnIGNvbnRlJyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xODQsOSArMTgzLDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNl
bmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51
bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS00J319KTsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFk
ZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0
ZXMgOC0xMS8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ3RlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNb
J2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDgtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICd0ZW50Jyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xOTgsOSArMTk3LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51
bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS0xMDAnfX0pOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3Bv
bnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdl
J10sICdieXRlcyAwLTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyAwLTExLzEyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBj
b250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjA5LDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9h
ZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVs
bCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9MTItJ319KQotICAgICAgICAgICAg
ICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyks
IChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVycm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAu
dGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJy
b3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0yMjAsNyArMjE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3Vw
bG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2Un
OiAnYnl0ZXM9Mi0xJ319KQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVy
cm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMzIsMTUgKzIzMSwxNSBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQt
ZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3Nv
bWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lk
fWAsICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1Jhbmdl
JzogJ2J5dGVzID0gOS0xMCcsICdJZi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9k
aWZpZWQnXX19KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEw
LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VU
ZXh0LCAnZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1MiwxNSArMjUxLDE1IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1m
aWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29t
ZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5y
ZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9
YCwgJ0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2Un
OiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1snZXRhZyddfX0p
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVh
ZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydj
b250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjcyLDEzICsyNzEsMTMgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVz
cG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1g
LCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywg
bnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICB7J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJ
Zi1SYW5nZSc6ICdmb28nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwg
J3NvbWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAzLDcgKzMwMiw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVuZEJ5dGUgLSBzdGFydEJ5dGUgKyAxOyBpKyspIHsK
ICAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWwgPSByZXNwb25zZUJ1ZmZlcltpXTsKICAgICAg
ICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGJ1ZmZlcltzdGFydEJ5dGUgKyBpXTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGlu
ZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdv
dCAke2FjdHVhbH1gKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0dWFs
LCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGluZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4g
RXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCkBAIC0zMTUsOCArMzE0LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6
IGBieXRlcyA9ICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9YH0sIHJlc3BvbnNlSGFuZGxlcn0pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVy
cyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250
ZW50LXJhbmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5n
ZSddLCBgYnl0ZXMgJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxlU2l6ZX1gKTsKICAgICAg
ICAgICAgIHZlcmlmeUJ1ZmZlcigpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRk
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXgg
MTRlOTQ1NmQyZTY3YTVjNzEwMDEyMGIxNTQ2NDgwYzI3MTZkZWJmNC4uYjEwNzQ5YTBkMWU5MDM4
ZTFmYjJlOTEzOTM0YTYzYWEyMjUwZGQ1ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVz
dHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5
bmMgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsi
MTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClb
MF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9
IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQn
XX0pOwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewog
ICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10s
CkBAIC0xNDAsMjMgKzE0MCwyMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2FkZC1idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHsnZ3JvdXAnOiBpbnNlcnRlZEdyb3VwSWQs
IG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBz
ID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVx
dWVzdHMoKSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3Jl
UmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7CiAKICAgICAgICAg
YXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywge2dy
b3VwOiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSk7CiAKICAgICAgICAgY29uc3QgdXBk
YXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgp
LCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0
aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3Jl
UmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh1cGRh
dGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpKSwgNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9uQ291bnQo
KSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1
ZXN0cygpLCB0cnVlKTsKICAgICAgICAgZm9yIChjb25zdCBjb21taXRTZXQgb2YgdXBkYXRlZEdy
b3Vwc1swXS5yZXF1ZXN0ZWRDb21taXRTZXRzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdHMgPSB1cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RzRm9yQ29tbWl0U2V0KGNvbW1pdFNl
dCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsK
ICAgICAgICAgfQogICAgIH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBj
b25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0
YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlu
aXRpYWxSZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChncm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgp
KSwgMik7CiAgICAgICAgIGF3YWl0IGdyb3VwLnVwZGF0ZUhpZGRlbkZsYWcodHJ1ZSk7CiAKICAg
ICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFz
eW5jICgpID0+IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1
ZXN0cycsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pKQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMK
aW5kZXggOTk2ZDJkZDMyZDc2YmE1NDc1M2U2MzlmZjhhZjliMzU2ZjI3OTdkOC4uMGU2ODYxYjdl
YzZiZWJlNTUyYTY0ZDg3M2ZlNTc2NmI1ZDExNzQyZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMt
dGFzay10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0xMTMsNyAr
MTEzLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3
aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge30pLnRoZW4oKGNvbnRl
bnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnTWlzc2luZ05hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ01pc3NpbmdOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMjEsNyAr
MTIxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3
aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIGVu
ZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDF9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRFbmRSdW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ludmFsaWRFbmRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzNyw3ICsx
MzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3Rh
cnRSdW46ICJmb28iLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFy
dFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0
YXJ0UnVuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIg
cHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBl
bmRSdW46ICJmb28ifSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGkn
LCBmdW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMTAwLCBlbmRSdW46IDF9
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTY4LDcgKzE2OCw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBi
cm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3Rh
cnRSdW46IDEsIGVuZFJ1bjogMTAwfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJ
bnZhbGlkRW5kUnVuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnSW52YWxpZEVuZFJ1bicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtMTgwLDcgKzE4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2sn
LCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDEsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46
IDJ9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNoJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlz
bWF0Y2gnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIxMiwy
MCArMjEyLDIwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRh
c2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNv
bmZpZ1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVu
cycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVu
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMt
dGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjog
dGVzdFJ1bnNbMV1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10p
OwogICAgICAgICB9KS50aGVuKCh0YXNrKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5uYW1lKCksICdoaScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
bmFtZSgpLCAnaGknKTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNo
YW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9y
bSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCks
ICd0ZXN0MScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjQ0LDIyICsyNDQsMjIgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dz
ZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzog
Y29uZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6
ICdoaScsIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsn
aWQnXX0pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0p
LnRoZW4oKHRhc2spID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwg
J2hpJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdoaScp
OwogICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4
ZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwg
J3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygp
LnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LnN0YXJ0VGltZSgpLCAxNDQ1OTYwMDkxMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLmVuZFRpbWUoKSwgMTQ0NTk2Njg2MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5
NjAwOTEwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suZW5kVGltZSgp
LCAxNDQ1OTY2ODYxMDAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MCw3ICsyODAs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29u
ZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBz
dGFydElkID0gdGVzdFJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBlbmRJZCA9IHRlc3RSdW5z
WzFdWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBl
bmRSdW46IGVuZElkfSk7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46
IGVuZElkfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFu
YWx5c2lzVGFzaycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYW5hbHlzaXNfdGFza3MnKTsKICAgICAg
ICAgfSkudGhlbigodGFza3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2tzLmxlbmd0aCwg
MSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTIsNyArMzEyLDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmls
ZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICAgICAg
ICAgIG5hbWU6ICdoaScsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydp
ZCddLApAQCAtMzMwLDggKzMzMCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAg
ICAgICBmb3IgKGxldCBzdHJhdGVneSBvZiBzdHJhdGVnaWVzKQogICAgICAgICAgICAgICAgIHN0
cmF0ZWd5SWRNYXBbc3RyYXRlZ3lbJ2lkJ11dID0gc3RyYXRlZ3k7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSdd
LCAidGltZSBzZXJpZXMgc2VnbWVudGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c3RyYXRlZ3lJZE1hcFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3Mg
dC10ZXN0Iik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1hcFt0
YXNrUm93WydzZWdtZW50YXRpb24nXV1bJ25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlv
biIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jv
d1sndGVzdF9yYW5nZSddXVsnbmFtZSddLCAic3R1ZGVudCdzIHQtdGVzdCIpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMzQ2LDcgKzM0Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUg
cGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmly
c3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0u
aWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RS
dW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBj
b25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9z
aXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdl
YmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0zNzEsNyArMzcxLDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdz
b21lIHBsYXRmb3JtJyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygp
WzBdLmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RS
dW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBj
b25zdCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9z
aXRvcmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdl
YmtpdFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0zODcsMTggKzM4NywxOCBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogCiAgICAgICAgIGNv
bnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCdd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFz
c2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGlu
Z1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0
Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hh
bmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZv
cm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29u
c3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKICAgICB9KTsKIAogICAgIGl0
KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIHdoZW4gY29t
bWl0IHNldCBsaXN0IGFuZCBhIHBvc2l0aXZlIHJlcGV0aXRpb24gY291bnQgaXMgc3BlY2lmaWVk
JywgYXN5bmMgKCkgPT4gewpAQCAtNDI2LDcgKzQyNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywg
ZnVuCiAgICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9y
bUlkKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3co
J3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwg
cGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0g
YXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBv
bmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAg
ICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcx
OTE2MjMnfX07CkBAIC00MzYsMzggKzQzNiwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5z
WzFdWydpZCddfSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5m
ZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5u
YW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUo
KSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAg
ICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2su
Y2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScp
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rl
c3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCks
ICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNz
ZXJ0Lm9rKCF0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dl
cmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlk
KCkpLCB0cmlnZ2VyYWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdy
b3VwKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgp
LCB0YXNrLnBsYXRmb3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBs
YXRmb3JtKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5
c2lzVGFza0lkKCksIHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lk
KCksIHRhc2suaWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
dGVzdCgpLCB0ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRl
c3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzBdLmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1
aWxkKCkpOwpAQCAtNDc3LDggKzQ3Nyw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAg
ICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRT
ZXQoKTsKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQod2Via2l0SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0
Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3
ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9z
aXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJl
dmlzaW9uKCksICcxOTE2MjMnKTsKICAgICB9KTsKIH0pOwogCkBAIC01MDAsNyArNTAwLDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUg
cHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxh
dGZvcm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdS
b3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRy
aWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9
KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1
bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5s
ZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAg
ICAgIGNvbnN0IHdlYmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTU0OCw3ICs1
NDgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3Jt
ID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1Jv
dyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJp
YzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0p
OwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVu
cycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxl
bmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXTog
e3JldmlzaW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQg
PSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNTU4LDM4ICs1NTgsMzgg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5v
ZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVu
c1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAgICAgIGNvbnN0
IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2Vy
dCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVx
dWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3Jt
KCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
bWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRh
c2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VU
eXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgp
LmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0
ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUo
KSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1l
KCksICdDb25maXJtJyk7CiAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlk
KCksIHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0
cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0
R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0o
KSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNr
LmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFs
eXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTU5OSw4ICs1OTksOCBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBw
cml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJl
cG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9y
eSkucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29t
bWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwg
JzE5MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7
CiAKICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91
cCBhbmQgcmVzcGVjdCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJl
cXVlc3QnLCBhc3luYyAoKSA9PiB7CkBAIC02MjgsNyArNjI4LDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGkn
LCBmdW5jdGkKICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBs
YXRmb3JtSWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5p
ZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1
bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3db
J2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNv
bnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsK
ICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lv
bjogJzE5MTYyMyd9fTsKQEAgLTYzOCwzOCArNjM4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVu
Y3RpCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVz
dFJ1bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29u
c3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10p
OwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNz
ZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdS
ZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZv
cm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFz
ay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5n
ZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3Jt
KCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFt
ZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5h
bWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlm
aWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5p
ZCgpLCB0cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwg
dHJpZ2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVz
dEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVz
dEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0o
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3Jt
KCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFz
ay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5h
bHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNz
ZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC02NzksNyArNjc5LDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUg
cHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBi
dWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRT
ZXQgPSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRS
ZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRv
cnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCks
ICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNv
bW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJl
cG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0p
OwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91
cC10ZXN0cy5qcwppbmRleCAwOWNkMzdhYjQzNmNiM2E3YmI3Y2I4Zjg0OWJjYTlkZTIyN2MxNDQx
Li5kZGY0OTkzYTRmOGUxOTZkOWMzMjM0ZWY2ZGRiMTUwNzIwYmMzYTE0IDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTgz
LDcgKzgzLDcgQEAgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlz
aW9ucyA9IFsiMTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4g
ewogICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29u
ZmlnUm93WydpZCddfSk7CiAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAgICAgICAgICBuYW1lOiBuYW1l
LAogICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTM3LDcgKzEz
Nyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHt9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWROYW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkTmFtZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIGNvbW1pdFNldHM6IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFz
aycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2sn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Myw3ICsxNTMsNyBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiAnZm9vJywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
ZXJyb3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTYxLDcg
KzE2MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3Vu
dDogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0xNjksNyArMTY5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0
ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7fX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNzcsNyArMTc3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazog
MSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
ODUsNyArMTg1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlv
bkNvdW50OiAnZm9vJywgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiAxLCByZXBldGl0aW9uQ291bnQ6IC01LCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVy
cm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsy
MTAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRT
ZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJp
Z2dlcmFibGVOb3RGb3VuZEZvclRhc2snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119
fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRT
ZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMzEsNyAr
MjMxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNp
b25TZXRzOiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge31dfSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0
cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjQyLDcgKzI0
Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9u
U2V0czogW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX1dfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjUyLDcgKzI1Miw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsn
Rm9vJzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChm
YWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5Tm90
Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXBv
c2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTI2Miw3ICsyNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFz
a0lkLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFsnMSddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25h
bWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yODYsNyArMjg2LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yOTgsNyArMjk4LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1n
cm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEwLDcgKzMxMCw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmlsZScpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZp
bGUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyMSw3ICsz
MjEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lv
blNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJl
cG9zaXRvcnknKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMz
MSw3ICszMzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBj
b21taXRTZXRzOiB7J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1
QTI4NCddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNl
dHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
Q29tbWl0U2V0cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MzQ1LDcgKzM0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnRHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2Miw3ICszNjIsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zNzgsNyArMzc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTM5MywxNyArMzkzLDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1t3ZWJraXQu
aWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1
QTI4NCd9LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3du
ZXJSZXZpc2lvbjogJzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0
YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElk
J107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91
cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCks
IDEpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2Vy
dChyZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1sw
XS5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsK
QEAgLTQxOCwxNCArNDE4LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygp
KSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy05MTkxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00NDAsMTcgKzQ0MCwxNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIHtbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBb
anNjLmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcx
OTI3MzYnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0
aW9uQ291bnQ6IDEsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0u
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00NjUsMTMgKzQ2
NSwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9
IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgyLDI4ICs0ODIsMjggQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAg
IGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9zaXRv
cnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25z
dCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
c2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAu
cmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNl
dDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkp
LCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMycpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVz
dHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9y
eUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3Jv
dXApOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQw
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEp
KTsKICAgICAgICAgICAgIH0pOwpAQCAtNTIxLDI0ICs1MjEsMjQgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25z
dCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMn
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBd
LnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXAubmFtZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCks
ICd3ZWJraXQtb25seScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9
KTsKQEAgLTU1MywzMyArNTUzLDMzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91
cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNb
MF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdX
ZWJLaXQnKVswXTsKICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuYWxs
KCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVsw
XTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBz
ZXQwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0
KCksIHNldDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Vi
a2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZv
clJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29z
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwogCiAgICAgICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0
ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sx
XS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91
cCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlH
cm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3Vw
KCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAo
KSwgcmVwb3NpdG9yeUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdy
b3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3Jv
dXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTYwMCwyOCArNjAwLDI4IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3Vw
SWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAg
ICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMmNlZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0MycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1
N2U4Nzk1MzMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2Zk
MWEyOWM2MzNiYTU3ZTg3OTUzMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKIAogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5
R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5u
YW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5
R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMSwg
cmVwb3NpdG9yeUdyb3VwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cDEsIHJlcG9zaXRvcnlHcm91cDApOwogICAgICAgICAgICAgICAgIGFzc2Vy
dChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02
NDIsMzIgKzY0MiwzMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNv
bnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRz
Tm90aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAu
YnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNv
bW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29y
dEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3Np
dG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdy
b3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFt
ZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoIXJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVwb3NpdG9y
eUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEu
bmFtZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3VwMSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtp
dC1vbmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cDEsIHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQoIXJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KHJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsK
QEAgLTY5MSwyOCArNjkxLDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAg
IGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBj
b25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxv
YWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxl
KV0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQo
KSwgc2V0MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW1VwbG9hZGVkRmlsZS5lbnN1
cmVTaW5nbGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1cGxvYWRlZEZpbGUpXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOwogICAgICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNzQwLDUwICs3NDAsNTAgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRC
eUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlk
KCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3Qu
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNl
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0
XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAg
ICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVz
V2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1p
dEZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCks
IHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1p
dFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3Np
dG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVw
b3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQo
IXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC04MDUsNjAgKzgw
NSw2MCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdy
b3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0
KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
aXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlz
QnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlz
QnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlz
QnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlz
QnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
aXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5p
c1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlz
VGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWls
ZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVz
dCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNl
dDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1h
Y29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9y
eShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3Rv
bVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkp
LCBbanNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyks
IHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtODgwLDYxICs4ODAsNjEgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2Vy
dGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCks
IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0Rh
dGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
cGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkp
OwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxk
KCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBd
LmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNv
bnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEu
cmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9y
eShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNl
dDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBb
anNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBv
c2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSht
YWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShq
c2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9y
UmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC05NjMsNjggKzk2Myw2OCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElk
ID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgp
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVz
dElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgp
LCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2Up
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rl
c3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJd
LmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJd
LmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzVdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVz
KCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZv
clJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNo
Rm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQt
anNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21t
aXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0
b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAg
ICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9
KTsKQEAgLTEwNTcsNzcgKzEwNTcsNzcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJ
ZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0o
KSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNl
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNU
ZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAg
PSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1
ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmll
cygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0
cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05
MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOwot
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ2pzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ2pzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCks
IHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1p
dFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCks
IFtdKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNv
cyksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MjczNicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2Mp
LCAnanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1
YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMTU0LDQ1ICsxMTU0LDQ1IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCdd
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVz
dC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgp
LCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tE
YXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3Jv
dXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWls
ZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwogCiAgICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29t
bWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
bWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTIzMCwyNCArMTIzMCwyNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3Vw
SWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFz
aywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJ
ZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwg
J290aGVyIHRhc2snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5u
YW1lKCksICdvdGhlciB0YXNrJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayhncm91
cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5i
dWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0
IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBp
dCgnc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIG5lZWRzLW5vdGlm
aWNhdGlvbiBmbGFnIHVuc2V0JywgYXN5bmMgKCkgPT4gewpAQCAtMTI1OSwyNCArMTI1OSwyNCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElk
J107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQ
cm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291
bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwg
W10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJr
aXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBjdXN0
b20gdGVzdCBncm91cCBmb3IgYW4gZXhpc3RpbmcgY3VzdG9tIGFuYWx5c2lzIHRhc2snLCAoKSA9
PiB7CkBAIC0xMjk2LDQzICsxMjk2LDQ0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge25hbWU6ICd0
ZXN0MicsIHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBs
YXRmb3JtSWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9KTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBzZWNvbmRSZXN1bHQgPSBy
ZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RSZXN1bHRbJ3Rhc2tJZCddLCBz
ZWNvbmRSZXN1bHRbJ3Rhc2tJZCddKTsKKyAgICAgICAgICAgIC8vIHBnIGZ1bnRpb25zIHdpbGwg
cmV0dXJuIGFsbCBkYXRhIGFzIHN0cmluZywgc28gd2UgbmVlZCBtYWtlIHN1cmUgdGhhdCB3ZSBj
b21wYXJlIGFzIGludAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGZp
cnN0UmVzdWx0Wyd0YXNrSWQnXSksIHBhcnNlSW50KHNlY29uZFJlc3VsdFsndGFza0lkJ10pKTsK
ICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChy
ZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCdd
LCB0cnVlKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgIFRlc3RHcm91cC5zb3J0QnlOYW1lKHRlc3RHcm91cHMpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwc1swXS5uYW1lKCksICd0ZXN0MScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzBdLnJlcGV0aXRpb25D
b3VudCgpLCAxKTsKICAgICAgICAgICAgIGxldCByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMF0uYnVp
bGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsK
ICAgICAgICAgICAgIGxldCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAg
ICAgICBsZXQgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIzJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzWzFdLm5hbWUoKSwgJ3Rlc3QyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwc1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMV0ubmFtZSgpLCAndGVzdDInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzFdLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKICAgICAgICAgICAgIHJlcXVlc3RzID0gdGVzdEdyb3Vwc1sxXS5idWlsZFJl
cXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAg
ICAgICAgICAgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgc2V0
MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3Rv
bVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11
cGF0ZS1ydW4tc3RhdHVzLmpzCmluZGV4IDQzYjQwN2VjYTlkZDAyOWRhYWFiODQ2MzdhNmRjMTI1
NjNkZjE1OTEuLmI1N2EwMjExZTY4N2Y5YTNjNzI3NGM3NzQ5YjZkNWUxZmZhYWRhMWEgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktdXBhdGUtcnVuLXN0YXR1cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMKQEAgLTM5LDEzICsz
OSwxMyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRo
UmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9u
X2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIGlkID0gcnVuUm93
c1swXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JG
VG9rZW4oKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01MywxMCArNTMsMTAgQEAgZGVz
Y3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxs
KCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9j
YWNoZSddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydt
YXJrZWRfb3V0bGllciddLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY1LDEx
ICs2NSwxMSBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRX
aXRoUmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lv
bik7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxz
ZSk7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgUmVtb3RlQVBJLmNsZWFyQ29v
a2llcygpOwpAQCAtNzcsNyArNzcsNyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0
ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52
YWxpZFRva2VuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZh
bGlkVG9rZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1LDE4ICs4NSwxOCBAQCBk
ZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25b
MF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZU
b2tlbigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBSZW1v
dGVBUEkucG9zdEpTT05XaXRoU3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0
dXMnLCB7dG9rZW46ICdiYWQnfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVG9r
ZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUb2tl
bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTA1LDIzICsxMDUsMjMgQEAgZGVzY3Jp
YmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3Rf
cnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydy
dW4nOiBydW5Sb3dzWzBdWydpZCddLCAnbWFya2VkT3V0bGllcic6IHRydWV9KTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1
bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5S
b3dzWzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1zdGF0dXMnLCB7J3J1bic6
IHJ1blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVyJzogZmFsc2V9KTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMn
KTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dz
WzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdy
b3VwLXRlc3RzLmpzCmluZGV4IDAyMTE2ZWQ4ZDhiYmU5MjBkYmYxOGQ2MTdlOGY5NTkzMmM3ODM1
OTkuLjIyZmQwZmVjNmUzNGIxOGJjMjFhOWRiZGE1YjlhMTVjMTQ2YTg1OTAgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBk
YXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAt
NzksNyArNzksNyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Vi
a2l0UmV2aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93
ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmlj
OiB0ZXN0Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAg
IGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZp
ZzogY29uZmlnUm93WydpZCddfSk7CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3Ro
LCAyKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBj
b25zdCBjb250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFu
YWx5c2lzLXRhc2snLCB7CiAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0
ZXN0UnVuc1swXVsnaWQnXSwKQEAgLTE2NSwyMCArMTY1LDIwIEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBp
bnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
IGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVk
c05vdGlmaWNhdGlvbigpLCB0cnVlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmlj
YXRpb25TZW50QXQoKSk7CiAKICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VudEF0ID0gbmV3
IERhdGU7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10
ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0aW9uOiBm
YWxzZSwgbm90aWZpY2F0aW9uU2VudEF0OiBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmco
KX0pOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdy
b3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh1cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlvblNlbnRBdCgpLnRvSVNPU3RyaW5nKCksIG5v
dGlmaWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5ub3RpZmljYXRpb25TZW50QXQoKS50
b0lTT1N0cmluZygpLCBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKSk7CiAgICAgfSk7
CiAKICAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlICJuZWVkc19ub3RpZmljYXRpb24i
IGZpZWxkIHRvIHRydWUnLCBhc3luYyAoKSA9PiB7CkBAIC0xOTAsMTggKzE5MCwxOCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAg
ICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJl
c3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9r
KCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3Jv
dXBJZCwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAogICAgICAgICBjb25zdCB1cGRhdGVk
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90
aWZpY2F0aW9uKCksIHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlv
blNlbnRBdCgpKTsKICAgICB9KTsKIApAQCAtMjE0LDEwICsyMTQsMTAgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNv
bnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBj
b25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rh
c2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
Lm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgICAgICBhc3NlcnQu
b2soIWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgIH0pOwpAQCAtMjMxLDIyICsy
MzEsMjIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdy
b3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFs
c2UpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10
ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6
IHRydWV9KTsKIAogICAgICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5m
ZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVk
R3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAK
ICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3Jv
dXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogZmFsc2V9
KTsKIAogICAgICAgICB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRH
cm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0u
bWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgIH0pOwog
CiAgICAgaXQoJ3Nob3VsZCBjbGVhciAibWF5X25lZWRfbW9yZV9yZXF1ZXN0cyIgd2hlbiBoaWRp
bmcgYSB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewpAQCAtMjU4LDIyICsyNTgsMjIgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAg
ICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAog
ICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhy
ZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogCiAgICAg
ICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywg
e2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAog
ICAgICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
cmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgYXdh
aXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6
IGluc2VydGVkR3JvdXBJZCwgaGlkZGVuOiB0cnVlfSk7CiAKICAgICAgICAgdXBkYXRlZEdyb3Vw
cyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFs
c2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigpLCB0
cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1v
cmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVk
R3JvdXBzWzBdLmlzSGlkZGVuKCksIHRydWUpOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVz
dHMuanMKaW5kZXggZTBmOGEyOGRmZTYxMzEyODlhOTI2MTY5ZDExODkxNjkwYmRmYWZiMC4uNDdl
OTM4YTIzMzQ5ODkyNzRhMWI5MGI3ZWFkNzE0OWE3ZDA5ODRkOSAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmls
ZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzCkBAIC0yNyw3ICsyNyw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHt9LCB7dXNl
Rm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTM2LDcgKzM2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7
dXNlRm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVMaW1p
dEV4Y2VlZGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
RmlsZVNpemVMaW1pdEV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC01MSwxNSArNTEsMTUgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxv
YWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Vw
bG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxlLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZS5zaXplKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQw
MjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRG
aWxlLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1sw
XS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5z
aXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwg
J3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxl
bmFtZSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAz
ZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC03OSwxNiArNzksMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmls
ZTIgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2Vs
ZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVk
RmlsZTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEu
c2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2Fk
ZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRl
bnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYs
ICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIy
MWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVw
bG9hZGVkRmlsZTEuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dXBsb2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxlMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICog
MTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5z
aXplKSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFt
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1
MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNl
NmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYs
IHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOCwx
NiArMTA4LDE2IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVk
RmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMn
LCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVk
MDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVk
RmlsZTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxv
YWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
cm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVk
RmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmls
ZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3
ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzksMjYgKzEzOSwyNiBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
dXBsb2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJl
dHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh1cGxvYWRlZEZpbGUx
LmlkLCB1cGxvYWRlZEZpbGUyLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRG
aWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5pZCwgdXBsb2FkZWRG
aWxlMi5pZCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXBsb2FkZWRGaWxl
MS5pZCwgdXBsb2FkZWRGaWxlMi5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
aWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzFdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLmlkKSk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVu
YW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2Fk
ZWRGaWxlMi5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sw
XS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIu
ZmlsZW5hbWUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1p
dEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5z
aXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uc2l6ZSwgdXBsb2FkZWRGaWxlMi5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNpemUsIHJvd3NbMV0uc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFh
YzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMi5zaGEyNTYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEw
MjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6
ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIu
c2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2l6ZSwgcm93
c1sxXS5zaXplKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1
NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUw
MjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNo
YTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmls
ZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLm1pbWUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFyLmd6NScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2
MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIg
KiAxMDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5t
aW1lLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4
ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NSwxMyArMTk1LDEzIEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRf
ZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
Ml0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
ZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFs
KHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAg
fSkKICAgICB9KTsKIApAQCAtMjE3LDE0ICsyMTcsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1
c2VGb3JtRGF0YTogdHJ1ZX0pOwogICAgICAgICB9CiAgICAgICAgIGxldCByb3dzID0gYXdhaXQg
ZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIHNwbGl0Q291bnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5s
ZW5ndGgsIHNwbGl0Q291bnQpOwogCiAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IFRlbXBv
cmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKCdsaW1pdC5kYXQnLCBsaW1pdElu
TUIsICdhJyk7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9h
ZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pOwogICAgICAg
ICByb3dzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50ICsgMSk7CiAgICAgICAgIGNvbnN0
IGRlbGV0ZWRGaWxlcyA9IHJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1snZGVsZXRlZF9hdCddKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKICAgICB9KTsKIAog
ICAgIGl0KCdzaG91bGQgbm90IHBydW5lIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQnLCBh
c3luYyAoKSA9PiB7CkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNl
Rm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4
Y2VlZGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmls
ZVNpemVRdW90YUV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0zMTIsMTMgKzMxMiwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9h
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUu
cGF0Y2gnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQs
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhl
ci5wYXRjaCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3Ro
ZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0
Y2gnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRf
YXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5h
bWUsICdvdGhlci5wYXRjaCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTM0NiwxMyArMzQ2LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZp
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSku
dGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRj
aCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jvb3QudGFyLmd6
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5k
YXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jv
b3QudGFyLmd6Jyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93c1sxXS5k
ZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJd
LmZpbGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MzgyLDcgKzM4Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRl
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9w
ZXJhdGlvbnMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwppbmRleCA1OGI1MTEzMTE5YmY2MTBjNDdlMjg0N2Zh
MDczMDdlMWU1YWYyZjZmLi4xOWI5YzExZmYwY2YzYzRhZjNjOTI0M2E5MDMxOTQyOTYzZjM3NDUz
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwpAQCAtNTYsNyArNTYs
NyBAQCBhc3luYyBmdW5jdGlvbiBhc3NlcnRUaHJvd3MoZXhwZWN0ZWRFcnJvciwgdGVzdEZ1bmN0
aW9uKQogICAgICAgICAgICAgYXdhaXQgdGVzdEZ1bmN0aW9uKCkKICAgICB9IGNhdGNoKGVycm9y
KSB7CiAgICAgICAgIHRocm93bkV4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgZXhwZWN0ZWRFcnJvcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgZXhwZWN0ZWRFcnJvcik7CiAgICAgfQogICAgIGFzc2VydC5vayh0aHJvd25FeGNlcHRpb24p
OwogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9y
ZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwppbmRleCA3Yjg0YjI0YmZlNmE4
ODM3ZWVjNzQyN2M4NzYwZTRiMjAxZGRiMGM3Li4yNjJiMmZkNGUxNzIwYjYzNTY2OGI2NmUwZDhl
Yjg3NWQwODYwODlmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwpAQCAtMTIs
NyArMTIsNyBAQCBjbGFzcyBUZW1wb3JhcnlGaWxlIHsKICAgICAgICAgbGV0IG1lZ2FieXRlU3Ry
aW5nID0gY2hhcmFjdGVyVG9GaWxsOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBp
KyspCiAgICAgICAgICAgICBtZWdhYnl0ZVN0cmluZyA9IG1lZ2FieXRlU3RyaW5nICsgbWVnYWJ5
dGVTdHJpbmc7Ci0gICAgICAgIGFzc2VydC5lcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEw
MjQgKiAxMDI0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lZ2FieXRlU3RyaW5nLmxl
bmd0aCwgMTAyNCAqIDEwMjQpOwogCiAgICAgICAgIGxldCBjb250ZW50ID0gJyc7CiAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZUluTUI7IGkrKykKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1
aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IDYwNGRhNzM0ZGEwY2UzYjBjZWMwYjA5
NWFmZjkwMTVjZGQ5NzcxZDkuLjQ1MGYwYzNhODMzNmY1NGRmZjJkZmY4YzAxOTY4ZDkwNGVlZWY2
MDYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9v
bHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwpA
QCAtMTEsOCArMTEsOCBAQCBjb25zdCBNb2NrTG9nZ2VyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMv
bW9jay1sb2dnZXIuanMnKS5Nb2NrTG9nZ2VyOwogCiBmdW5jdGlvbiBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0LCBtZXRob2QsIHVybCwgY29udGVudCkKIHsKLSAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJs
LCB1cmwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsK
KyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5y
ZXNvbHZlKGNvbnRlbnQpOwogfQogCkBAIC00MCw0NSArNDAsNDUgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6Ci0gICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEw
LjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogNzAyLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHsnYnVpbGRzJzog
W01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxk
ZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTk3LDM4ICs5NywzOCBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVz
b2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5n
bGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDcsNzAgKzE0Nyw3MCBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQn
OiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQn
OiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgog
ICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQn
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29t
ZS1idWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVp
bGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3
fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50
cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQ5LDYy
ICszNDksNjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRS
ZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUo
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxk
UmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0Rh
dGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3Rz
LzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw3MCArNDIzLDcwIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9T
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElk
OiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsn
YnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAx
fSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0
U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVu
bmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAx
MjMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
Iy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUw
NSw1MCArNTA1LDUwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1
aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC01NzAsODYgKzU3MCw4NiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5y
ZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MTAsIGJ1
aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWlsZHMn
IDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEw
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29C
dWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
OCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEy
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY3
MSw5MSArNjcxLDkxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5i
dWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmws
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRh
LCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRh
LCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFy
YW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzEx
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1l
dGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzExJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMSwg
YnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVl
c3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZShNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygp
LCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBC
dWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25m
aWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMv
MTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTc3Niw2MCArNzc2LDYwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICByZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3
ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVz
b2x2ZSwgMTApKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIHJlcXVl
c3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVp
bGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtODU0LDI3ICs4NTQs
MjcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2sn
OiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcw
MScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSwKICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAxLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CkBAIC04ODMsMjAgKzg4MywyMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CkBAIC05MTgsNTggKzkxOCw1OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92
Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6
ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6
ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAg
ICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21l
LWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWls
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVl
c3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdv
QnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTk4OCw0MiArOTg4LDQyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1
ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3
b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTEwNDUsMjMgKzEwNDUsMjMgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcxMCcsICdq
c29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0
YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjEx
IDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgfSk7CkBAIC0xMDc5LDcxICsx
MDc5LDcxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBsZXQgYnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
J2J1aWxkcyc6IFtNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgw
MX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAg
ICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNo
QWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBi
dWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxl
dCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwg
J2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3Vs
ZCByZXVzZSB0aGUgcm9vdHMgZnJvbSBhIGNvbXBsZXRlZCBidWlsZCByZXF1ZXN0IHdpdGggdGhl
IHNhbWUgY29tbWl0IHNldCcsIGFzeW5jICgpID0+IHsKQEAgLTExNTgsNzggKzExNTgsNzggQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVp
bGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVhbHNJ
Z25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFj
b21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
cmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAg
ICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxl
TmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAgICAgICB9
KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGRlZmVyIHNjaGVkdWxpbmcgYSBidWlsZCByZXF1ZXN0
IGlmIHRoZXJlIGlzIGEgInJ1bm5pbmciIGJ1aWxkIHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBz
ZXQsIGJ1dCBzaG91bGQgc2NoZWR1bGUgdGhlIGJ1aWxkIHJlcXVlc3QgaWYgInJ1bm5pbmciIGJ1
aWxkIHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBzZXQgZmFpbHMgbGF0ZXIgb24nLCBhc3luYyAo
KSA9PiB7CkBAIC0xMjQ0LDExNCArMTI0NCwxMTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4
KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
ODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChh
bm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21t
aXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhl
ckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1p
dFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogODAxfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0
YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9
KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAg
ICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVx
dWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQ
YXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAg
ICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAg
ICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdm
YWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDEyMykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRT
eW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2Vy
YWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQn
OiA5MDAsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQnOiAnOTAwJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsn
d2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICd3ay1wYXRjaCc6ICdodHRwOi8v
bG9jYWxob3N0OjgxODAvYXBpL3VwbG9hZGVkLWZpbGUvMTAwLnR4dCcsCiAgICAgICAgICAgICAg
ICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnOTAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNv
bWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgfSk7CkBAIC0xMzY4LDc4ICsxMzY4LDc4IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxk
UmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFu
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdu
b3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29t
bWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
cmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
ODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDkwMCwgYnVpbGRlcklkOiAzfSldfSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5
bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRl
cigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVl
c3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8zL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZGVycy8zL2J1aWxkcy8xMjQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBub3QgdXBkYXRlIGJ1aWxkIHJlcXVlc3RzIGZyb20gYW5vdGhlciB0cmlnZ2Vy
YWJsZScsIGFzeW5jICgpID0+IHsKQEAgLTE1MzQsMjIgKzE1MzQsMjIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1hbmlmZXN0LmZldGNoKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAgICAgICAgICAgICAgICAg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAg
ICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5hbGwoKVswXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQtd2Vi
a2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5h
bWUoKSwgJ2J1aWxkLXdlYmtpdCcpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgdGVzdCA9IFRl
c3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBjb25z
dCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29u
ZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBw
bGF0Zm9ybSksIG51bGwpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dl
cmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3Jv
dXBzKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1z
dm4nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0
b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1h
Y29zXSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVz
dFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0gewpAQCAtMTU4NCwyMiArMTU4NCwyMiBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwg
MSk7CiAKICAgICAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5m
aW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKICAgICAgICAgICAgICAgICBsZXQg
dHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUo
KSwgJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dl
cmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJv
b3RzKCksIHRydWUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFt
ZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdz
eXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1
c3RvbVJvb3RzKCksIHRydWUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwg
bWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFj
Y2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZp
ZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAg
ICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSBbIF07CkBAIC0xNjExLDEzICsx
NjExLDEzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2Vy
YWJsZVByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgp
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUu
YWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJp
Z2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMg
PSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgp
WzBdLnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0u
bmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChn
cm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CiAgICAgICAgICAgICB9
KQogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE2MzIsMTIgKzE2MzIsMTIgQEAgZGVzY3JpYmUo
J0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBn
ZXRCdWlsZGVyTmFtZVRvSURNYXBQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5nZXRCdWls
ZGVyTmFtZVRvSURNYXAoKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgZ2V0
QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1
aWxkZXIiXSwgMSkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lE
TWFwWyJzb21lLWJ1aWxkZXItMSJdLCAyKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRlciAyIl0sIDMpCi0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVy
Il0sIDUpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
YW5vdGhlciB0ZXN0ZXIiXSwgNikKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIiXSwgMSkKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lLWJ1aWxkZXItMSJdLCAy
KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBb
InNvbWUgYnVpbGRlciAyIl0sIDMpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQorICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0sIDUp
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
YW5vdGhlciB0ZXN0ZXIiXSwgNikKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9v
bHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwppbmRleCA3YjJlNTE3
YzMxZjA1NTlhMTIxM2MxMTJjNDlkNGFhZGJkMjY3MWQzLi5lMzEzM2NhNGQwZTZhYmU1YmE3NWIy
ODFiYjdhYTBiNWMzYWM4NjFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRl
c3RzLmpzCkBAIC0xMTAsMTMgKzExMCwxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICBkZXNjcmliZSgnT1NCdWlsZGVyRmV0Y2hlci5fY29tcHV0ZU9yZGVy
JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGNhbGN1bGF0ZSB0aGUgcmlnaHQgb3JkZXIg
Zm9yIGEgZ2l2ZW4gdmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBm
ZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2
MDMwMzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRl
cignMTZkMzIxJyksIDE2MDMwMzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNo
ZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4z
IDE2RDMyJyksIDE2MDMwMDMyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIu
X2NvbXB1dGVPcmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2
RDMyJyksIDE2MDMwMDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNo
ZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2MDMwMzIxMDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxJyksIDE2MDMwMzIx
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRl
cignMTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIDE2
RDMyJyksIDE2MDMwMDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNo
ZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhc3NlcnRpb24gZXJyb3Igd2hl
biBnaXZlbiBhIGludmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CkBAIC0xNDEsMTMgKzE0MSwxMyBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IGZldGNoQ29tbWl0c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVp
bGRzKFsnbGlzdCcsICdidWlsZDEnXSwgJ15cXC4qJCcpOwogCiAgICAgICAgICAgICBhd2FpdCB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1
YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1
aWxkMSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQx
J10pOwogCiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFJlc3VsdHMgPSB7YWxsUmV2aXNpb25z
OiBbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0aFRlc3RhYmlsaXR5
OiB7fX07CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKCcxNkQzMjFcbjE2RTMyMXpcblxuMTZGMzIxJyk7CiAgICAgICAgICAgICBjb25zdCBi
dWlsZEluZm8gPSBhd2FpdCBmZXRjaENvbW1pdHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChleHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGV4cGVjdGVkUmVzdWx0cywgYnVpbGRJbmZvKTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgY29tbWFuZCBvdXRwdXQgYXMgSlNP
TiBmb3JtYXQnLCBhc3luYyAoKSA9PiB7CkBAIC0xNTcsMTMgKzE1NywxMyBAQCBkZXNjcmliZSgn
T1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGZldGNoQ29t
bWl0c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzKFsnbGlzdCcs
ICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG91dHB1dE9iamVjdCA9IHthbGxSZXZpc2lvbnM6IFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAi
MTZGMzIxIl0sIGNvbW1pdHNXaXRoVGVzdGFiaWxpdHk6IHsiMTZEMzIxIjogIlBhbmljIn19Owog
ICAgICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShvdXRwdXRPYmplY3QpKTsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkSW5m
byA9IGF3YWl0IGZldGNoQ29tbWl0c1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG91dHB1dE9iamVjdCwgYnVpbGRJbmZvKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwob3V0cHV0T2JqZWN0LCBidWlsZEluZm8pOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTczLDkgKzE3Myw5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAg
ICAgICBjb25zdCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBN
b2NrU3VicHJvY2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBmZXRj
aGVyLl9jb21taXRzV2l0aGluUmFuZ2UoWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwg
Ik9TWCIsIDE2MDQwMDAwMDAsIDE2MDYwMDAwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0
c1swXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcx
NkUzMjF6J30pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzFdLCB7cmVw
b3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA1MDMyMTAwLCByZXZpc2lvbjogJzE2RjMyMSd9KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAn
T1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gn
LCBvcmRlcjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CiAKICAgICAgICAgfSk7
CiAKQEAgLTE4Myw4ICsxODMsOCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAg
ICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwg
TW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0
Y2hlci5fY29tbWl0c1dpdGhpblJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0s
ICJPU1giLCAxNjA0MDAwMDAwLCAxNjA1MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3Vs
dHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAn
MTZFMzIxeid9KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHty
ZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NiwyNCArMTk2LDI0IEBAIGRlc2NyaWJl
KCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3du
ZWRDb21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENv
bW1pdCwgYW5vdGhlck9TWENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
J10pOwogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9j
a1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAg
ICAgICAgIE1vY2tTdWJwcm9jZXNzLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tT
dWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZF
MzInXSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzBdWydy
ZXBvc2l0b3J5J10sIG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbidd
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29t
bWl0cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzWzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9zaXRv
cnknXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMV1bJ3JldmlzaW9u
J10sIGFub3RoZXJPU1hDb21taXRbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNb
MF1bJ3JlcG9zaXRvcnknXSwgb3N4Q29tbWl0WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXZpc2lvbiddLCBvc3hDb21taXRb
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
dWx0c1swXVsnb3duZWRDb21taXRzJ10sIG93bmVkQ29tbWl0V2l0aFdlYktpdCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ3JlcG9zaXRvcnknXSwgYW5v
dGhlck9TWENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0c1sxXVsncmV2aXNpb24nXSwgYW5vdGhlck9TWENvbW1pdFsncmV2aXNp
b24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzFd
Wydvd25lZENvbW1pdHMnXSwgYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIyNCwxNSArMjI0LDE1IEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRD
b21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1p
dF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJl
dHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAg
ICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlamVjdCgnRmFpbGVkIGdldHRpbmcg
b3duZWQtY29tbWl0Jyk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQ
cm9taXNlLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRw
dXQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvcl9vdXRwdXQsICdGYWlsZWQgZ2V0dGlu
ZyBvd25lZC1jb21taXQnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGVycm9yX291dHB1dCwgJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjQ1LDE1ICsyNDUs
MTUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBjb25zdCBhZGRvd25lZENvbW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNG
b3JCdWlsZChbb3N4Q29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSkK
IAogICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jl
dmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzIn
XSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZSgneyJXZWJLaXQiOnsiUmFuZG9tS2V5IjogIlJhbmRvbVZhbHVlIn19Jyk7CiAKICAgICAgICAg
ICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9taXNlLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvcl9vdXRwdXQubmFtZSwgJ0Fzc2VydGlvbkVycm9yIFtFUlJfQVNTRVJUSU9OXScpOwor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUs
ICdBc3NlcnRpb25FcnJvcicpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pCkBAIC0yOTAsNDAgKzI5MCw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSksIDE2MDMwMDY4MDApOwogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gv
bGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAx
NjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11b
MF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgICAgICBjb25zdCB3YWl0Rm9y
SW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2Zl
dGNoQXZhaWxhYmxlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZv
Y2F0aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVy
cmExNkQ2OFxuU2llcnJhMTZENjlcbicpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJh
MTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRz
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJh
MTZFMzNcblNpZXJyYTE2RTMzaFxuU2llcnJhMTZFMzQnKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdl
YktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtMzMxLDI5ICszMzEsMjkgQEAgZGVzY3JpYmUoJ09TQnVp
bGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZmV0Y2hSZXBvcnRBbmRV
cGRhdGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBi
dWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAg
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RDY4XG5T
aWVycmExNkQ2OVxuJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2ll
cnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmExNkUzM1xuU2ll
cnJhMTZFMzNoXG5TaWVycmExNkUzNCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJh
MTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0u
cmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0
aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKIAogICAgICAgICAgICAg
ICAgIHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKQEAgLTM3MCwzNCArMzcwLDM0IEBAIGRlc2NyaWJlKCdPU0J1aWxk
RmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2
RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQg
PSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVw
b3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3du
ZXInXSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAx
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1p
dDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAw
MzMwOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMz
aC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAz
MzA4KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsn
cmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUz
NFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQw
MDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw0MCArNDIzLDQwIEBAIGRl
c2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0
bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMz
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNn
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICAgICAgY29u
c3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9j
YXRpb24oKTsKICAgICAgICAgICAgICAgICBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBm
ZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2Nh
dGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52
b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZF
MzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRp
b24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3du
ZWRDb21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CkBAIC00NjQsMjkgKzQ2NCwyOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1By
b21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFE
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShv
d25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNb
MF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRD
b21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNz
LnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUz
NCddKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxk
c1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUwMywzNCArNTAzLDM0
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAg
Y29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBd
Wydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jl
cG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2
OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3Np
dG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMz
aFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hb
MF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7
CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjkn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAg
fSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQw
MDM0MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTU1NSw0MSArNTU1LDQxIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAw
JnRvPTE2MDMwOTk5MDAnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogICAg
ICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5
MDAnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAg
IGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRB
bmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLndhaXRG
b3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgYXdhaXQg
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJL
aXQpKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvcklu
dm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAg
aW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRX
aXRoV2ViS2l0KSk7CiAgICAgICAgICAgICBhd2FpdCAgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRX
YWl0Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQn
XSk7CiAKICAgICAgICAgICAgIGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKIApA
QCAtNjAxLDQzICs2MDEsNDMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSBhd2FpdCBkYi5zZWxlY3RS
b3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkUzM2gnfSk7CiAgICAgICAgICAg
ICBjb25zdCBvc3hDb21taXQxNkUzNCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7
J3JldmlzaW9uJzogJ1NpZXJyYTE2RTM0J30pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNj
UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddLCAxNjAz
MDA2ODAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsndGVz
dGFiaWxpdHknXSwgIlBhbmljIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZENjgubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQ2OFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVyJ10pLCAxNjAzMDA2
ODAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OFswXVsn
dGVzdGFiaWxpdHknXSwgIlBhbmljIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQVSIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9z
eENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQ
VSIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzEubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9y
eSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ29y
ZGVyJ10sIDE2MDQwMDMxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMxWzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzMVsw
XVsnb3JkZXInXSksIDE2MDQwMDMxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTMxWzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlcidd
LCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVy
J10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7
CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0x
NjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAg
ICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUz
NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgcmVwb3J0IGNvbW1pdHMgd2l0aG91dCBvd25lZC1jb21taXRzIGlmICJvd25l
ZENvbW1pdENvbW1hbmQiIGlzIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnJywgYXN5bmMgKCkgPT4g
ewpAQCAtNjU5LDI1ICs2NTksMjUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5
JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAn
cmVwb3J0ZWQnOiB0cnVlfSldKTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2
MDMwMDY4MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwg
MTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYw
NDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3
KTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1
YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVw
b3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMo
KTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9y
U2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVz
dWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAtNjk0LDMwICs2OTQs
MzAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qg
b3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpz
Y1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5
WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQx
NkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQx
NkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2
OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9m
cm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAz
NDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQw
MDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBjb21taXRz
IHdpdGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFuZ2UnLCBhc3luYyAoKSA9PiB7CkBAIC03Mzgs
MjUgKzczOCwyNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3Jl
dmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6
IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAw
KTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRv
PTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAg
ICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRl
UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKIAogICAgICAg
ICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxk
cyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7
CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZF
eHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0
cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2Fp
dCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC03NzMsMzAgKzc3MywzMCBAQCBkZXNj
cmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9z
eENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQx
NkUzNCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9y
eS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBv
c2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVy
J10pLCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMz
aFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydv
cmRlciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMw
MDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
MzAwNjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAw
MDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXBkYXRlIGNvbW1pdHMgd2l0aGluIHNw
ZWNpZmllZCByZXZpc2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsKQEAgLTgxNywyOSArODE3LDI5
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAn
U2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7
CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICBjb25z
dCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0g
ZmV0Y2hlci5fZmV0Y2hBdmFpbGFibGVCdWlsZHMoKTsKIAogICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAg
IGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwog
ICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRz
Rm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaEF2YWlsYWJs
ZUJ1aWxkc1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LmNvbW1pdHNU
b1VwZGF0ZS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dC5jb21taXRzVG9VcGRhdGUubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCB1c2UgImxhc3QtcmVwb3J0ZWQiIG9yZGVyICsgMSBhcyAibWluT3JkZXIiJywgYXN5
bmMgKCkgPT4gewpAQCAtODUzLDE1ICs4NTMsMTUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVy
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7
J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RDEwMCcsICdvcmRlcic6IDE2
MDMwMTAwMDAsICdyZXBvcnRlZCc6IHRydWV9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9s
YXN0LXJlcG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RDEwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddLCAxNjAzMDEwMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgIGNvbnN0IGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRB
bmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJv
bWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBm
ZXRjaEFuZFJlcG9ydFByb21pc2U7CkBAIC04NzYsMTkgKzg3NiwxOSBAQCBkZXNjcmliZSgnT1NC
dWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2
RDY5ID0gcmVzdWx0c1syXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMGEgPSBy
ZXN1bHRzWzNdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5s
ZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxl
bmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5s
ZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5s
ZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwYS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDEwMGFbMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQxMDBhWzBdWydv
cmRlciddKSwgMTYwMzAxMDAwMSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYw
MzAxMDAwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSks
IDE2MDMwMTAwMDEpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHVzZSBtaW5S
ZXZpc2lvbiBpbiB0aGUgY29uZmlnIGlmIHRoZXJlIGlzIG5vIGNvbW1pdCcsIGFzeW5jICgpID0+
IHsKQEAgLTkwMSwxMyArOTAxLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMTAsICduYW1lJzogJ09TWCd9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOwogCiAgICAgICAgICAg
ICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9t
aXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAg
YXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0
aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAg
ICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAg
LTkyNCwyMyArOTI0LDIzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAwID0gcmVzdWx0c1szXTsKICAgICAg
ICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMSA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDAubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSwgMTYwMzAxMDAw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwWzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChvc3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMS5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddLCAxNjAz
MDEwMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDEu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQx
MDFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSksIDE2MDMwMTAxMDApOwogCiAg
ICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5
OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkQxMDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RDEwMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDEwMCk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgc3RvcCByZXBvcnRpbmcgaWYgYW55IGN1c3RvbSBjb21tYW5k
IGZhaWxzJywgKCkgPT4gewpAQCAtOTYzLDYwICs5NjMsNjAgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydv
cmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQw
MDMzMDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvcklu
dm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBmZXRjaEFuZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0
QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0
aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnBy
b2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2
RDY5J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4
IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxk
cyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5n
aWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJw
cm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5y
ZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAg
ICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZWplY3QoJ0NvbW1hbmQgZmFpbGVkJyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZldGNoQW5kUmVwb3J0UHJvbWlzZS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3Jfb3V0cHV0LCAnQ29tbWFuZCBmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1dCwgJ0NvbW1hbmQgZmFpbGVkJyk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMz
MDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pCiAgICAgfSkK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
c3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5q
cwppbmRleCA3MWExZDUzOWViNjJmZWYyYWViN2NlMGMxOTY0MGIxNjRjMmZjZjEwLi42OWE5MWY1
ZTYxMTMwNmVhZGI4ZjIxMjdiODhkMDVkZWFiOTViMTBiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRp
b24tdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNDUsOCArMTQ1LDgg
QEAgY29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMgPSB7CiAKIGZ1bmN0aW9uIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3QsIG1ldGhvZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQogewot
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKLSAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdC51cmwsIHVybCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QubWV0
aG9kLCBtZXRob2QpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsK
ICAgICByZXF1ZXN0LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7CiB9CiAKQEAgLTI2NSwyMyAr
MjY1LDIzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNl
Y29uZFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdhbm90aGVyIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwg
YnVpbGRSZXF1ZXN0SWQ6IGZpcnN0VGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6
IFsKICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVl
c3RJZDogc2Vjb25kVGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSwKQEAgLTI5Miw0NSArMjky
LDQ1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogCiAg
ICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CiAKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGFub3Ro
ZXJUYXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM2ICszNDQsMzYgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgY29uc3QgdGFz
a0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgbGV0IHdl
YmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGxldCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGxldCBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7CkBAIC0zODEsMzIgKzM4MSwzMiBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhd2FpdCBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxv
YWRlZC1maWxlLzEuZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRy
dWUsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJ319KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBN
b2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDF9KSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEx
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51
bWJlcjogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdCdWlsZGluZyBXZWJL
aXQnfSkpOwpAQCAtNDE1LDM5ICs0MTUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAKICAgICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
QEAgLTQ1NiwyNiArNDU2LDI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwg
YnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNj
cmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBN
b2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6
IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBp
bGluZyBXVEYnfSkpOwpAQCAtNDg0LDgwICs0ODQsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgZmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5n
IFdURicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0
UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFz
c2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgYXdhaXQgdXBsb2Fk
Um9vdChidWlsZFJlcXVlc3QuaWQoKSwgZmlyc3RCdWlsZE51bWJlcik7CisgICAgICAgIGF3YWl0
IHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCBmaXJzdEJ1aWxkTnVtYmVy
KTsKIAogICAgICAgICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21w
aWxpbmcgV1RGJyk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
ICAgICAgICAgbGV0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNj
cmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKQEAgLTU2NiwzMiArNTY2LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51
bWJlcn0pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWIt
YnVpbGRzJywgJ09LJyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0
YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAn
YnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC02
MDMsODMgKzYwMyw4MyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
IAogICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1i
ZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
Zmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0
Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgIGF3YWl0IHVwbG9h
ZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgYXdhaXQgdXBsb2Fk
Um9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKIAogICAgICAgICB0
ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVt
YmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVy
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwog
ICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9v
dF0pOwogICAgIH0pOwogCkBAIC02OTQsMzQgKzY5NCwzNCBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAg
ICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTcyOSwzMiAr
NzI5LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9h
ZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1
ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1i
dWlsZHMnfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAg
ICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtNzYzLDc2ICs3NjMsNzYg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgp
LCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtODQxLDMyICs4NDEsMzIgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2
MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFi
LWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsK
QEAgLTg3OCw4MCArODc4LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29u
c3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7
CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndl
YmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Vi
a2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
NC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC05NjcsMzQgKzk2NywzNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQg
PSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTEwMDIsMzIgKzEwMDIsMzIgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYy
MicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcp
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9y
bS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEu
YnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpA
QCAtMTAzNiw3NiArMTAzNiw3NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9v
dChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAg
ICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9v
dCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRS
b290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9
IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0x
MTE0LDMyICsxMTE0LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDog
MX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcy
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAg
ICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAn
YnVpbGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpA
QCAtMTE1MSw4MCArMTE1MSw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0g
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQp
OworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVl
c3QuaWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53
ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjQuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTI0MSwyMiArMTI0MSwyMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNr
SWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1
ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdCgxLCA0NSk7CkBAIC0xMjY1
LDM5ICsxMjY1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CiAgICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAg
ICAgICAgICAgICBjb25zdCByb290cyA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb290cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBmaXJzdFJvb3QgPSByb290c1swXTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm9v
dHNbMF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0NS5kYXQnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlclJvb3RzID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwogICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxk
cyc6IFsKQEAgLTEzMDcsMTMgKzEzMDcsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMnLCAn
T0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydp
ZCc6ICczJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgog
ICAgICAgICAgICAgICAgIHsndGVzdCc6ICdzb21lLXRlc3QnLCAnd2snOiAnMTkxNjIyJywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnMycsJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywg
J3Jvb3RzJzogSlNPTi5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1dKX19KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCBbCiAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiAzfSksCiAgICAgICAg
ICAgICBdKTsKQEAgLTEzMjEsNyArMTMyMSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAg
ICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTEzNDMsMzYgKzEzNDMsMzYgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlVGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4g
ewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmlkKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdC5pZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIp
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAg
LTEzODMsMTMgKzEzODMsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
OSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAg
LTE0MDEsMjQgKzE0MDEsMjQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTAwMikpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMDAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0MzIsNDkgKzE0MzIsNDkgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdy
b3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAg
ICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCks
IE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ290aGVy
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiAzMTJ9KSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInLCAyKSwKQEAgLTE0ODMsMjggKzE0ODMsMjggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxZXVzdHMgPSB0ZXN0R3Jv
dXBzWzBdLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3Rz
WzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMF0uaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVz
TGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVz
dHNbMF0uc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnb3RoZXIgYnVpbGRlcicsIDMx
MikpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzBd
LnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ290aGVy
IGJ1aWxkZXInLCAzMTIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cWV1c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cWV1c3RzWzFdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNb
MV0uaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0u
c3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxZXVzdHNbMV0uc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxZXVzdHNbMV0uYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFd
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFzc2VydFRlc3RCdWls
ZEhhc0ZhaWxlZChyZXF1ZXN0KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFzc2Vy
dCghcmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQoYnVpbGRSZXFldXN0c1syXSk7
CkBAIC0xNTI0LDM2ICsxNTI0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKQEAgLTE1NjEsMzIgKzE1NjEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcics
IDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRz
JywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEs
IHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMn
OiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5Ijoi
SmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDF9KSk7CkBAIC0xNTk1LDg1ICsxNTk1LDg1IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRK
U0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpLnRoZW4o
KCkgPT4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9y
eTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0w
NS0xMFQwMjo1NDowOS42NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJz
ZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMykudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNl
SW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcs
IG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDow
OS42NjYnKSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRS
b290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAg
ICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKQEAgLTE2ODIsMzIgKzE2ODIsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1
aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxk
UmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxk
cycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRh
LCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRz
JzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6
IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0x
NzE5LDk1ICsxNzE5LDk1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAg
Y29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAg
ICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9h
ZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3Qo
b3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcs
IG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDow
OS42NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1
aWxkUmVxdWVzdC5pZCgpKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3QocGFyc2VJbnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBv
d25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDku
NjY2JykpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RH
cm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9v
dCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
Qyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qg
b3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
cldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCBvdGhlckpTQ1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
Qyk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJKU0NS
b290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwgb3Ro
ZXJKU0NSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTgyNCwzNiArMTgyNCwzNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRh
c2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAg
ICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93
bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xODYxLDMyICsxODYxLDMy
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sy
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3
ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lv
biI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJS
ZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
SWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVl
c3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAt
MTg5NSwxMjYgKzE4OTUsMTI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxv
YWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9h
ZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlND
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWls
ZFJlcXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVw
b3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsK
KyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgp
KSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0ph
dmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25l
ZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoKG93bmVkSlNDKSk7CiAgICAgICAgICAgICBh
c3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0yMDIzLDMyICsy
MDIzLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAg
IHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2
aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93
bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMjA2MCwxNDEgKzIwNjAsMTQxIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVz
dEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAg
ICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlND
UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQo
anNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRS
b290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJl
cXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qg
b3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9y
eUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAg
ICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NS
b290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJX
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwotICAgICAgICAgICAgcmV0dXJuIHVw
bG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTog
J1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0x
MFQwMjo1NDowOS42NjYnKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0
Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0
OjA5LjY2NicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRl
c3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0
UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0
Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAg
ICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1l
KCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29u
c3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBj
b25zdCBvdGhlckpTQ1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJK
U0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwg
b3RoZXJKU0NSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggMzBiZDI1
ZjBhY2QwMTdlNDVmOGE4MDgxZmNlZTFiOGQwOTdmNjg4MS4uNTJjYjFlYzI0M2I5ZjE2NWRmN2Rj
N2Q2OTBlNDA3YTA4MDllZTg0YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCkBAIC0xMiw3ICsxMiw3IEBAIGNsYXNzIEJ1
aWxkYm90QnVpbGRFbnRyeSB7CiAKICAgICBpbml0aWFsaXplKHN5bmNlciwgcmF3RGF0YSkKICAg
ICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlcklEKCksIHJhd0RhdGFbJ2J1
aWxkZXJpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHN5bmNlci5i
dWlsZGVySUQoKSksIHBhcnNlSW50KHJhd0RhdGFbJ2J1aWxkZXJpZCddKSk7CiAKICAgICAgICAg
dGhpcy5fc3luY2VyID0gc3luY2VyOwogICAgICAgICB0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVz
dElkID0gcmF3RGF0YVsnYnVpbGRyZXF1ZXN0aWQnXTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3Mg
QnVpbGRib3RCdWlsZEVudHJ5IHsKIAogICAgIGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNO
ZWVkZWQocmVxdWVzdCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmlkKCks
IHRoaXMuX2J1aWxkUmVxdWVzdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3QuaWQoKSwgdGhpcy5fYnVpbGRSZXF1ZXN0SWQpOwogICAgICAgICBpZiAoIXJlcXVlc3QpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgaWYgKHRoaXMuaXNQZW5kaW5nKCkpIHsK
QEAgLTExNyw3ICsxMTcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGxldCBw
cm9wZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChuZXdSZXF1ZXN0LCBy
ZXF1ZXN0c0luR3JvdXApOwogCiAgICAgICAgIGFzc2VydChwcm9wZXJ0aWVzWydmb3JjZXNjaGVk
dWxlciddLCBgZm9yY2VzY2hlZHVsZXIgd2FzIG5vdCBzcGVjaWZpZWQgaW4gYnVpbGRib3QgcHJv
cGVydGllcyBmb3IgYnVpbGQgcmVxdWVzdCAke25ld1JlcXVlc3QuaWQoKX0gb24gcGxhdGZvcm0g
IiR7bmV3UmVxdWVzdC5wbGF0Zm9ybSgpLm5hbWUoKX0iIGZvciBidWlsZGVyICIke3RoaXMuYnVp
bGRlck5hbWUoKX0iYCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCghdGhpcy5fc2xhdmVQcm9wZXJ0
eU5hbWUsICFzbGF2ZU5hbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoIXRoaXMuX3Ns
YXZlUHJvcGVydHlOYW1lLCAhc2xhdmVOYW1lKTsKICAgICAgICAgaWYgKHRoaXMuX3NsYXZlUHJv
cGVydHlOYW1lKQogICAgICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9zbGF2ZVByb3BlcnR5TmFt
ZV0gPSBzbGF2ZU5hbWU7CiAKQEAgLTMzNyw3ICszMzcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNl
ciB7CiAKICAgICAgICAgYXNzZXJ0KGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwgJ2J1aWxk
UmVxdWVzdEFyZ3VtZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNl
ZCB0byBzdG9yZSB0aGUgYnVpbGQgcmVxdWVzdCBJRCcpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0eXBlb2YoY29uZmlnLnJlcG9zaXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlH
cm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZp
bml0aW9uJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEg
ZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7CiAKICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IHt9OwogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4g
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMpCkBAIC00MTYsNyArNDE2LDcgQEAgY2xhc3MgQnVpbGRi
b3RTeW5jZXIgewogCiAgICAgc3RhdGljIF9wYXJzZVJlcG9zaXRvcnlHcm91cChuYW1lLCBncm91
cCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVz
KSwgJ29iamVjdCcsCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAucmVw
b3NpdG9yaWVzKSwgJ29iamVjdCcsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtu
YW1lfSIgZG9lcyBub3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzYCk7CiAg
ICAgICAgIGFzc2VydCghKCdkZXNjcmlwdGlvbicgaW4gZ3JvdXApIHx8IHR5cGVvZihncm91cFsn
ZGVzY3JpcHRpb24nXSkgPT0gJ3N0cmluZycsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91
cCAiJHtuYW1lfSIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0aW9uYCk7CkBAIC00MzEsNyArNDMx
LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9y
eSA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAg
ICAgICAgIGFzc2VydChyZXBvc2l0b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2
YWxpZCByZXBvc2l0b3J5IG5hbWVgKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVw
b3NpdG9yeU5hbWVdID0gcmVwb3NpdG9yeTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBl
b2Yob3B0aW9ucyksICdvYmplY3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVjaWZpZXMgYSBu
b24tZGljdGlvbmFyeSB2YWx1ZWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5
cGVvZihvcHRpb25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBh
IG5vbi1kaWN0aW9uYXJ5IHZhbHVlYCk7CiAgICAgICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwg
dHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKG9wdGlvbnMuYWNjZXB0c1BhdGNoKSwKICAgICAgICAgICAg
ICAgICBgIiR7cmVwb3NpdG9yeU5hbWV9IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2
YWx1ZTogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zLmFjY2VwdHNQYXRjaCl9YCk7CiAgICAgICAg
ICAgICBpZiAob3B0aW9ucy5hY2NlcHRzUGF0Y2gpCkBAIC00NDEsNyArNDQxLDcgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICB9CiAgICAgICAgIGFzc2VydChwYXJzZWRSZXBvc2l0
b3J5TGlzdC5sZW5ndGgsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVj
aWZ5IGFueSByZXBvc2l0b3J5YCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91
cC50ZXN0UHJvcGVydGllcyksICdvYmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIg
c3BlY2lmaWVzIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAudGVzdFByb3BlcnRpZXMp
LCAnb2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVz
dCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZWApOwogCiAgICAgICAgIGNvbnN0
IHJlc29sdmVSZXBvc2l0b3J5ID0gKHJlcG9zaXRvcnlOYW1lKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0b3J5TmFtZV07CkBAIC00
NzAsNyArNDcwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB9KTsKICAgICAg
ICAgYXNzZXJ0KCFncm91cC5hY2NlcHRzUm9vdHMgPT0gIXNwZWNpZmllc1Jvb3RzLAogICAgICAg
ICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGFjY2VwdHMgcm9vdHMgYnV0IGRvZXMg
bm90IHNwZWNpZnkgcm9vdHMgaW4gdGVzdFByb3BlcnRpZXNgKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHBhcnNlZFJlcG9zaXRvcnlMaXN0Lmxlbmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXplLAor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0
ZXN0UmVwb3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtu
YW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVz
dGluZ2ApOwogCiAgICAgICAgIGxldCBidWlsZFByb3BlcnRpZXNUZW1wbGF0ZSA9IG51bGw7CkBA
IC01MDQsNyArNTA0LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgYXNz
ZXJ0KHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSB8fCBoYXNPd25lZFJldmlzaW9u
cywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBm
b3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCBhbnkgcGF0Y2hlcyBvciBuZWVkIHRvIGJ1
aWxkIG93bmVkIGNvbXBvbmVudHNgKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9y
eSBvZiBwYXRjaFJlcG9zaXRvcmllcykKICAgICAgICAgICAgICAgICBhc3NlcnQocmV2aXNpb25S
ZXBvc2l0b3JpZXMuaGFzKHJlcG9zaXRvcnkpLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIg
c3BlY2lmaWVzIGEgcGF0Y2ggZm9yICIke3JlcG9zaXRvcnkubmFtZSgpfSIgYnV0IGRvZXMgbm90
IHNwZWNpZnkgYSByZXZpc2lvbmApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhdGNoQWNj
ZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNp
emUsIHBhdGNoUmVwb3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkg
Z3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlz
dGVkIGluIGJ1aWxkaW5nIGEgcGF0Y2hgKTsKICAgICAgICAgfQogCkBAIC01NjQsMTIgKzU2NCwx
MiBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkg
ewogICAgICAgICAgICAgY2FzZSAncHJvcGVydGllcyc6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJv
cGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBz
aG91bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbJ3By
b3BlcnRpZXMnXSkKICAgICAgICAgICAgICAgICAgICAgY29uZmlnWydwcm9wZXJ0aWVzJ10gPSB7
fTsKICAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gY29uZmlnWydwcm9wZXJ0aWVz
J107CiAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHZhbHVlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YodmFsdWVbbmFtZV0pLCAnc3RyaW5nJywg
YEJ1aWxkIHByb3BlcnRpZXMgIiR7bmFtZX0iIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUg
b2YgdHlwZSAiJHt0eXBlb2YodmFsdWUpfSJgKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVy
dGllcyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5
cGVvZih2YWx1ZSl9ImApOwogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0g
dmFsdWVbbmFtZV07CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTgwLDcgKzU4MCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAg
ICBjb25maWdbbmFtZV0gPSB2YWx1ZS5zbGljZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSAnYnVpbGRlcic6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQg
YmUgb2Ygc3RyaW5nIHR5cGVgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlw
ZWApOwogICAgICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAnYnVpbGRlcklEJzoKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5q
cwppbmRleCA0MGRlMGE1Njk3Yzg3Y2ViMDk4MzU4NzJkN2UyZTA4NTMzOWJiM2MzLi4yOWMxZTUw
OGNmZWQ2NTY0YzVjMjM5ZjA2MDU5ODRlOGU0MTk2ZjMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBA
IC0xNDcsNyArMTQ3LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhc3NlcnQodHJpZ2dl
cmFibGUgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZSwgJ011c3Qgc3BlY2lmeSBhIHZhbGlkIHRyaWdn
ZXJhYmxlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0
aGlzLl9uYW1lLCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhp
cy5fbmFtZSwgJ011c3Qgc3BlY2lmeSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3QucmVwb3NpdG9yeUdy
b3VwKCk7CiAgICAgICAgICAgICBpZiAoIXJlcG9zaXRvcnlHcm91cCkgewogICAgICAgICAgICAg
ICAgIHRoaXMuX2xvZ2dlci5lcnJvcihgQnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZG9l
cyBub3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgZ3JvdXAuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGlz
IG5vIGxvbmdlciBzdXBwb3J0ZWQuYCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzCmluZGV4IGFjZjA0OWQzODhmYzY3N2Fm
YTA4NDg4ODA2MTVkYTYxY2MxY2VlMzkuLjI2NDI1NTJkZWNmMzAxZmFhNTQwNDQ0N2Q4ZDkzZGQ0
MGM0YTcwNTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9t
YXJrdXAtY29tcG9uZW50LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9tYXJrdXAtY29tcG9uZW50LmpzCkBAIC0xLDQgKzEsNiBAQAorJ3VzZSBzdHJpY3QnOwogCitj
b25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKIGNvbnN0IE1hcmt1cERvY3VtZW50ID0g
bmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAgewpAQCAt
MjcsNyArMjksNyBAQCBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1
bWVudCB7CiAKICAgICBfaWRGb3JDbG9uZShvcmlnaW5hbCkKICAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KG9yaWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CisgICAgICAgIGFzc2Vy
dC5vayhvcmlnaW5hbCBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICByZXR1cm4gdGhp
cy5fbm9kZUlkKys7CiAgICAgfQogCkBAIC0zOCw3ICs0MCw3IEBAIGNvbnN0IE1hcmt1cERvY3Vt
ZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIAogICAgIG1hcmt1cChub2RlKQogICAg
IHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwor
ICAgICAgICBhc3NlcnQub2sobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICBy
ZXR1cm4gbm9kZS5fbWFya3VwKCk7CiAgICAgfQogCkBAIC01Niw3ICs1OCw3IEBAIGNvbnN0IE1h
cmt1cERvY3VtZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIGNsYXNzIE1hcmt1cE5v
ZGUgewogICAgIGNvbnN0cnVjdG9yKGlkKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
dHlwZW9mKGlkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5vayh0eXBlb2YoaWQpID09
ICdudW1iZXInKTsKICAgICAgICAgdGhpcy5faWQgPSBpZDsKICAgICAgICAgdGhpcy5fcGFyZW50
Tm9kZSA9IG51bGw7CiAgICAgfQpAQCAtNzMsOSArNzUsOSBAQCBjbGFzcyBNYXJrdXBOb2RlIHsK
IAogICAgIF9jbG9uZU5vZGVEYXRhKGNsb25lZE5vZGUpCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydCh0eXBlb2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5faWQgIT0gY2xvbmVkTm9kZS5faWQpOwotICAgICAgICBjb25zb2xl
LmFzc2VydChjbG9uZWROb2RlLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQu
b2sodHlwZW9mKGNsb25lZE5vZGUuX2lkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5v
ayh0aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7CisgICAgICAgIGFzc2VydC5vayhjbG9uZWRO
b2RlLl9wYXJlbnROb2RlID09IG51bGwpOwogICAgIH0KIAogICAgIHJlbW92ZSgpCkBAIC0xMTMs
NyArMTE1LDcgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewog
ICAgICAgICBpZiAoY2hpbGQuX3BhcmVudE5vZGUpCiAgICAgICAgICAgICBjaGlsZC5yZW1vdmUo
KTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydChjaGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsK
KyAgICAgICAgYXNzZXJ0Lm9rKGNoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOwogICAgICAgICB0
aGlzLl9jaGlsZE5vZGVzLnB1c2goY2hpbGQpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9
IHRoaXM7CiAgICAgfQpAQCAtMTIzLDcgKzEyNSw3IEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUg
ZXh0ZW5kcyBNYXJrdXBOb2RlIHsKICAgICAgICAgaWYgKGNoaWxkLl9wYXJlbnROb2RlICE9IHRo
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hp
bGROb2Rlcy5pbmRleE9mKGNoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0g
MCk7CisgICAgICAgIGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGRO
b2Rlcy5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7
CiAgICAgfQpAQCAtMTQyLDEwICsxNDQsMTAgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRl
bmRzIE1hcmt1cE5vZGUgewogCiAgICAgICAgIGlmIChuZXdDaGlsZC5fcGFyZW50Tm9kZSkKICAg
ICAgICAgICAgIG5ld0NoaWxkLnJlbW92ZSgpOwotICAgICAgICBjb25zb2xlLmFzc2VydChuZXdD
aGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG5ld0NoaWxkLl9w
YXJlbnROb2RlID09IG51bGwpOwogCiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hpbGRO
b2Rlcy5pbmRleE9mKG9sZENoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0g
MCk7CisgICAgICAgIGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGRO
b2Rlcy5zcGxpY2UoaW5kZXgsIDEsIG5ld0NoaWxkKTsKICAgICAgICAgb2xkQ2hpbGQuX3BhcmVu
dE5vZGUgPSBudWxsOwogICAgICAgICBuZXdDaGlsZC5fcGFyZW50Tm9kZSA9IHRoaXM7CkBAIC0x
NTUsOCArMTU3LDggQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUg
ewogY2xhc3MgTWFya3VwQ29udGVudFJvb3QgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2RlIHsKICAg
ICBjb25zdHJ1Y3RvcihpZCwgaG9zdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhv
c3QgaW5zdGFuY2VvZiBNYXJrdXBFbGVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaG9z
dC5fY29udGVudFJvb3QgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayhob3N0IGluc3RhbmNl
b2YgTWFya3VwRWxlbWVudCk7CisgICAgICAgIGFzc2VydC5vayhob3N0Ll9jb250ZW50Um9vdCA9
PSBudWxsKTsKICAgICAgICAgc3VwZXIoaWQpOwogICAgICAgICB0aGlzLl9ob3N0RWxlbWVudCA9
IG51bGw7CiAgICAgICAgIGhvc3QuX2NvbnRlbnRSb290ID0gdGhpczsKQEAgLTE3NSw3ICsxNzcs
NyBAQCBjbGFzcyBNYXJrdXBFbGVtZW50IGV4dGVuZHMgTWFya3VwUGFyZW50Tm9kZSB7CiAgICAg
Y29uc3RydWN0b3IoaWQsIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcihpZCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CisgICAgICAgIGFzc2Vy
dC5vayh0eXBlb2YobmFtZSkgPT0gJ3N0cmluZycpOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKICAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3Zh
bHVlID0gbnVsbDsKQEAgLTM2NCw3ICszNjYsNyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNl
IGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAg
IHRoaXMuX25hbWUgPSBjb21wb25lbnRzQnlDbGFzcy5nZXQobmV3LnRhcmdldCk7CiAgICAgICAg
IGNvbnN0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21wb25lbnQsIGBDb21wb25lbnQgIiR7dGhpcy5fbmFtZX0iIGhh
cyBub3QgYmVlbiBkZWZpbmVkYCk7CisgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQsIGBDb21w
b25lbnQgIiR7dGhpcy5fbmFtZX0iIGhhcyBub3QgYmVlbiBkZWZpbmVkYCk7CiAgICAgICAgIHRo
aXMuX2NvbXBvbmVudElkID0gY29tcG9uZW50LmlkOwogICAgICAgICB0aGlzLl9lbGVtZW50ID0g
bnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFJvb3QgPSBudWxsOwpAQCAtNDEyLDcgKzQxNCw3
IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNl
IHsKIAogICAgIHN0YXRpYyBydW5SZW5kZXJMb29wKCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2so
IWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CiAgICAgICAgIGRvIHsKICAgICAgICAgICAg
IGNvbnN0IGN1cnJlbnRTZXQgPSBbLi4uY29tcG9uZW50c1RvUmVuZGVyXTsKICAgICAgICAgICAg
IGNvbXBvbmVudHNUb1JlbmRlci5jbGVhcigpOwpAQCAtNDI5LDE0ICs0MzEsMTQgQEAgY2xhc3Mg
TWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAg
cmVuZGVyUmVwbGFjZShwYXJlbnROb2RlLCBjb250ZW50KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID09IHRoaXMpOwotICAgICAgICBj
b25zb2xlLmFzc2VydChwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7Cisg
ICAgICAgIGFzc2VydC5vayhjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7Cisg
ICAgICAgIGFzc2VydC5vayhwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7
CiAgICAgICAgIHBhcmVudE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICAgICAgaWYgKGNv
bnRlbnQpIHsKICAgICAgICAgICAgIE1hcmt1cENvbXBvbmVudEJhc2UuX2FkZENvbnRlbnRUb0Vs
ZW1lbnQocGFyZW50Tm9kZSwgY29udGVudCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVu
dCA9IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29tcG9uZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQpOwogICAg
ICAgICAgICAgdGhpcy5fYXBwbHlTdHlsZU92ZXJyaWRlcyhwYXJlbnROb2RlLCBjb21wb25lbnQu
c3R5bGVPdmVycmlkZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00OTMsNyArNDk1LDcgQEAgY2xh
c3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAg
ICAgc3RhdGljIHJlc2V0KCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjdXJyZW50
bHlSZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2soIWN1cnJlbnRseVJlbmRl
cmluZ0NvbXBvbmVudCk7CiAgICAgICAgIE1hcmt1cERvY3VtZW50LnJlc2V0KCk7CiAgICAgICAg
IGNvbXBvbmVudHNNYXAuY2xlYXIoKTsKICAgICAgICAgY29tcG9uZW50c0J5Q2xhc3MuY2xlYXIo
KTsKQEAgLTU2Nyw5ICs1NjksOSBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMg
Q29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICBzdGF0aWMgZGVmaW5lRWxlbWVudChuYW1lLCBj
b21wb25lbnRDbGFzcykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb21wb25lbnRz
TWFwLmdldChuYW1lKSwgYFRoZSBjb21wb25lbnQgIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4g
ZGVmaW5lZGApOworICAgICAgICBhc3NlcnQub2soIWNvbXBvbmVudHNNYXAuZ2V0KG5hbWUpLCBg
VGhlIGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkYCk7CiAgICAg
ICAgIGNvbnN0IGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MgPSBjb21wb25lbnRzQnlDbGFzcy5n
ZXQoY29tcG9uZW50Q2xhc3MpOwotICAgICAgICBjb25zb2xlLmFzc2VydCghZXhpc3RpbmdDb21w
b25lbnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcworICAgICAgICBhc3NlcnQu
b2soIWV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MsIGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MK
ICAgICAgICAgICAgID8gYFRoZSBjb21wb25lbnQgY2xhc3MgIiR7ZXhpc3RpbmdDb21wb25lbnRG
b3JDbGFzc30iIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCB0byBkZWZpbmUgYW5vdGhlciBjb21wb25l
bnQgIiR7ZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcy5uYW1lfSJgIDogJycpOwogICAgICAgICBj
b21wb25lbnRzTWFwLnNldChuYW1lLCB7CiAgICAgICAgICAgICBjbGFzczogY29tcG9uZW50Q2xh
c3MsCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVp
bGQtZmV0Y2hlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWls
ZC1mZXRjaGVyLmpzCmluZGV4IDk5MzQwNzlkNmIzYWE0OWQ4N2VlNDNkYTU5NTFhN2RjMTAyYzA5
ZmMuLjJkNmY1MGE5NTczMGRjZDY2YzQ3NDU4MzFiYjhlYjdlYjdmMjNhNmIgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpz
CkBAIC0xMjEsNyArMTIxLDcgQEAgY2xhc3MgT1NCdWlsZEZldGNoZXIgewogICAgICAgICAgICAg
ICAgIHRoaXMuX2xvZ2dlci5sb2coYEdvdCAke09iamVjdC5rZXlzKChvd25lZENvbW1pdHMpKS5s
ZW5ndGh9IG93bmVkIGNvbW1pdHMgZm9yICIke2NvbW1pdFsncmV2aXNpb24nXX0iYCk7CiAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeU5hbWUgaW4gb3duZWRDb21taXRzKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gb3duZWRDb21taXRzW3JlcG9z
aXRvcnlOYW1lXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhvd25lZENvbW1pdCksIFsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMob3duZWRDb21taXQpLCBbJ3JldmlzaW9u
J10pOwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQodHlwZW9mKG93bmVkQ29tbWl0WydyZXZp
c2lvbiddKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGNvbW1pdFsnb3duZWRDb21taXRzJ10gPSBvd25lZENvbW1pdHM7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwppbmRleCBhZjZhYTM2OGVmNTBiYjg3ODMxNzY3
ZjZhYjc1NjMxYzI4MWRlMGM3Li40NzczNzY2NjA2NjBiODA2ZDQxMTE5OTIwN2Y5NDI4ZGNhNDQ3
MjYwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3Rl
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKQEAg
LTMxLDE0ICszMSwxNCBAQCBjbGFzcyBOb2RlUmVtb3RlQVBJIGV4dGVuZHMgQ29tbW9uUmVtb3Rl
QVBJIHsKICAgICBjb25maWd1cmUoc2VydmVyKQogICAgIHsKICAgICAgICAgYXNzZXJ0KHNlcnZl
ci5zY2hlbWUgPT09ICdodHRwJyB8fCBzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cHMnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuaG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91
bGQgYmUgYSBzdHJpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2
ZXIuaG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91bGQgYmUgYSBzdHJpbmcnKTsKICAgICAgICAg
YXNzZXJ0KCFzZXJ2ZXIucG9ydCB8fCB0eXBlb2Yoc2VydmVyLnBvcnQpID09ICdudW1iZXInLCAn
cG9ydCBzaG91bGQgYmUgYSBudW1iZXInKTsKIAogICAgICAgICBsZXQgYXV0aCA9IG51bGw7CiAg
ICAgICAgIGlmIChzZXJ2ZXIuYXV0aCkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVv
ZihzZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5IHdp
dGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxk
IGNvbnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
eXBlb2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRh
aW4gYSBzdHJpbmcgcGFzc3dvcmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
eXBlb2Yoc2VydmVyLmF1dGgpLCAnb2JqZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEgZGljdGlvbmFy
eSB3aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBrZXlzJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnVzZXJuYW1lKSwgJ3N0cmluZycsICdh
dXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHVzZXJuYW1lJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnBhc3N3b3JkKSwgJ3N0cmluZycsICdh
dXRoIHNob3VsZCBjb250YWluIGEgc3RyaW5nIHBhc3N3b3JkJyk7CiAgICAgICAgICAgICBhdXRo
ID0gewogICAgICAgICAgICAgICAgIHVzZXJuYW1lOiBzZXJ2ZXIuYXV0aC51c2VybmFtZSwKICAg
ICAgICAgICAgICAgICBwYXNzd29yZDogc2VydmVyLmF1dGgucGFzc3dvcmQsCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCA2YTExZGJjNjdm
ZjYzNTYyMmEzOGU3NzE4OTRlOTI4NWEzNzU3NzA3Li45NGZjNzNkNzkxNTIyNTRiY2ZiMmU4Zjc1
Y2E0ZmM5Y2JiMzA3MDYxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy92My1tb2RlbHMuanMKQEAgLTQxLDUgKzQxLDYgQEAgaW1wb3J0RnJvbVYzKCdpbnN0cnVtZW50
YXRpb24uanMnLCAnSW5zdHJ1bWVudGF0aW9uJyk7CiBpbXBvcnRGcm9tVjMoJ2xhemlseS1ldmFs
dWF0ZWQtZnVuY3Rpb24uanMnLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsKIGltcG9ydEZy
b21WMygnY29tbWl0LXNldC1yYW5nZS1iaXNlY3Rvci5qcycsICdDb21taXRTZXRSYW5nZUJpc2Vj
dG9yJyk7CiBpbXBvcnRGcm9tVjMoJ2FzeW5jLXRhc2suanMnLCAnQXN5bmNUYXNrJyk7CitpbXBv
cnRGcm9tVjMoJ2NvbnNvbGUtYXNzZXJ0LmpzJywgJ2NvbnNvbGVBc3NlcnQnKTsKIAogZ2xvYmFs
LlN0YXRpc3RpY3MgPSByZXF1aXJlKCcuLi8uLi9wdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMn
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtc2V0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LXNldC10ZXN0cy5qcwppbmRleCBhMjY2YTgw
ZmI5NTVlZTFiOTIwYzlkZWU3OTYxNmI1NDNlMDdjZGZjLi4zODkzYTUyZWFiN2NlNzA2MDQ3OGY0
OTgxMjdhMzE1OTM2MTIwMjNlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9jb21taXQtc2V0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1zZXQtdGVzdHMuanMKQEAgLTIyLDEwICsyMiw4IEBAIGZ1
bmN0aW9uIGNyZWF0ZVJvb3QoZGVsZXRlZEF0KQogewogICAgIGNvbnN0IGRhdGEgPSB7J2NyZWF0
ZWRBdCc6IG5ldyBEYXRlKCcyMDE3LTA1LTAxVDIxOjAzOjI3WicpLCAnZmlsZW5hbWUnOiAncm9v
dC5kYXQnLCAnZXh0ZW5zaW9uJzogJy5kYXQnLCAnYXV0aG9yJzogJ3NvbWUgdXNlcicsCiAgICAg
ICAgIHNpemU6IDE2NDUyMjM0LCBzaGEyNTY6ICcwM2VlZDdhODQ5NGFiODc5NGM0NGI3ZDQzMDhl
NTU0NDhmYzU2ZjRkNmMxNzU4MDliYTk2OGY3OGY2NTZkNThkJ307Ci0gICAgaWYgKGRlbGV0ZWRB
dCkgewotICAgICAgICBjb25zb2xlLmxvZyhkZWxldGVkQXQpOworICAgIGlmIChkZWxldGVkQXQp
CiAgICAgICAgIGRhdGFbJ2RlbGV0ZWRBdCddID0gZGVsZXRlZEF0OwotICAgIH0KICAgICByZXR1
cm4gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbig0NTYsIGRhdGEpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422461</attachid>
            <date>2021-03-05 17:49:28 -0800</date>
            <delta_ts>2021-03-05 18:35:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305174926.patch</filename>
            <type>text/plain</type>
            <size>876293</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi4yZTgxZTEyOTFm
YmRjNzc3YTlhYzFmZjljMDY5YWQ4ZWM5Yjc4YWQ4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAyMS0wMy0wNSAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisgICAgICAgIAorICAgICAgICBNYWtlIHNlcnZlciB0ZXN0IHJ1biB3
aXRoIG5ldyBub2RlIHZlcnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjQ2MworCisgICAgICAgIENoYW5nZSBhc3NlcnQuZXF1YWwgdG8gYXNz
ZXJ0LnN0cmljdEVxdWFsIHNpbmNlIG5vZGUgZGVwcmVjYXRlZCB0aGlzIEFQSQorICAgICAgICBB
ZGQgYSBuZXcgZnVuY3Rpb24gY29uc29sZS5hc3NlcnQgdG8gbWFrZSBzdXJlIGl0IHdpbGwgdGhy
b3cgYW4gZXJyb3IKKyAgICAgICAgTWFrZSBzdXJlIG1vZGVsJ3MgbWV0aG9kcyB3aWxsIGFsd2F5
cyByZXR1cm4gbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaWVuZAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5
LmpzOgorICAgICAgICAoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KToKKyAgICAgICAgKFJlcG9zaXRvcnkpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1w
bGF0Zm9ybXMtdGVzdHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vz
cy1yZXBvcnQtdGVzdHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1
ZXN0cy10ZXN0cy5qczoKKyAgICAgICAgKHJldHVybi5UZXN0U2VydmVyLnJlbW90ZUFQSS5nZXRK
U09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAoYXN5bmMgYXdhaXQpOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKToKKyAgICAgICAgKHJldHVybi5UZXN0U2Vy
dmVyLnJlbW90ZUFQSS5nZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAg
ICAqIHNlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanM6CisgICAgICAgIChyZXR1cm4u
VGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToK
KyAgICAgICAgKGFzeW5jIGF3YWl0KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1lYXN1
cmVtZW50LXNldC10ZXN0cy5qczoKKyAgICAgICAgKHNldCB0aGVuKToKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAoZW1wdHlSZXBv
cnQudGhlbik6CisgICAgICAgIChhc3luYyBpbml0aWFsUmVwb3J0Q29tbWl0cyk6CisgICAgICAg
IChhc3luYyBzZXRVcFRlc3RzV2l0aEV4cGVjdGVkU3RhdHVzKToKKyAgICAgICAgKGFzeW5jIHRl
c3RXaXRoRXhwZWN0ZWRGYWlsdXJlKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9y
dC10ZXN0cy5qczoKKyAgICAgICAgKGVtcHR5UmVwb3J0LnRoZW4pOgorICAgICAgICAoYXN5bmMg
YXdhaXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanM6CisgICAg
ICAgICogc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAg
ICAgICh1cGRhdGUudGhlbik6CisgICAgICAgICh0aGVuLnJlc3BvbnNlLmRiLnNlbGVjdEFsbC5z
dHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRoZW4uZGIuc2VsZWN0QWxsLnN0
cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAodGhlbi5NYW5pZmVzdC5mZXRjaC50
aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzOgor
ICAgICAgICAoYXN5bmMgY29uc3QpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBsb2Fk
ZWQtZmlsZS10ZXN0cy5qczoKKyAgICAgICAgKHJldHVybi5UZXN0U2VydmVyLnJlbW90ZUFQSS5n
ZXRKU09OLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0
cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6CisgICAgICAgIChh
c3luYyBjcmVhdGVBbmFseXNpc1Rhc2spOgorICAgICAgICAoY29uc3QuY29tbWl0U2V0Lm9mLnVw
ZGF0ZWRHcm91cHMuMC5yZXF1ZXN0ZWRDb21taXRTZXRzKToKKyAgICAgICAgKiBzZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanM6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
OgorICAgICAgICAoY3JlYXRlQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKHJldHVybi5jcmVhdGVB
bmFseXNpc1Rhc2suc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChyZXR1cm4u
YWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgor
ICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICogc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanM6CisgICAgICAgICogc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzOgorICAgICAg
ICAoYXN5bmMgY3JlYXRlQW5hbHlzaXNUYXNrKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanM6CisgICAgICAgIChUZXN0U2VydmVyLnRl
c3RDb25maWcudXBsb2FkRmlsZUxpbWl0SW5NQi4xLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanM6CisgICAgICAgIChhc3luYyBhc3Nl
cnRUaHJvd3MpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZp
bGUuanM6CisgICAgICAgIChUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3JhcnlGaWxlT2ZTaXplSW5N
Qik6CisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRl
c3RzLmpzOgorICAgICAgICAoYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUpOgorICAgICAgICAodGhl
bi5yZWZldGNoTWFuaWZlc3QudGhlbik6CisgICAgICAgIChnZXRCdWlsZGVyTmFtZVRvSURNYXBQ
cm9taXNlLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRj
aGVyLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90
LWludGVncmF0aW9uLXRlc3RzLmpzOgorICAgICAgICAoYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qp
OgorICAgICAgICAqIHRvb2xzL2pzL2Fzc2VydC1vdmVycmlkZS5qczogQWRkZWQuCisgICAgICAg
IChtYWtlQ29uc29sZUFzc2VydFRocm93KToKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1z
eW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkucHJvdG90eXBlLmluaXRpYWxp
emUpOgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5idWlsZFJlcXVlc3RT
dGF0dXNJZlVwZGF0ZUlzTmVlZGVkKToKKyAgICAgICAgKEJ1aWxkYm90QnVpbGRFbnRyeSk6Cisg
ICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0KToKKyAgICAg
ICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKToKKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
Ll9wYXJzZVJlcG9zaXRvcnlHcm91cCk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fdmFsaWRh
dGVBbmRNZXJnZUNvbmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlcik6CisgICAgICAgICog
dG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdn
ZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAgICogdG9vbHMvanMv
bWFya3VwLWNvbXBvbmVudC5qczoKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERvY3VtZW50Lm5ldy5N
YXJrdXBEb2N1bWVudC5wcm90b3R5cGUuX2lkRm9yQ2xvbmUpOgorICAgICAgICAoY29uc3QuTWFy
a3VwRG9jdW1lbnQubmV3Lk1hcmt1cERvY3VtZW50LnByb3RvdHlwZS5tYXJrdXApOgorICAgICAg
ICAqIHRvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanM6CisgICAgICAgIChwcm90b3R5cGUuX2Fk
ZE93bmVkQ29tbWl0c0ZvckJ1aWxkKToKKyAgICAgICAgKiB0b29scy9qcy9yZW1vdGUuanM6Cisg
ICAgICAgIChOb2RlUmVtb3RlQVBJLnByb3RvdHlwZS5jb25maWd1cmUpOgorICAgICAgICAqIHRv
b2xzL2pzL3YzLW1vZGVscy5qczoKKyAgICAgICAgKiB1bml0LXRlc3RzL2NvbW1pdC1zZXQtdGVz
dHMuanM6CisKIDIwMjEtMDItMTggIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IGEgYnVnIHRoYXQgYSBzeW5jaW5nIHNjcmlwdCBtYXkgdHJ5IHRvIHJldXNl
IGEgZGVsZXRlIHJvb3QuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcwppbmRleCA5MzE5ODk5ZGRjZjYwMjc1OWQwMjQ4
MDkwMzU5NTdmZTA2M2YxYTRiLi4zNWRkMzVlNGJlYzM2MDUwYzM2YTQ1MWMwMjY4M2M4N2ZmYTU4
YThhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL3JlcG9zaXRvcnkuanMKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgUmVwb3NpdG9yeSBl
eHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAg
ICAgICAgICAgICAgICBlbHNlIGlmIChhLm5hbWUoKSA8IGIubmFtZSgpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGEuaWQoKSAtIGIuaWQoKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoYi5f
YmxhbWVVcmwpIC8vIGEgPiBiCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAg
ICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCmluZGV4IDExMmIwOTE1ZmY4
Zjk5NDI1ZWU2ODQ2NTNjMjk1NDJhNDc5OTliYzQuLjNiZGVkZWM3YjljMmMxYmY3ZjRhMzkwYzZi
NzhjYmRjNzcyMzBlMzMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCkBAIC00NSwxOSAr
NDUsMTkgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnLCAnbmFtZScpOwogICAgICAg
ICB9KS50aGVuKChwbGF0Zm9ybXMpID0+IHsKICAgICAgICAgICAgIG9sZFBsYXRmb3JtcyA9IHBs
YXRmb3JtczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXMubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMF1bJ25hbWUnXSwgJ01h
dmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFt
ZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRm
b3Jtc1syXVsnbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTWF2ZXJpY2tzJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxhdGZvcm1zWzFdWyduYW1lJ10sICdN
b3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkUGxhdGZv
cm1zWzJdWyduYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZv
cm1VcmxlbmNvZGVkRGF0YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAg
IHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkUGxhdGZvcm1zWzFdWydpZCddLCAnZGVzdGlu
YXRpb24nOiBvbGRQbGF0Zm9ybXNbMl1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnKTsKICAgICAgICAg
fSkudGhlbigobmV3UGxhdGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
UGxhdGZvcm1zLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1Bs
YXRmb3Jtc1swXSwgb2xkUGxhdGZvcm1zWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwobmV3UGxhdGZvcm1zWzFdLCBvbGRQbGF0Zm9ybXNbMl0pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG5ld1BsYXRmb3Jtcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1swXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxhdGZv
cm1zWzJdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY5LDE1ICs2OSwxNSBAQCBkZXNj
cmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVy
biBkYi5xdWVyeShxdWVyeUZvclJ1bnMpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIG9sZFRlc3RSdW5zID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkVGVzdFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvbGRUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwg
J01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sx
XVsncnVuX3N1bV9jYWNoZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVz
dFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1Ry
dW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVu
c1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob2xkVGVzdFJ1bnMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvbGRUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3BsYXRm
b3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvbGRUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50
YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1sy
XVsncnVuX3N1bV9jYWNoZSddLCAxOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRUZXN0UnVuc1szXVsncnVuX3N1bV9j
YWNoZSddLCAyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1VcmxlbmNvZGVkRGF0YSgnL2FkbWluL3Bs
YXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAgIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzog
b2xkVGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFRlc3RSdW5z
WzNdWydwbGF0Zm9ybV9pZCddfSk7CkBAIC04NSwyMCArODUsMjAgQEAgZGVzY3JpYmUoIi9hZG1p
bi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnko
cXVlcnlGb3JSdW5zKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBuZXdUZXN0UnVucyA9IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZl
cmlja3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX3N1
bV9jYWNoZSddLCA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsn
cnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9j
YWNoZSddLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1
bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9u
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2Fj
aGUnXSwgMTgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5f
aWQnXSwgb2xkVGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hl
J10sIDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2Nv
bmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChuZXdUZXN0UnVucy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMF1bJ3J1
bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1swXVsn
cGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sx
XVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5z
WzFdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQn
XSwgb2xkVGVzdFJ1bnNbMl1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChuZXdUZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlv
bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5f
c3VtX2NhY2hlJ10sIDE4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0
UnVuc1szXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzNdWydydW5faWQnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1Ry
dW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdU
ZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1
bl9jb25maWcnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTQsMTMgKzExNCwxMyBA
QCBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBkYi5xdWVyeShxdWVyeUZvckNvbmZpZywgW3JlcG9ydHNbMF1bJ3BsYXRmb3JtJ10s
IHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ11dKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
CiAgICAgICAgICAgICBvbGRDb25maWdzID0gcmVzdWx0LnJvd3M7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkQ29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1swXVsncGxhdGZvcm0nXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwg
J0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ2Nv
bmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENv
bmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0nXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkQ29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1l
UmF0ZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ2NvbmZpZ190
eXBlJ10sICdjdXJyZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29u
Zmlncy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZp
Z3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1swXVsncGxhdGZvcm0nXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0Zy
YW1lUmF0ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3NbMF1b
J2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9sZENvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c1syXVsncGxhdGZvcm0n
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkQ29uZmlnc1sxXVsnbWV0cmlj
X25hbWUnXSwgJ0ZyYW1lUmF0ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZENvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZv
cm1VcmxlbmNvZGVkRGF0YSgnL2FkbWluL3BsYXRmb3Jtcy5waHAnLAogICAgICAgICAgICAgICAg
IHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkQ29uZmlnc1swXVsncGxhdGZvcm1faWQnXSwg
J2Rlc3RpbmF0aW9uJzogb2xkQ29uZmlnc1sxXVsncGxhdGZvcm1faWQnXX0pOwpAQCAtMTI4LDEz
ICsxMjgsMTMgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydw
bGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgbmV3Q29uZmlncyA9IHJlc3VsdC5yb3dzOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3MubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNb
Ml1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1b
J21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3Bs
YXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJp
Y19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25m
aWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG5ld0NvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChuZXdDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRm
b3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21l
dHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChuZXdDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9y
dHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld0Nv
bmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRl
c3RzLmpzCmluZGV4IDJmZjUzY2JmODhhYzI0YjBlOTIxNmIwYTcyZTRlMzcwOTIyN2E4ODEuLmIw
OGFmOWZkZjljNmI0MzA1MDI5MGRjNzVhMjM0NWE3MjY1MWY4ZTQgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKQEAgLTQ4LDEwICs0OCwxMCBAQCBkZXNjcmliZSgi
L2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydFdpdGhSZXZpc2lvbnMpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCdy
ZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50aGVuKChyZXBv
c2l0b3JpZXMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVu
Z3RoLCAyKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcHNpdG9yeUlkID0gcmVwb3NpdG9y
aWVzWzBdLm93bmVyID09IDEgPyByZXBvc2l0b3JpZXNbMV0uaWQgOiByZXBvc2l0b3JpZXNbMF0u
aWQ7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNp
b24nOiAnMjEzMjE0JywgJ3JlcG9zaXRvcnknOiB3ZWJraXRSZXBzaXRvcnlJZH0pOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKQEAgLTY1LDI3ICs2NSwyNyBAQCBkZXNjcmliZSgiL2Fk
bWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRC
dWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
c2ltcGxlUmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnYnVpbGRzJyksIGRiLnNlbGVjdEFs
bCgncmVwb3J0cycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgYnVpbGRzID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgcmVwb3J0cyA9
IHJlc3VsdFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxOTg2KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRzWzBdWyd0YWcnXSwgJzE5ODYnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICByZXBvcnRJZCA9IHJl
cG9ydHNbMF1bJ2lkJ107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0c1swXVsnYnVp
bGRfdGFnJ10sIDE5ODYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHNb
MF1bJ2J1aWxkX3RhZyddLCAnMTk4NicpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdV
UERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxkID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRz
Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVj
dEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDApOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0
P3JlcG9ydD0ke3JlcG9ydElkfWApOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWls
ZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxOTg2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZHNbMF1bJ3RhZyddLCAnMTk4NicpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtOTUsMTAgKzk1LDEwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcmVwcm9jZXNz
LXJlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBv
cnQoc2ltcGxlUmVwb3J0WzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBvcmlnaW5h
bFJlcHJvdCA9IHJlcG9ydHNbMF07CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFU
RSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0xMDYsMTQgKzEwNiwxNCBAQCBkZXNjcmliZSgi
L2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAg
ICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG5ld1BvcnQgPSByZXBvcnRzWzBdOwogICAg
ICAgICAgICAgb3JpZ2luYWxSZXByb3RbJ2NvbW1pdHRlZF9hdCddID0gbnVsbDsKICAgICAgICAg
ICAgIG5ld1BvcnRbJ2NvbW1pdHRlZF9hdCddID0gbnVsbDsKLSAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9ydFsnYnVpbGQnXSk7CisgICAg
ICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1aWxkJ10sIG5l
d1BvcnRbJ2J1aWxkJ10pOwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RbJ2J1aWxkJ10gPSBu
dWxsOwogICAgICAgICAgICAgbmV3UG9ydFsnYnVpbGQnXSA9IG51bGw7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG9yaWdpbmFsUmVwcm90LCBuZXdQb3J0KTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwob3JpZ2luYWxSZXByb3QsIG5ld1BvcnQpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCA4
M2ZiZTU5N2ZlNzlhM2ExYmY4MDUwYWM4Mzc3YmRkODY0NzQ0ZTY2Li5jZGU1ZWRmMmJiMWYyN2Q1
ZDM5NzE1Y2IzNmFlZjYwY2JlNTEyYjA5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcwpAQCAtMTMsNyArMTMsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1
bmN0aW9uICgpIHsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJUcmlnZ2VyYWJsZU5vdEZvdW5k
IiB3aGVuIHRoZSBkYXRhYmFzZSBpcyBlbXB0eScsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnc3RhdHVzJ10sICdUcmlnZ2VyYWJsZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdUcmlnZ2VyYWJsZU5vdEZvdW5kJyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMSwxMSArMjEsMTEgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7bmFtZTogJ2J1aWxk
LXdlYmtpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAg
ICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10sIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnY29tbWl0cyddLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXSwgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10s
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTMzLDM2ICszMywzNiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZFRlc3RHcm91cFdpdGhPd25lZENv
bW1pdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQo
KSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAn
dXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25J
dGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRz
J10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDMpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKICAg
ICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7
Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAiOTMxMTYiLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkLCA0MDQpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0uaWQpLCA0MDQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1p
dDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtjb21taXQ6ICc5NjMz
NicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnMjAxNycsIGNvbW1p
dE93bmVyOiAiOTYzMzYiLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRz
J10ubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29t
bWl0cyddWzBdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiA4NzgzMiwgcmVwb3NpdG9yeTogJzkn
LCByZXZpc2lvbjogJzEwLjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlk
OiA5MzExNiwgcmVwb3NpdG9yeTogJzExJywgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAxNDQ1
OTQ1ODE2ODc4fSkKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
cyddWzJdLCB7Y29tbWl0T3duZXI6ICc5MzExNicsIGlkOiAnMTc5NycsIHJlcG9zaXRvcnk6ICcy
MTMnLCByZXZpc2lvbjogJ293bmVkLWpzYy02MTYxJywgdGltZTogMTQ1Njk2MDc5NTMwMH0pCi0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVszXSwge2NvbW1p
dE93bmVyOiBudWxsLCBpZDogOTYzMzYsIHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTky
NzM2JywgdGltZTogMTQ0ODIyNTMyNTY1MH0pCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdHMnXVs0XSwge2NvbW1pdE93bmVyOiAnOTYzMzYnLCBpZDogMjAxNywg
cmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkxOTEnLCB0aW1lOiAxNDYy
MjMwODM3MTAwfSkKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzBdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnODc4MzInLCByZXBv
c2l0b3J5OiAnOScsIHJldmlzaW9uOiAnMTAuMTEgMTVBMjg0JywgdGltZTogMH0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0sIHtjb21t
aXRPd25lcjogbnVsbCwgaWQ6ICc5MzExNicsIHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAn
MTkxNjIyJywgdGltZTogMTQ0NTk0NTgxNjg3OH0pCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMxMTYnLCBp
ZDogJzE3OTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2MtNjE2MScs
IHRpbWU6IDE0NTY5NjA3OTUzMDB9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50Wydjb21taXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6ICc5NjMzNics
IHJlcG9zaXRvcnk6ICcxMScsIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogMTQ0ODIyNTMyNTY1
MH0pCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XVs0XSwge2NvbW1pdE93bmVyOiAnOTYzMzYnLCBpZDogJzIwMTcnLCByZXBvc2l0b3J5OiAnMjEz
JywgcmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIHRpbWU6IDE0NjIyMzA4MzcxMDB9KQogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF1b
J2NyZWF0ZWRBdCddID0gMDsKICAgICAgICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XVsnY3JlYXRlZEF0J10gPSAwOwogICAgICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAgICAgICBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM11bJ2NyZWF0ZWRBdCddID0gMDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLCB7aWQ6ICc3MDQnLCB0YXNrOiAnMTA4MCcsIHRyaWdn
ZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxh
dGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMCcsIGNvbW1pdFNldDogJzQw
MycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxs
LCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXSwge2lkOiAnNzA1JywgdGFzazogJzEwODAn
LCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIw
MCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzEnLCBjb21taXRT
ZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVy
bDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0sIHtpZDogJzcwNicsIHRhc2s6
ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRl
c3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcyJywg
Y29tbWl0U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBu
dWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLCB7aWQ6ICc3MDcn
LCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIw
MDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVy
OiAnMycsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlw
dGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XSwge2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0
b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6
ICc5MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywg
c3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRB
dDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcx
MDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1
JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVz
OiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBu
dWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRy
aWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywg
cGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDog
JzQwMycsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBu
dWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFz
azogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywg
dGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMn
LCBjb21taXRTZXQ6ICc0MDQnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246
IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOwogICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC03MCwzMCArNzAsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWls
ZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCBj
b250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygn
L2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2Nv
bW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVt
cywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25J
dGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5y
ZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkw
MCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29t
bWl0U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkz
MTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0
U2V0KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25z
dCB1cGRhdGVzID0gezkwMDogewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmws
IGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
fX07CisgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9y
Um9vdFJldXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAg
ICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgewogICAg
ICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAgICdzbGF2ZVBh
c3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAgLTEwMSw1MyArMTAxLDUzIEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAogICAgICAgICBj
b250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygn
L2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5p
ZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydj
b21taXRTZXRzJ11bMl0uaWQpLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7
Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVz
QnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMx
MTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwg
cm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZp
bGU6IDEwMX1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQsIDgwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6ICcxMDEnfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29t
bWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCks
IDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZXVzZSByb290IGJ1aWx0IGZv
ciBvd25lZCBjb21taXQgaWYgc2FtZSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCBleGlzdHMnLCBh
c3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFR3b01vY2tUZXN0R3JvdXBX
aXRoT3duZWRDb21taXRzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCBjb250
ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2Fw
aS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRT
ZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10u
bGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2NvbW1pdFNldHMnXVswXS5pZCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
cmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAg
ICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDMpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgNzA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDQwNSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs3
MDg6IHsKICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0
YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RG
b3JSb290UmV1c2U6IDcwNH19OwpAQCAtMTU5LDI5ICsxNTksMjkgQEAgZGVzY3JpYmUoJy9hcGkv
YnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGNv
bnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1p
dFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA0MDUpOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWls
ZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRG
aWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDQwNSk7CiAKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywg
WworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsw
XS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTog
bnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwg
cGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAg
ICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAg
ICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVt
cywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAg
ICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1p
dDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmws
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBs
ZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtj
b21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwg
NzA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDcwOCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uY29tbWl0U2V0KSwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgncmV1c2Ugcm9v
dHMgZnJvbSBleGlzdGluZyBidWlsZCByZXF1ZXN0cyBpZiB0aGUgY29tbWl0cyBzZXRzIGFyZSBl
cXVhbCBleGNlcHQgdGhlIGV4aXN0ZW5jZSBvZiBjdXN0b20gcm9vdHMnLCBhc3luYyAoKSA9PiB7
CkBAIC0xOTUsMzIgKzE5NSwzMiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgXSk7CiAgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2Nv
bW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbMTAzXSk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbMTA0
XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAg
e2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWly
ZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3RzLCBbJzEwMyddKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0u
Y3VzdG9tUm9vdHMsIFsnMTA0J10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29u
c3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uaWR9fTsKKyAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRS
ZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQpfX07CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKICAgICAgICAgICAg
ICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAgLTIyOCwyNyArMjI4LDI3IEBAIGRlc2Ny
aWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKIAog
ICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0
aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsxMDNdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uY3VzdG9tUm9vdHMsIFsxMDRdKTsKLQotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0
U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwg
OTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5j
b21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMScpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5j
dXN0b21Sb290cywgWycxMDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlk
KSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAgIGl0
KCdzaG91bGQgZmFpbCByZXF1ZXN0IHdpdGggIkNhbm5vdFJldXNlRGVsZXRlZFJvb3QiIGlmIGFu
eSByb290IHRvIHJldXNlIGlzIGRlbGV0ZWQnLCBhc3luYyAoKSA9PiB7CkBAIC0yOTksMzEgKzI5
OSwzMCBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBDUkVBVEUgVFJJR0dFUiBl
bXVsYXRlX2ZpbGVfcHVyZ2UgQUZURVIgVVBEQVRFIE9GIGNvbW1pdHNldF9yb290X2ZpbGUgT04g
Y29tbWl0X3NldF9pdGVtcwogICAgICAgICAgICAgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VE
VVJFIGVtdWxhdGVfZmlsZV9wdXJnZSgpO2ApOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1y
ZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRz
JywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0
LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdj
b21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7Ci0KLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lv
bkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0g
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEw
MCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAw
JywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdj
b21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDAp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQp
LCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0g
ezkwMDogewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAg
ICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBw
YXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAKICAgICAgICAgYXdh
aXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgKCkgPT4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVp
bGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKQEAg
LTMzNywyOSArMzM2LDI5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhS
b290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsncnVubmluZycsICdwZW5kaW5nJywgJ3BlbmRp
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
J10sIHRydWUsIGZhbHNlKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVp
bGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDYpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLmlkLCA0MDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzRdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZp
c2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4Nzgz
MicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2Us
IHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVs
bH1dKTsKLQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxl
bmd0aCwgMTIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmlkLCA3MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlkcy8yJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bOF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzhdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOworICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZCksIDcwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51
cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8yJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uaWQpLCA5MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzhdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7
CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0
dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdOb01h
dGNoaW5nQ29tbWl0U2V0SXRlbScsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAg
ICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zNzQsMzAgKzM3MywzMCBAQCBk
ZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6
IDQwMSwgY29tbWl0OiAxMTExNjh9KQogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDQwMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bNF0uaWQsIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQpLCA2MDApOwog
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAogICAgICAgICAgICAge2NvbW1pdDogJzExMTE2OCcsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0
ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsK
LQotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
MTIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
LCA3MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8yJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
OF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bOF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzhdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOworICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8yJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uaWQpLCA5MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzhdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bOF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnVybCwgbnVsbCk7CiAKICAg
ICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXM6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVy
bCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQpfX07CiAKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RSZXVz
ZVJvb3RXaXRoTm9uTWF0Y2hpbmdDb21taXRTZXRzJywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKQEAgLTQxMCwzMCAr
NDA5LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0
U2VydmVyLmRhdGFiYXNlKCksIFsncnVubmluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pOwogICAg
ICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKIAotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJl
cXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxl
cyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgs
IDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1
MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2
MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQp
LnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0
dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCksIDYw
MCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
cmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAn
ODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6
ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzIn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9
XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsICdydW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtj
b21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVz
QnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDgw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdydW5uaW5nJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAg
ICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWR9fTsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJl
cXVlc3RGb3JSb290UmV1c2U6IHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZCl9fTsKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5Pbmx5UmV1c2VDb21wbGV0ZWRC
dWlsZFJlcXVlc3QnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0
YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAn
c2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUnLAogICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAn
cGFzc3dvcmQnLApAQCAtNDQ1LDI3ICs0NDQsMjcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWls
ZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGNvbnN0
IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVz
KCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAn
Y29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBb
J2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxv
YWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0
ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lv
bkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogJzEwMSd9XSk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBu
dWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKLQotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0
U2V0LCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwg
OTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5j
b21taXRTZXQsIDYwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0
cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21t
aXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNv
bnN0IHVwZGF0ZXMgPSB7OTAwOiB7CiAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVy
bCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiA5OTl9fTsKQEAgLTQ4MSw1NSArNDgwLDU1IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05X
aXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9
KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVj
dC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAn
Y29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVx
dWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVz
J10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLmlkLCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LCB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQsIDQwMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0
ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsxXS5pZCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAg
ICAgIFt7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5NjMzNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfV0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
cyddLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
cyddWzBdLmlkLCA4NzgzMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0cyddWzBdLnJlcG9zaXRvcnksICc5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcxMScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lv
biwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XVsyXS5pZCwgOTYzMzYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVsyXS5yZXBvc2l0b3J5LCAnMTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMl0ucmV2aXNpb24sICcxOTI3MzYnKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5vcmRlciwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxh
dGZvcm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMV0uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVz
dCwgJzIwMCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVsyXS5pZCwgNzAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNv
bW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQs
IDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5z
dGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5y
ZXBvc2l0b3J5LCAnOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCksIDkzMTE2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0u
cmVwb3NpdG9yeSwgJzExJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0cyddWzJdLmlkKSwgOTYzMzYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBv
c2l0b3J5LCAnMTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydj
b21taXRzJ11bMl0ucmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uaWQpLCA3MDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRm
b3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmlk
KSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVu
ZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMV0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5vcmRlciksIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMl0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzJdLnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bM10ub3JkZXIpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS50
ZXN0LCAnMjAwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01MzcsNTUgKzUzNiw1NSBA
QCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQ/dXNlTGVnYWN5SWRS
ZXNvbHV0aW9uPXRydWUnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVp
bGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVk
RmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAg
ICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzkzMTE2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzFdLmlkLCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMV0u
cmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnbWFjT1Mn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNp
b24sICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRzJ11bMV0uaWQsIDkzMTE2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMV0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwgJzE5MTYyMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5pZCwgOTYzMzYpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXBvc2l0b3J5LCAn
V2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJd
LnJldmlzaW9uLCAnMTkyNzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxh
dGZvcm0sICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5w
bGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwgNDAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzFdLnRlc3QsIFsnc29tZSB0ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCwgNzAyKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyLCAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJd
LnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMl0udGVzdCwgWydzb21lIHRlc3QnXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVszXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRzJ11bMF0uaWQpLCA4Nzgz
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzBd
LnJlcG9zaXRvcnksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5pZCks
IDkzMTE2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMV0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5pZCks
IDk2MzM2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMl0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOworCisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciksIDAp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21t
aXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgWydz
b21lIHRlc3QnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmlkKSwgNzAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFd
Lm9yZGVyKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMl0ub3JkZXIpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLnRlc3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCks
IDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZvcm0sICdzb21l
IHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3Rh
dHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgWydzb21lIHRlc3QnXSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC01OTUsNyArNTk0LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQn
KTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgIGxldCB0
ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAgICAgICAgICAgYXNzZXJ0KHRlc3QpOwpAQCAt
NjAzLDk0ICs2MDIsOTQgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZCg2NSk7
CiAgICAgICAgICAgICBhc3NlcnQocGxhdGZvcm0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MDQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3
MDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMF0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSksIDApOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0
KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJl
cXVlc3RzWzBdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1
ZXN0c1swXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzA1KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCksIDkw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRl
c3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0o
KSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
b3JkZXIoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA5MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3Jt
KCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChi
dWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWls
ZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMV0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzJdLmlkKCksIDcwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1syXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzJdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3Jv
dXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzJdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSBpbnN0YW5jZW9m
IENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFz
U3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmlzUGVu
ZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5pZCgpLCA3MDcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgOTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNd
LmlkKCkpLCA3MDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSksIDMpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10u
Y29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFidWlsZFJlcXVlc3RzWzNdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFidWlsZFJlcXVlc3RzWzNdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2so
YnVpbGRSZXF1ZXN0c1szXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1szXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAgICAgICAgICAgY29u
c3QganNjID0gUmVwb3NpdG9yeS5maW5kQnlJZCgyMTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGpzYy5uYW1lKCksICdKYXZhU2NyaXB0Q29yZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGpzYy5uYW1lKCksICdKYXZhU2NyaXB0Q29yZScpOwogCiAgICAgICAgICAgICBj
b25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RD
b21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vj
b25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRT
ZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uY29t
bWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChm
aXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmly
c3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1
QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2Vjb25kQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9zeENv
bW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0U2V0LmNvbW1p
dEZvclJlcG9zaXRvcnkob3N4KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KG9zeCkpOwogCiAgICAgICAgICAgICBjb25zdCBmaXJzdFdlYktpdENvbW1pdCA9IGZpcnN0Q29t
bWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmaXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2aXNp
b24oKSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtmaXJzdFdl
YktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOwogCiAgICAgICAgICAgICBjb25zdCBz
ZWNvbmRXZWJLaXRDb21taXQgPSBzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZp
c2lvbigpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK3NlY29uZFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgy
MjUzMjU2NTApOwogCiAgICAgICAgICAgICBjb25zdCBmaXJzdFNKQ0NvbW1pdCA9IGZpcnN0Q29t
bWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkoanNjKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdFNKQ0NvbW1pdC5yZXZpc2lvbigpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCgrZmlyc3RTSkNDb21taXQudGltZSgpLCAxNDU2OTYwNzk1MzAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdFNKQ0NvbW1pdC5yZXZpc2lvbigp
LCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmly
c3RTSkNDb21taXQudGltZSgpLCAxNDU2OTYwNzk1MzAwKTsKIAogICAgICAgICAgICAgY29uc3Qg
c2Vjb25kU0pDQ29tbWl0ID0gc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkoanNj
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRTSkNDb21taXQucmV2aXNpb24oKSwg
J293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK3NlY29uZFNKQ0Nv
bW1pdC50aW1lKCksIDE0NjIyMzA4MzcxMDApCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMw
ODM3MTAwKQogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjk4LDcgKzY5Nyw3IEBAIGRlc2Ny
aWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBN
b2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZXJDb21taXROb3RJbkNvbW1pdFNldChUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3RzID0gYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoJ2J1aWxkLXdlYmtpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDEpOwogCiAgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKDIwMCk7CiAg
ICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTcwOCwzMyArNzA3LDMzIEBAIGRlc2NyaWJlKCcvYXBp
L2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IGJ1aWxkUmVxdWVzdHNbMF07CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5pZCgpLCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3RH
cm91cElkKCksIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QudGVzdCgp
LCB0ZXN0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qub3JkZXIoKSwgMCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSks
IDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Qu
dGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3QudGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3Qub3JkZXIoKSksIDApOwogICAgICAgICBhc3NlcnQub2soYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgYXNz
ZXJ0Lm9rKCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0Lmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3QuaXNQZW5kaW5nKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAogICAgICAgICBjb25zdCBvc3ggPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5hbWUoKSwg
J21hY09TJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgpLCAnbWFjT1Mn
KTsKIAogICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAgICAgICBjb25z
dCBqc2MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIxMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChq
c2MubmFtZSgpLCAnSmF2YVNjcmlwdENvcmUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGpzYy5uYW1lKCksICdKYXZhU2NyaXB0Q29yZScpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC50b3BMZXZlbFJlcG9zaXRvcmllcygpLnNv
cnQoKG9uZSwgYW5vdGhlcikgPT4gb25lLmlkKCkgPCBhbm90aGVyLmlkKCkpLCBbb3N4LCB3ZWJr
aXRdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMo
KS5zb3J0KChvbmUsIGFub3RoZXIpID0+IHBhcnNlSW50KG9uZS5pZCgpKSAtIHBhcnNlSW50KGFu
b3RoZXIuaWQoKSkpLCBbb3N4LCB3ZWJraXRdKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVx
dWVzdC5yZXBvc2l0b3J5R3JvdXAoKS5hY2NlcHRzKGNvbW1pdFNldCkpOwogICAgIH0pOwogCkBA
IC03NDQsNyArNzQzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSku
dGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5k
QnlJZCgyMDApOwogICAgICAgICAgICAgYXNzZXJ0KHRlc3QpOwpAQCAtNzUyLDc5ICs3NTEsNzkg
QEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZCg2NSk7CiAgICAgICAgICAgICBh
c3NlcnQocGxhdGZvcm0pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS5pZCgpLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3Vw
SWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1swXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBD
b21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmhhc1N0
YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5pc1BlbmRp
bmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5p
ZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzFdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFd
Lm9yZGVyKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmNv
bW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1sxXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vaygh
YnVpbGRSZXF1ZXN0c1sxXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1
aWxkUmVxdWVzdHNbMV0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMV0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmlkKCksIDcw
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJ
ZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVz
dCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnBs
YXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzJdLm9yZGVyKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwg
dGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5w
bGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQu
b2soYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzRmluaXNoZWQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMl0uaGFzU3RhcnRlZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzJdLmlzUGVuZGluZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzNdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1szXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10u
dGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCkgaW5z
dGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzNdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3Rz
WzNdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sz
XS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKIAogICAgICAg
ICAgICAgbGV0IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOwogCiAgICAgICAgICAgICBsZXQgZmlyc3RDb21taXRTZXQgPSBi
dWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENv
bW1pdFNldCk7CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKIAogICAgICAgICAgICAgbGV0IG9zeENvbW1pdCA9
IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCwgc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJl
cG9zaXRvcnkob3N4KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkp
OwogCiAgICAgICAgICAgICBsZXQgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmly
c3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21t
aXQudGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKIAogICAgICAgICAgICAgbGV0IHNlY29uZFdlYktp
dENvbW1pdCA9IHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcx
OTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRp
bWUoKSwgMTQ0ODIyNTMyNTY1MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vj
b25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04MzQsNyArODMzLDcgQEAgZGVzY3JpYmUoJy9h
cGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdi
dWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC04NDQsNyArODQzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQt
cmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJr
aXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC04NTQsNyArODUzLDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKICAg
ICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVp
bGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWls
ZFJlcXVlc3RzWzBdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxk
UmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwpAQCAtODc2LDcgKzg3NSw3IEBAIGRlc2NyaWJlKCcv
YXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgn
YnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsKQEAgLTg5OSwzMiAr
ODk4LDMyIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1
aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5p
ZCgpLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVz
dEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzBdLm9yZGVyKCksIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzJdLmlkKCksIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5pZCgpLCA3MDMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCksIDMpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCA3MTApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSwgNjAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLm9yZGVy
KCksIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwg
NzExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91
cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1s1XS5vcmRlcigpLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzZdLmlkKCksIDcxMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2
XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s3XS5pZCgpLCA3MTMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbN10udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udGVz
dEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91
cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS50ZXN0R3JvdXBJZCgp
KSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLm9yZGVyKCkpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10udGVzdEdyb3VwSWQoKSksIDYw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1szXS5vcmRlcigpKSwgMyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkpLCA3MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0udGVzdEdyb3VwSWQoKSksIDYwMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0
XS5vcmRlcigpKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s1XS5pZCgpKSwgNzExKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0ub3Jk
ZXIoKSksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbNl0uaWQoKSksIDcxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCkp
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzddLmlkKCkpLCA3MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGJ1aWxkUmVxdWVzdHNbN10udGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpKSwgMyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05MzcsMzAgKzkzNiwzMCBAQCBkZXNjcmliZSgn
L2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBN
YW5pZmVzdC5mZXRjaCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuYWxsKCkuZmluZCgodHJpZ2dlcmFibGUpID0+
IHRyaWdnZXJhYmxlLm5hbWUoKSA9PSAnYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3Vwcygp
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1naXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnd2Via2l0LXN2bicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtZ2l0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3dl
YmtpdC1zdm4nKTsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCA3MDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3Vw
KCksIGdyb3Vwc1sxXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sx
XS5pZCgpLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
cmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5pZCgpLCA3MDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sx
XSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDE3
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ucmVwb3NpdG9y
eUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1s1XS5pZCgpLCAxNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzVdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgMTcwMik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlkKCksIDE3MDMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10ucmVwb3NpdG9yeUdyb3VwKCks
IGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLmlkKCkp
LCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
cmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5pZCgpKSwgNzAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCBn
cm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbM10uaWQoKSksIDcwMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSks
IDE3MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0u
cmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpKSwgMTcwMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzZdLmlkKCkpLCAxNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzZdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSks
IDE3MDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbN10u
cmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC05NzEsMzIgKzk3MCwzMiBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9
KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0uaWQoKSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzBdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MTIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLm9yZGVyKCksIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzEzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCksIDYwMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5vcmRlcigp
LCAzKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0uaWQoKSwg
NzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91
cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
c1s0XS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzVdLmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1
XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s2XS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5vcmRlcigpLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwg
NzEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSksIDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcxMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkpLCA3MTIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVz
dEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzEzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91
cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLnRlc3RHcm91cElk
KCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbNF0ub3JkZXIoKSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpKSwg
NjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzVdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzZdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSksIDYwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2
XS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10ub3Jk
ZXIoKSksIDMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTAwOCwzNiArMTAwNywzNiBA
QCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCiAgICAgICAgICAgICAgICAgJ2J1
aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVzCiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
MF0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
J2NhbmNlbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCwgNzAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0u
b3JkZXIsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwgNDAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bMV0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uaWQs
IDcwMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRS
ZXF1ZXN0cyddWzJdLm9yZGVyLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0sICc2NScpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21t
aXRTZXQsIDQwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0udGVzdCwgJzIwMCcp
OwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciwgMyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVl
c3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNd
LnRlc3QsICcyMDAnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzBdLmlkKSwgNzAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
MF0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA0MDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVswXS5zdGF0dXMsICdjYW5jZWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAnMjAw
Jyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0uaWQpLCA3MDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5vcmRlciksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0
cyddWzFdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJl
cXVlc3RzJ11bMV0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Bv
bnNlWydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0ucGxhdGZvcm0s
ICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsy
XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKKworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVszXS5pZCksIDcwMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRS
ZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uY29tbWl0
U2V0KSwgNDAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3Bv
bnNlWydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50
ZXN0LCAnMjAwJyk7CiAgICAgICAgICAgICB9LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnU2hvdWxkIG5vdCBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1p
dHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1j
b21taXRzLXRlc3RzLmpzCmluZGV4IDE1MTkxMGJhZWIyNTU2MDI2YjkyZjBhMzFiZDE5MDU2OGJm
YWI3MTMuLjI4NTY5ZjA2MzczMDRlM2E2MmNmNzcwMDkyMzkzZjdmMGU3MzY1OTcgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVz
dHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29t
bWl0cy10ZXN0cy5qcwpAQCAtMTE5LDIyICsxMTksMjIgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChjb21taXQsIHN1Ym1pdHRlZCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRbJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZFsncmV2aXNpb24nXSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChuZXcgRGF0ZShjb21taXRbJ3RpbWUnXSkudG9JU09TdHJpbmcoKSwgc3VibWl0
dGVkWyd0aW1lJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydtZXNzYWdlJ10sIHN1
Ym1pdHRlZFsnbWVzc2FnZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9y
TmFtZSddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0WydhdXRob3JFbWFpbCddLCBzdWJtaXR0ZWRbJ2F1dGhvciddWydhY2NvdW50J10p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJtaXR0
ZWRbJ3JldmlzaW9uJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3IERhdGUoY29t
bWl0Wyd0aW1lJ10pLnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2Un
XSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3Vi
bWl0dGVkWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFsnYXV0aG9yRW1haWwnXSwgc3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKICAg
ICAgICAgaWYoc3VibWl0dGVkWydwcmV2aW91c0NvbW1pdCddKSB7CiAgICAgICAgICAgICBhc3Nl
cnQub2soY29tbWl0WydwcmV2aW91c0NvbW1pdCddKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFsncHJldmlvdXNDb21taXQnXSwgbnVs
bCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBv
c2l0b3J5Pi8nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlO
b3RGb3VuZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBv
c2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQ2
LDggKzE0Niw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdCcpOwogICAgICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIApAQCAtMTU1LDE4ICsxNTUsMTggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JS
ZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJl
c3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8nKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRz
ID0gcmVzdWx0Wydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbW1pdHMgPSBz
dWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdHNbMF0sIHN1Ym1pdHRlZENvbW1pdHNbMF0pOwog
ICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdHNb
MV0sIHN1Ym1pdHRlZENvbW1pdHNbMV0pOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKGNvbW1pdHNbMl0sIHN1Ym1pdHRlZENvbW1pdHNbMl0pOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzJdWydwcmV2aW91c0NvbW1pdCddLCBj
b21taXRzWzFdWydpZCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1syXVsncHJldmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9y
UmVwb3J0KHN1YnZlcnNpb25Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0
cy8nLCBzeXN0ZW1WZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvJyk7CiAgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMg
PSByZXN1bHRbJ2NvbW1pdHMnXTsKICAgICAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb21t
aXRzID0gc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIHN1Ym1pdHRlZENvbW1pdHMubGVuZ3RoKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgc3VibWl0
dGVkQ29tbWl0c1s1XVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNF1bJ3JldmlzaW9uJ10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzJdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzNdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1szXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1syXVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbNF1bJ3JldmlzaW9u
J10sIHN1Ym1pdHRlZENvbW1pdHNbMV1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzVdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzBdWydy
ZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5s
ZW5ndGgsIHN1Ym1pdHRlZENvbW1pdHMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1s1XVsn
cmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNb
MV1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNF1bJ3JldmlzaW9uJ10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzJdWydyZXZpc2lvbiddLCBzdWJt
aXR0ZWRDb21taXRzWzNdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1szXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1syXVsncmV2
aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbNF1b
J3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMV1bJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzVdWydyZXZpc2lvbiddLCBzdWJtaXR0
ZWRDb21taXRzWzBdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9KTsKQEAgLTE5NCw3ICsxOTQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1
bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vbGRl
c3QnLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC9vbGRlc3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVw
b3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIw
Miw4ICsyMDIsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3Jp
ZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2Vb
J2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMTQs
OCArMjE0LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJz
aW9uQ29tbWl0c1snY29tbWl0cyddWzBdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
QEAgLTIyNyw5ICsyMjcsOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBy
ZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9vbGRlc3QnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydj
b21taXRzJ11bNV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3Rl
bVZlcnNpb25Db21taXRzWydjb21taXRzJ11bNV1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIGRlc2NyaWJlKCIv
YXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMv
PHJlcG9zaXRvcnk+L2xhdGVzdCcsICgpID0+IHsKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4g
UmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJlcG9zaXRvcnki
LCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhdGVzdCcpLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRv
cnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIApAQCAtMjQ1LDggKzI0NSw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXRlc3QnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXRlc3QnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21t
aXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ10uc2xpY2UoKS5wb3AoKSk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yNzAsOSArMjcwLDkgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdWydyZXZpc2lvbiddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBd
WydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjg0LDEz
ICsyODQsMTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhd2FpdCBkYi5xdWVyeShgREVMRVRFIEZST00gdGVzdHMgV0hFUkUgdGVzdF9uYW1l
ID0gJ0EtVGVzdCdgKTsKIAogICAgICAgICAgICAgY29uc3QgcGxhdGZvcm1zID0gYXdhaXQgZGIu
c2VsZWN0QWxsKCdwbGF0Zm9ybXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChwbGF0Zm9y
bXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwbGF0Zm9ybXMu
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgY29uc3QgdGVzdF9tZXRyaWNzID0gYXdhaXQgZGIu
c2VsZWN0QWxsKCd0ZXN0X21ldHJpY3MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
X21ldHJpY3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
X21ldHJpY3MubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgY29uc3QgdGVzdHMgPSBhd2FpdCBk
Yi5zZWxlY3RBbGwoJ3Rlc3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDEp
OwogCiAgICAgICAgICAgICBhc3NlcnQodGVzdF9tZXRyaWNzWzBdLmlkICE9IHRlc3RzWzBdLmlk
KTsKIApAQCAtMzAyLDcgKzMwMiw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L2xhc3QtcmVw
b3J0ZWQnLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RG
b3VuZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZv
dW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC0zMTQsOCArMzE0LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xh
c3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29t
bWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTMyMyw4ICsz
MjMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7
J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvbGFzdC1yZXBvcnRlZCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNl
Wydjb21taXRzJ10sIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQw
LDggKzM0MCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0s
IHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ10uc2xpY2UoKS5wb3AoKSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CkBAIC0zNTMsOSArMzUzLDkgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0z
NzIsMzEgKzM3MiwzMSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRl
ZD9mcm9tPTM2NyZ0bz0zNzAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRz
J107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3VsdHNbMF07Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2QzY4Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1NpZXJyYTE2QzY4Jyk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0zNzAmdG89MzY3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0
cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9m
cm9tPTIwMCZ0bz0yOTknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209
MzY5JnRvPTQzMicpOwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0c1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0LnJldmlzaW9uLCAnU2llcnJhMTZEMzInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJldmlzaW9uLCAnU2llcnJhMTZEMzInKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS9j
b21taXRzLzxyZXBvc2l0b3J5Pi88Y29tbWl0PicsICgpID0+IHsKICAgICAgICAgaXQoInNob3Vs
ZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJl
cG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScpLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIApAQCAtNDE2LDcgKzQxNiw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC8yMTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vu
a25vd25Db21taXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC00MjgsOCArNDI4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
LzIxMDk1MCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1
bHRbJ2NvbW1pdHMnXVswXSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDog
bnVsbCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NTAnLApAQCAtNDQ3LDgg
KzQ0Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigo
cmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJz
aW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
QEAgLTQ1OCw4ICs0NTgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRz
KTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVz
dWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5P3By
ZWZpeC1tYXRjaD1mYWxzZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1l
QXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMV0pOwogICAgICAgICB9KTsKIApAQCAtNDY4LDggKzQ2OCw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgYWRkU2xh
dmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgYXdhaXQgcmVtb3Rl
LnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29t
bWl0cyk7CiAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8yMTA5NDk/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0
cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7CiAK
QEAgLTQ3OCw3ICs0NzgsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRz
KTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVz
dWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ/cHJl
Zml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZp
c2lvblByZWZpeCcgd2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBleHRyYWN0IG1hdGNo
ZXMgc3BlY2lmaWVkIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKQEAgLTQ4Niw4ICs0
ODYsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyKTsK
ICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXIpOwogICAgICAgICAgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEw
OTQ/cHJlZml4LW1hdGNoPXRydWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBjb21taXRzT25lUHJlZml4
T2ZUaGVPdGhlclsnY29tbWl0cyddWzBdKTsKICAgICAgICAgfSk7CiAKQEAgLTQ5Niw3ICs0OTYs
NyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTA/cHJlZml4LW1hdGNoPXRydWUn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNv
bW1pdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdVbmtub3duQ29tbWl0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJzaG91bGQgbm90
IG1hdGNoIHByZWZpeCBhbmQgcmV0dXJuICdVbmtvd25Db21taXQnIHdoZW4gc3ZuIGNvbW1pdCBz
dGFydHMgd2l0aCAncicgcHJlZml4IGFuZCB0aGVyZSBpcyBubyBleGFjdCBtYXRjaCIsIGFzeW5j
ICgpID0+IHsKQEAgLTUwNCw3ICs1MDQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNp
b25Db21taXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAg
Y29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
cjIxMDk1P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgic2hvdWxkIGhhbmRsZSBjb21taXQgcmV2aXNpb24gd2l0aCBzcGFjZSIs
ICgpID0+IHsKQEAgLTUxNSwxMiArNTE1LDEyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09T
JTIwWC8xMC4xMS4xMCUyMFNpZXJyYTE2QzY3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVz
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21t
aXRzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQgPSByZXN1bHRz
LmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5pZCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJzEwLjExLjEw
IFNpZXJyYTE2QzY3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbW1pdC5pZCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXQucmV2aXNpb24sICcxMC4xMS4xMCBTaWVycmExNkM2NycpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCkBAIC01MzgsMTMgKzUzOCwxMyBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEzMjMnKQogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAg
Y29uc3Qgb3duZWRDb21taXQgPSByZXN1bHRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG93bmVkQ29tbWl0LnJlcG9zaXRvcnksIDIpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvd25lZENvbW1pdC5yZXZpc2lvbiwgJzIxMDk1MCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvd25lZENvbW1pdC5pZCwgMik7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG93bmVkQ29tbWl0LnJlcG9zaXRvcnkpLCAyKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3duZWRDb21taXQucmV2aXNpb24s
ICcyMTA5NTAnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
b3duZWRDb21taXQuaWQpLCAyKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
NTU4LDggKzU1OCw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9v
d25lci1yZXZpc2lvbj0xMC4xMiUyMDE2QTMyMycpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHRzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHMuY29tbWl0cywg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywg
J09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzLmNv
bW1pdHMsIFtdKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTczLDggKzU3
Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzLzEvb3duZWQtY29tbWl0cz9vd25lci1yZXZp
c2lvbj0xMC4xMiUyMDE2QTMyNCcpCiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuc3RhdHVzLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLmxlbmd0
aCwgMCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkKICAgICB9KTsKQEAgLTU4Miw3ICs1
ODIsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNj
cmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi8/cHJlY2VkaW5nUmV2aXNpb249PGNvbW1p
dC0xPiZsYXN0UmV2aXNpb249PGNvbW1pdC0yPicsICgpID0+IHsKICAgICAgICAgaXQoInNob3Vs
ZCByZXR1cm4gUmVwb3NpdG9yeU5vdEZvdW5kIHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIHJl
cG9zaXRvcnkiLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9mcm9tPTIxMDkwMCZ0bz0yMTEwMDAn
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5k
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU5NCw3ICs1OTQsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDkwMCZs
YXN0UmV2aXNpb249MjExMDAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtu
b3duQ29tbWl0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIApAQCAtNjA3LDggKzYwNyw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/
cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ5Jmxhc3RSZXZpc2lvbj0yMTA5NTAnKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYyMSw3ICs2MjEsNyBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk1MCZsYXN0UmV2aXNpb249MjEw
OTQ5Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQ29tbWl0UmFuZ2Un
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZENvbW1pdFJhbmdlJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTYzNSw4ICs2MzUsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2Vk
aW5nUmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1Nycp
OwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21taXQpID0+IGNvbW1p
dFsncmV2aXNpb24nXSksIFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIyNjU3J10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1p
dHMnXS5tYXAoKGNvbW1pdCkgPT4gY29tbWl0WydyZXZpc2lvbiddKSwgWycxMC4xMiAxNkIyNTU1
JywgJzEwLjEyIDE2QjI2NTcnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTY1MCw3ICs2NTAsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5n
UmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNv
bnNpc3RlbnRDb21taXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY2
NCw3ICs2NjQsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5nUmV2
aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbmNvbnNp
c3RlbnRDb21taXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY3OCw4
ICs2NzgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5nUmV2aXNp
b249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNjkzLDggKzY5Myw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2Fw
aS9jb21taXRzL21hY09TLz9wcmVjZWRpbmdSZXZpc2lvbj0xMC4xMiUyMDE2QTMyMyZsYXN0UmV2
aXNpb249MTAuMTIlMjAxNkIyNjU3Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC03MDgsOCArNzA4LDggQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRp
bmdSZXZpc2lvbj0yMTA5NDgmbGFzdFJldmlzaW9uPTIxMDk1MCcpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAg
IGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7
CiAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAogICAgICAgICAgICAg
ICAgICAgICByZXZpc2lvbjogJzIxMDk0OScsCkBAIC03NDMsOCArNzQzLDggQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9X
ZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0NyZsYXN0UmV2aXNpb249MjEwOTQ5Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydj
b21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF0pOwogICAgICAgICAg
ICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cydd
WzFdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgICAgIH0pOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFu
aWZlc3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1tYW5pZmVzdC10ZXN0cy5qcwppbmRleCBiZGEyNzRmYjE5OTZkNDdhNjEyMTQzZmNmNTIyZDZk
OTk0YzRlZmQ4Li4zNmVmZWJkMGZkMDM0YWMwODBhZTAwYzhlNWMwZWU3NmYwNGQyZDA0IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVz
dC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1tYW5pZmVzdC10ZXN0cy5qcwpAQCAtMTMsNyArMTMsNyBAQCBkZXNjcmliZSgnL2FwaS9tYW5p
ZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgZ2VuZXJhdGUgYW4gZW1wdHkg
bWFuaWZlc3Qgd2hlbiBkYXRhYmFzZSBpcyBlbXB0eSIsICgpID0+IHsKICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpLnRoZW4oKG1h
bmlmZXN0KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKG1h
bmlmZXN0KS5zb3J0KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hi
b2FyZCcsICdkYXNoYm9hcmRzJywKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
T2JqZWN0LmtleXMobWFuaWZlc3QpLnNvcnQoKSwgWydhbGwnLCAnYnVnVHJhY2tlcnMnLCAnYnVp
bGRlcnMnLCAnZGFzaGJvYXJkJywgJ2Rhc2hib2FyZHMnLAogICAgICAgICAgICAgICAgICdmaWxl
VXBsb2FkU2l6ZUxpbWl0JywgJ21heFJvb3RSZXVzZUFnZUluRGF5cycsICdtZXRyaWNzJywgJ3Bs
YXRmb3JtR3JvdXBzJywgJ3JlcG9zaXRvcmllcycsICdzaXRlVGl0bGUnLAogICAgICAgICAgICAg
ICAgICdzdGF0dXMnLCAnc3VtbWFyeVBhZ2VzJywgJ3Rlc3RBZ2VUb2xlcmFuY2VJbkhvdXJzJywg
J3Rlc3RzJywgJ3RyaWdnZXJhYmxlcyddKTsKIApAQCAtNDUsMjIgKzQ1LDIyIEBAIGRlc2NyaWJl
KCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLmluc2VydCgnYnVnX3RyYWNrZXJzJywgYnVnemlsbGFEYXRhKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvbWFuaWZlc3QnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdC
dWd6aWxsYScsIGJ1Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25h
bWU6ICdCdWd6aWxsYScsIGJ1Z1VybDogJ2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAog
ICAgICAgICAgICAgICAgIG5ld0J1Z1VybDogJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycsIHJl
cG9zaXRvcmllczogbnVsbH19KTsKIAogICAgICAgICAgICAgbGV0IG1hbmlmZXN0ID0gTWFuaWZl
c3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CiAgICAgICAgICAgICBsZXQgdHJhY2tlciA9
IEJ1Z1RyYWNrZXIuZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQodHJhY2tlcik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxsYScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtp
dC5vcmcvYi8xMjMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5ld0J1Z1Vy
bCgpLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodHJhY2tlci5uYW1lKCksICdCdWd6aWxsYScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRyYWNrZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtpdC5vcmcvYi8x
MjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5ld0J1Z1VybCgp
LCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAg
ICAgaXQoInNob3VsZCBjbGVhciBCdWcgYW5kIEJ1Z1RyYWNrZXIgc3RhdGljIG1hcHMgd2hlbiBy
ZXNldCIsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgp
Lmluc2VydCgnYnVnX3RyYWNrZXJzJywgYnVnemlsbGFEYXRhKTsKICAgICAgICAgY29uc3QgY29u
dGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVz
dCcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7
bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJsOiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcics
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWdUcmFja2VycywgezE6
IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVy
JywKICAgICAgICAgICAgIG5ld0J1Z1VybDogJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycsIHJl
cG9zaXRvcmllczogbnVsbH19KTsKIAogICAgICAgICBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVz
dChjb250ZW50KTsKQEAgLTkyLDI4ICs5MiwyOCBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcs
IGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoMTEpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcv
MTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dl
YktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZp
c2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAg
IGxldCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7CiAgICAgICAgICAgICBhc3NlcnQo
bWFjb3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsK
IAogICAgICAgICAgICAgbGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMjIpOwogICAgICAg
ICAgICAgYXNzZXJ0KGlvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zLm5hbWUoKSwg
J2lPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvcy5uYW1lKCksICdpT1Mn
KTsKIAogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRy
YWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQu
b3JnLycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tlci5u
YW1lKCksICdCdWd6aWxsYScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNr
ZXIuYnVnVXJsKDEyMyksICdodHRwczovL3dlYmtpdC5vcmcvYi8xMjMnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLm5ld0J1Z1VybCgpLCAnaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRyYWNrZXIu
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKIAogICAgICAgICAgICAgdHJhY2tlciA9IEJ1Z1Ry
YWNrZXIuZmluZEJ5SWQoMik7CiAgICAgICAgICAgICBhc3NlcnQodHJhY2tlcik7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5uYW1lKCksICdSYWRhcicpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUodHJhY2tlci5yZXBvc2l0b3Jp
ZXMoKSksIFtpb3MsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJh
Y2tlci5uYW1lKCksICdSYWRhcicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWUodHJhY2tlci5yZXBvc2l0b3JpZXMoKSksIFtpb3MsIG1h
Y29zXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCBkZXNj
cmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgbGV0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTEpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Lm93bmVkUmVwb3NpdG9yaWVzKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQu
b3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCF3ZWJraXQub3duZWRSZXBvc2l0b3Jp
ZXMoKSk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwog
ICAgICAgICAgICAgYXNzZXJ0KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5h
bWUoKSwgJ09TIFgnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3N4Lm93bmVkUmVw
b3NpdG9yaWVzKCksIFtSZXBvc2l0b3J5LmZpbmRCeUlkKDM1KV0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdPUyBYJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9yeS5maW5k
QnlJZCgzNSldKTsKIAogICAgICAgICAgICAgbGV0IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
MjIpOwogICAgICAgICAgICAgYXNzZXJ0KGlvcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW9zLm5hbWUoKSwgJ2lPUycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5vd25lZFJl
cG9zaXRvcmllcygpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3Mu
bmFtZSgpLCAnaU9TJyk7CisgICAgICAgICAgICBhc3NlcnQub2soIWlvcy5vd25lZFJlcG9zaXRv
cmllcygpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBkZXNj
cmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL21hbmlmZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZGVycywgeworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkZXJzLCB7CiAgICAgICAgICAgICAgICAg
JzEnOiB7bmFtZTogJ1NvbWVCdWlsZGVyJywgYnVpbGRVcmw6ICdodHRwczovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvJGJ1aWxkZXJOYW1lL2J1aWxkLyRidWlsZFRhZyd9LAogICAgICAgICAg
ICAgICAgICcyJzoge25hbWU6ICdTb21lT3RoZXJCdWlsZGVyJywgYnVpbGRVcmw6IG51bGx9CiAg
ICAgICAgICAgICB9KTsKQEAgLTE2NSwxMyArMTY1LDEzIEBAIGRlc2NyaWJlKCcvYXBpL21hbmlm
ZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgYnVpbGRlciA9IEJ1aWxkZXIu
ZmluZEJ5SWQoMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lQnVpbGRlcicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgJ2h0dHBzOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9Tb21lQnVpbGRlci9idWlsZC8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVCdWlsZGVyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCAnaHR0cHM6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1NvbWVCdWlsZGVyL2J1aWxkLzEyMycpOwogCiAg
ICAgICAgICAgICBidWlsZGVyID0gQnVpbGRlci5maW5kQnlJZCgyKTsKICAgICAgICAgICAgIGFz
c2VydChidWlsZGVyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLm5hbWUoKSwg
J1NvbWVPdGhlckJ1aWxkZXInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLnVy
bEZvckJ1aWxkKDEyMyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkZXIubmFtZSgpLCAnU29tZU90aGVyQnVpbGRlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgbnVsbCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0yMDIsMTQgKzIwMiwxNCBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAg
ICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC50ZXN0cywgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LnRlc3RzLCB7CiAgICAgICAgICAgICAgICAgIjEiOiB7Im5hbWUiOiAiU29tZVRlc3QiLCAi
cGFyZW50SWQiOiBudWxsLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjIiOiB7Im5h
bWUiOiAiU29tZU90aGVyVGVzdCIsICJwYXJlbnRJZCI6IG51bGwsICJ1cmwiOiBudWxsfSwKICAg
ICAgICAgICAgICAgICAiMyI6IHsibmFtZSI6ICJDaGlsZFRlc3QiLCAicGFyZW50SWQiOiAiMSIs
ICJ1cmwiOiBudWxsfSwKICAgICAgICAgICAgICAgICAiNCI6IHsibmFtZSI6ICJHcmFuZENoaWxk
IiwgInBhcmVudElkIjogIjMiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICB9KTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Lm1ldHJpY3MsIHsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5tZXRyaWNzLCB7CiAgICAgICAgICAgICAg
ICAgJzUnOiB7bmFtZTogJ1RpbWUnLCB0ZXN0OiAnMScsIGFnZ3JlZ2F0b3I6IG51bGx9LAogICAg
ICAgICAgICAgICAgICc2Jzoge25hbWU6ICdUaW1lJywgdGVzdDogJzInLCBhZ2dyZWdhdG9yOiAn
VG90YWwnfSwKICAgICAgICAgICAgICAgICAnNyc6IHtuYW1lOiAnTWFsbG9jJywgdGVzdDogJzIn
LCBhZ2dyZWdhdG9yOiAnVG90YWwnfSwKQEAgLTI0NCw3ICsyNDQsNyBAQCBkZXNjcmliZSgnL2Fw
aS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChpb3NHcm91cCk7
CiAgICAgICAgICAgICBhc3NlcnQobWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKICAg
ICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChzb21lVGVzdCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAgICAgICAg
IGFzc2VydChtYXZlcmlja3MuaGFzVGVzdChjaGlsZFRlc3QpKTsKQEAgLTI1Myw5ICsyNTMsOSBA
QCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFz
c2VydChtYXZlcmlja3MuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAgICAgICAg
ICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFsbG9jKSk7CiAgICAg
ICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNHcm91cCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkg
aVBob25lIDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVz
Lm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogICAgICAgICAgICAgYXNzZXJ0KGlvczlpcGhv
bmU1cy5oYXNUZXN0KHNvbWVUZXN0KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1
cy5oYXNUZXN0KHNvbWVPdGhlclRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9u
ZTVzLmhhc1Rlc3QoY2hpbGRUZXN0KSk7CkBAIC0yNjQsNjMgKzI2NCw2MyBAQCBkZXNjcmliZSgn
L2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlw
aG9uZTVzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0VGltZSkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAgICAgICAg
ICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMuZ3JvdXAoKSwgaW9zR3JvdXApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlvczlpcGhvbmU1cy5ncm91cCgpLCBpb3NH
cm91cCk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1BsYXRmb3JtcyA9IG1hY0dyb3VwLnBsYXRm
b3JtcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtcy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2ZXJpY2tzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNQbGF0Zm9ybXNbMF0sIG1hdmVyaWNr
cyk7CiAKICAgICAgICAgICAgIGNvbnN0IGlvc1BsYXRmb3JtcyA9IGlvc0dyb3VwLnBsYXRmb3Jt
cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtcy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvc1BsYXRmb3Jtc1swXSwgaW9zOWlwaG9uZTVzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NQbGF0Zm9ybXNbMF0sIGlvczlpcGhv
bmU1cyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1lKCksICdTb21l
VGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0LnBhcmVudFRlc3QoKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0LnBhdGgoKSwgW3Nv
bWVUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3QubmFtZSgp
LCAnU29tZVRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdC5w
YXJlbnRUZXN0KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
b21lVGVzdC5wYXRoKCksIFtzb21lVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFzb21lVGVz
dC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtzb21lVGVzdE1ldHJpY10pOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMubmFtZSgpLCAnVGltZScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JOYW1lKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmxhYmVsKCks
ICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0TWV0cmljLmNo
aWxkTWV0cmljcygpLCBjaGlsZFRlc3QubWV0cmljcygpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzb21lVGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7Ci0KLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRl
c3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0LnBhcmVudFRlc3Qo
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVPdGhlclRlc3QucGF0
aCgpLCBbc29tZU90aGVyVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzb21lVGVzdC5jaGlsZFRlc3RzKCksIFtjaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc29tZVRlc3QubWV0cmljcygpLCBbc29tZVRlc3RNZXRyaWNdKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLm5hbWUoKSwg
J1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5h
Z2dyZWdhdG9yTmFtZSgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lVGVzdE1ldHJpYy5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChzb21lVGVzdE1ldHJpYy5jaGlsZE1ldHJpY3MoKSwgY2hpbGRUZXN0Lm1ldHJp
Y3MoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RNZXRyaWMuZnVs
bE5hbWUoKSwgJ1NvbWVUZXN0IDogVGltZScpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5wYXJlbnRUZXN0KCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhdGgoKSwg
W3NvbWVPdGhlclRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZU90aGVyVGVzdC5vbmx5
Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNv
bWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1lJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uYWdncmVnYXRvck5h
bWUoKSwgJ1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5t
ZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwg
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0u
ZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2Mn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5h
Z2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21l
T3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGlsZE1ldHJp
Y3MoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3Qu
bWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9jIDogVG90YWwn
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRl
c3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBz
b21lVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5wYXRoKCks
IFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCks
ICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5t
ZXRyaWNzKClbMF0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUg
OiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3Qu
bWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1Nv
bWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5hZ2dy
ZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5j
aGlsZE1ldHJpY3MoKS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDog
TWFsbG9jIDogVG90YWwnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxk
VGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWNoaWxkVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5jaGlsZFRlc3RzKCks
IFtncmFuZENoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5t
ZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3Qu
bWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxk
VGVzdCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0
Lm5hbWUoKSwgJ0dyYW5kQ2hpbGQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFuZENo
aWxkVGVzdC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5k
Q2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVz
dC5jaGlsZFRlc3RzKCksIFtncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5m
dWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6IFRpbWUnKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUoKSwgJ0dyYW5kQ2hp
bGQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5wYXJl
bnRUZXN0KCksIGNoaWxkVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5kQ2hpbGRU
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoZ3JhbmRDaGlsZFRlc3Qub25seUNvbnRhaW5zU2lu
Z2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENoaWxkVGVz
dC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFuZENoaWxk
VGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFu
ZENoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1NvbWVU
ZXN0IFx1MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBUaW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVzdHMoKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJp
Y3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hp
bGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29t
ZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3NCw1OSArMzc0LDU5IEBAIGRlc2NyaWJlKCcvYXBpL21h
bmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNo
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51cmxG
b3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9zV2Via2l0
MSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NX
ZWJraXQxLm93bmVySWQoKSwgOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJraXQx
LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3NXZWJraXQxLm93bmVy
SWQoKSksIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS51cmxG
b3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IHNoYXJlZCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzaGFyZWQubmFtZSgpLCAnU2hhcmVkJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNvbWVU
ZXN0ID0gVGVzdC5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVz
dC5uYW1lKCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNv
bWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNvbWVPdGhl
clRlc3QgPSBUZXN0LmZpbmRCeUlkKDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVP
dGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOwogCiAgICAg
ICAgICAgICBjb25zdCBjaGlsZFRlc3QgPSBUZXN0LmZpbmRCeUlkKDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGlvczlpcGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25l
IDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLm5hbWUo
KSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogCiAgICAgICAgICAgICBjb25zdCBtYXZlcmlja3MgPSBQ
bGF0Zm9ybS5maW5kQnlJZCg0Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2ZXJpY2tz
Lm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKIAogICAgICAgICAgICAg
Y29uc3Qgc2llcnJhID0gUGxhdGZvcm0uZmluZEJ5SWQoMTA0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2llcnJhLm5hbWUoKSwgJ1RydW5rIFNpZXJy
YSBNYWNCb29rUHJvMTEsMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFi
bGUuYWxsKCkubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmln
Z2VyYWJsZS5hbGwoKS5sZW5ndGgsIDMpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNvc1RyaWdn
ZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIG1h
dmVyaWNrcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3NUcmlnZ2VyYWJsZS5uYW1l
KCksICdidWlsZC53ZWJraXQub3JnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
bWFjb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21l
T3RoZXJUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3Qs
IG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3Qs
IG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgbWF2
ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IGlvc1RyaWdn
ZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVz
dCwgaW9zOWlwaG9uZTVzKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChpb3NUcmlnZ2Vy
YWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zVHJp
Z2dlcmFibGUubmFtZSgpLCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zVHJpZ2dlcmFibGUubmFtZSgpLCAnaW9z
LWJ1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJh
YmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1cyks
IGlvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5m
aW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1RyaWdn
ZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5k
QnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NUcmln
Z2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmlu
ZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NUcmlnZ2Vy
YWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUu
ZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIHNpZXJyYSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwobWFjVHJpZ2dlcmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndlYmtpdC5vcmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1lKCks
ICdtYWMtYnVpbGQud2Via2l0Lm9yZycpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY1RyaWdnZXJh
YmxlLmFjY2VwdGVkVGVzdHMoKS5oYXMoc29tZVRlc3QpKTsKIAogICAgICAgICAgICAgY29uc3Qg
Z3JvdXBzID0gbWFjVHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBUcmlnZ2VyYWJs
ZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKGdyb3Vwcyk7CiAKICAgICAgICAgICAgIGNvbnN0
IGVtcHR5Q3VzdG9tU2V0ID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKQEAgLTQ0NSwzNSArNDQ1LDM1
IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
Y3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQsICcxOTE2MjInKTsKICAgICAgICAgICAgIGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZC5z
ZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkLCAnODY0NTYnKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3Jv
dXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIHRydWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0
aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNb
MF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwg
ZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmlz
SGlkZGVuKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNj
ZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoZW1w
dHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFd
LmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCB0cnVlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhX
ZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzJdLm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3Jv
dXBzWzJdLnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9T
WCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhj
dXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRo
V2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBz
WzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9T
WCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2Nl
cHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFy
ZWQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFj
Y2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmlzSGlkZGVuKCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0c0N1c3RvbVJv
b3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29z
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoZW1w
dHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXBzWzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJL
aXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNj
ZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwg
ZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLm5hbWUo
KSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzJdLnJl
cG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0V2l0
aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0u
YWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5k
U2hhcmVkKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJd
LmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCmluZGV4IDM1MmI2MTJmNzY3
NjE4NTVlNzhmNTM2YmIzYTEzMDg5NTVhY2IxZjQuLjI2YWYzZDMwMWM1ZGEzMzQ2NjIxOTQ4N2Iw
MzQ3N2NhMjI0ZGNjYzYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKQEAg
LTI0MywxMiArMjQzLDEyIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1
aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5
UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JHtyZXN1bHQubWV0cmlj
SWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1Jl
cXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBAIGRl
c2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01v
dW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVh
c3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWApOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yNjksMTIgKzI2OSwxMiBAQCBkZXNjcmliZSgiL2FwaS9tZWFz
dXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9y
UmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1Rp
bWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxh
dGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1hJm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MiwxMiArMjgyLDEyIEBAIGRlc2NyaWJlKCIv
YXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1
aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExp
b24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmlj
SWR9YmApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkTWV0cmlj
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTcsNyArMzE3LDcgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1l
bnQtc2V0Lz9wbGF0Zm9ybT00NiZtZXRyaWM9NWApLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0KGZhbHNlKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC0zMjYsMzEgKzMyNiwzMSBAQCBkZXNjcmliZSgiL2FwaS9tZWFz
dXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9y
UmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1Rp
bWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRU
aW1lJ10pKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhyZXNw
b25zZSkuc29ydCgpLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qu
a2V5cyhyZXNwb25zZSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnY2x1c3RlckNvdW50Jywg
J2NsdXN0ZXJTaXplJywgJ2NsdXN0ZXJTdGFydCcsCiAgICAgICAgICAgICAgICAgICAnY29uZmln
dXJhdGlvbnMnLCAnZWxhcHNlZFRpbWUnLCAnZW5kVGltZScsICdmb3JtYXRNYXAnLCAnbGFzdE1v
ZGlmaWVkJywgJ3N0YXJ0VGltZScsICdzdGF0dXMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIFsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWwogICAgICAgICAgICAgICAgICdp
ZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50JywgJ3N1bScsICdzcXVhcmVTdW0nLCAnbWFya2Vk
T3V0bGllcicsCiAgICAgICAgICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1lJywgJ2J1
aWxkJywgJ2J1aWxkVGltZScsICdidWlsZFRhZycsICdidWlsZGVyJ10pOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1l
LnN0YXJ0VGltZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CiAgICAgICAgICAgICBh
c3NlcnQodHlwZW9mKHJlc3BvbnNlWydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICdsYXN0
TW9kaWZpZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1
cnJlbnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlz
KHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddKSwgWydjdXJyZW50J10pOwogCiAgICAgICAgICAg
ICBjb25zdCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50
J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHJlc3BvbnNlWydm
b3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQo
cmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zvcm1hdE1h
cCddLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChy
ZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAg
IG1lYW46IDMsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAg
ICAgICAgc3VtOiAxNSwKQEAgLTM2Nyw3ICszNjcsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJl
bWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVw
b3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAg
ICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUn
KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYiA9
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKQEAgLTM4MywyMCArMzgzLDIwIEBAIGRlc2NyaWJlKCIv
YXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkZXJzID0gcmVzdWx0WzJdOwogICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXN1bHRb
M107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlcnMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50SWQgPSBydW5zWzBdWydpZCdd
OwogICAgICAgICAgICAgY29uc3QgYnVpbGRJZCA9IGJ1aWxkc1swXVsnaWQnXTsKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydpZCddOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydjb25maWd1cmF0
aW9ucyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVt
ZW50ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhP
ZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1
cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJZCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1h
cCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lk
JyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWFz
dXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxkSWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydm
b3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50
LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uVGltZSA9ICso
bmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0J11bJ3Rp
bWVzdGFtcCddKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvbkJ1aWxkVGltZSA9ICsobmV3
IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0p
LCB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydm
b3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFuOiAxMywK
ICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiA2
NSwKQEAgLTQzOSw3ICs0MzksNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCiAg
ICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAogICAgICAgICAgICAg
ICAgYnVpbGRUYWc6ICcxMjQnIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3Jt
YXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3Vy
cmVudFJvd3NbMV0pLCB7CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAgICAgICAg
ICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAtNDY2LDE2
ICs0NjYsMTYgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1
cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1l
dHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKIAogICAgICAgICBjb25zdCBjdXJyZW50Um93cyA9
IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZv
cm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRhZywgMTI3
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCdd
LCBjdXJyZW50Um93c1sxXSkuYnVpbGRUYWcsIDEyOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRh
ZywgJzEyNycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25z
ZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgJzEyOCcpOwogICAgICAg
ICBhc3NlcnQoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLmNv
bW1pdFRpbWUgPCByZXNwb25zZS5zdGFydFRpbWUpOwogICAgICAgICBhc3NlcnQoZm9ybWF0KHJl
c3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmNvbW1pdFRpbWUgPCByZXNwb25z
ZS5zdGFydFRpbWUpOwogCiAgICAgICAgIGNvbnN0IGJhc2VsaW5lUm93cyA9IHJlc3BvbnNlWydj
b25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmFzZWxp
bmVSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgMTMxKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGlu
ZVJvd3NbMV0pLmJ1aWxkVGFnLCAxMjkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmFz
ZWxpbmVSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9y
bWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgJzEz
MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9y
bWF0TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsICcxMjknKTsKICAgICB9KTsKIAog
ICAgIGl0KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBidWlsZCB0aW1lIHdoZW4gY29tbWl0IHRp
bWVzIGFyZSBtaXNzaW5nIiwgKCkgPT4gewpAQCAtNTIyLDggKzUyMiw4IEBAIGRlc2NyaWJlKCIv
YXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBy
ZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0k
e3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50Um93cyA9
IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0
TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAg
ICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiAxNSwKQEAg
LTUzMyw3ICs1MzMsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiArRGF0ZS5VVEMoMjAxNywgMCwgMTks
IDE1LCAyOCwgMSksCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6ICtEYXRlLlVUQygyMDE3LCAw
LCAxOSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGFnOiAnMTAwMScgfSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10s
IGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAgICAgICAg
ICAgICAgICBtZWFuOiA3LAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAg
ICAgICAgICAgICAgIHN1bTogMzUsCkBAIC01NjIsOSArNTYyLDkgQEAgZGVzY3JpYmUoIi9hcGkv
bWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkv
bWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHty
ZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2
ZSB0d28gY2x1c3RlcnMnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRUYWdz
KHJlc3BvbnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwg
J2N1cnJlbnQnKSwKICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblsw
XVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWlsZFRhZyddXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTgwLDEwICs1ODAsMTAgQEAgZGVzY3JpYmUoIi9hcGkv
bWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkv
bWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHty
ZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxk
IGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CiAg
ICAgICAgICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsn
Y3VycmVudCddOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwg
MiwgJ3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRXaXRoQW5j
aWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWls
ZFRhZyddXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVu
Z3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwgW3Jl
cG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWlsZFRp
bWVbMF1bJ2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYwMywxNCAr
NjAzLDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQu
bWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1Jlc3VsdCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0uanNvbmAp
LnRoZW4oKGNhY2hlZFJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOwogICAgICAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2FjaGVkUmVz
dWx0WydzdGFydFRpbWUnXX0uanNvbmApOwogICAgICAgICAgICAgfSkudGhlbigob2xkUmVzdWx0
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb2xkYnVpbGRUYWdzID0gYnVpbGRUYWdzKG9s
ZFJlc3VsdCwgJ2N1cnJlbnQnKTsKICAgICAgICAgICAgICAgICBjb25zdCBuZXdidWlsZFRhZ3Mg
PSBidWlsZFRhZ3MobmV3UmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dChvbGRidWlsZFRhZ3MubGVuZ3RoID49IDIsICdUaGUgb2xkIGNsdXN0ZXIgc2hvdWxkIGNvbnRh
aW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG5l
d2J1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBuZXcgY2x1c3RlciBzaG91bGQgY29udGFpbiBh
dCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1aWxk
VGFncy5zbGljZSgwLCAyKSwKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1aWxkVGFn
cy5zbGljZSgwLCAyKSwKICAgICAgICAgICAgICAgICAgICAgJ1R3byBjb25zZXFjdXRpdmUgY2x1
c3RlcnMgc2hvdWxkIHNoYXJlIHR3byBkYXRhIHBvaW50cycpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwpAQCAtNjI5LDkgKzYyOSw5IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50
LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBtYW5pZmVzdCA9IE1h
bmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwogCiAgICAgICAgICAgICAgICAgY29u
c3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdNb3VudGFpbiBMaW9uJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNZXRyaWMuYWxsKCkubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgICAgICBjb25zdCBtZXRyaWMgPSBNZXRyaWMuYWxsKClbMF07Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmltYXJ5
Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwbGF0Zm9ybS5sYXN0TW9kaWZpZWQobWV0cmljKSwgcHJpbWFyeUNsdXN0ZXJbJ2xhc3RN
b2RpZmllZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTY3
MywxMCArNjczLDEwIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9u
ICgpIHsKICAgICBpdCgic2hvdWxkIGFsbG93IHRvIHJlcG9ydCBhIGJ1aWxkIHJlcXVlc3QiLCBh
c3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJlcG9ydEFmdGVy
QWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJl
cXVlc3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0
aFN0YXR1cygnL2FwaS9tZWFzdXJlbWVudC1zZXQvP2FuYWx5c2lzVGFzaz01MDAnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwg
WworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10s
IFtbMSwgNCwgMywgMTIsIDUwLCBbCiAgICAgICAgICAgICAgICAgWycxJywgJzknLCAnMTAuOC4y
IDEyQzYwJywgbnVsbCwgMF0sIFsnMicsICcxMScsICcxNDE5NzcnLCBudWxsLCAxMzYwMTQwOTIw
OTAwXV0sCiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1cnJl
bnQnXV0pOwogICAgIH0pOwpAQCAtNzExLDE3ICs3MTEsMTcgQEAgZGVzY3JpYmUoIi9hcGkvbWVh
c3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpOwogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShU
ZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCByZXBv
cnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRo
Q29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lQW5kQnVpbGRSZXF1ZXN0KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCiAgICAgICAgIGNvbnN0IHJhd1dl
YktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21taXRz
L1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENvbW1pdC5j
b21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZFdl
YktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0gYXdhaXQg
cmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4yJTIwMTJD
NjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0udGlt
ZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7
CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T05XaXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUwMCcpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywgMTIs
IDUwLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVu
dHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgIFsnMScsICc5JywgJzEwLjgu
MiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWycyJywgJzExJywgJzE0
MTk3NycsIG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAgICAgMSwg
MTM2MjA0NjMyMzM4OCwgJzEyMycsIDEsIDEsICdjdXJyZW50J11dKTsKICAgICB9KTsKQEAgLTc1
NywxNCArNzU3LDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVw
b3J0V2l0aENvbW1pdHNOZWVkc1JvdW5kQ29tbWl0VGltZV0pOwogCiAgICAgICAgIGNvbnN0IHJh
d1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21t
aXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENvbW1p
dC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3Rl
ZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0gYXdh
aXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4yJTIw
MTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0u
dGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGlt
ZSk7CiAKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlQbGF0Zm9ybUFuZE1ldHJp
YygnTW91bnRhaW4gTGlvbicsICdGcmFtZVJhdGUnKTsKICAgICAgICAgY29uc3QgcHJpbWFyeUNs
dXN0ZXIgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmlj
SWR9YCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJh
dGlvbnMuY3VycmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJhdGlvbnMuY3VycmVudCwg
W1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCiAgICAgICAgICAgICBbMSwgMSwgJzEwLjguMiAx
MkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWzIsIDIsICcxNDE5NzcnLCBu
dWxsLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWVdXSwKICAgICAgICAgICAgIGV4cGVjdGVkV2Vi
S2l0Q29tbWl0VGltZSwgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDFdXSk7CiAgICAgfSk7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBv
cnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IDMyNDczMzk2MTg4ZjY4YzczOWQ3
NDhhYmY4YTg2ZmVkNGE0MGZmZTEuLmI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQwYzMwYzRi
MTg1OWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC03OCwxNiArNzgs
MTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZlIG5h
bWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlz
c2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
ICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCAoKSA9PiB7
CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2
ZU5vdEZvdW5kJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNl
bGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk1
LDcgKzk1LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRy
dWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChlbXB0
eVJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTAzLDExICsxMDMsMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZl
cnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKTsK
ICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWyduYW1lJ10s
IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXVsnbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF1b
J3JlcG9zaXRvcnknXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTUsNyArMTE1LDcg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29t
bWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVz
dFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBAIC0xMjMsMTQgKzEyMywxNCBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGxldCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgbGV0IHJl
cG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIw
MTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJz
WzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1l
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydh
Y2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24n
XSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYg
MDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0
ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJz
WzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERh
dGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM4
LDEwICsxMzgsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0
PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25JbnZhbGlkQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb24n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmV2aXNpb24nKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTQ5LDMyICsxNDksMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RB
bGwoJ2NvbW1pdHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21t
aXR0ZXJzID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsKIAogICAg
ICAgICAgICAgbGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNb
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgcmVw
b3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScp
LnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3Nh
Z2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydwcmV2aW91c19jb21taXQnXSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERh
dGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRl
cnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBv
cnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToy
MC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1b
J2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3ByZXZp
b3VzX2NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogCiAgICAgICAgICAgICByZXBvcnRlZERh
dGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsndGltZSddLnRvU3RyaW5nKCks
IG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVz
c2FnZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1sxXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1sxXVsncHJldmlvdXNfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3In
XVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFdWydhY2Nv
dW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydy
ZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWyd0
aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3Ry
aW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ21lc3Nh
Z2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydwcmV2aW91c19jb21taXQn
XSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQnXSwgcmVw
b3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTE4MiwxMCArMTgyLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JS
ZXBvcnQoc3VidmVyc2lvbkludmFsaWRQcmV2aW91c0NvbW1pdCkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdGYWlsZWRUb0ZpbmRQcmV2aW91c0NvbW1pdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFByZXZp
b3VzQ29tbWl0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNl
bGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTIwMCwxOCArMjAwLDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdj
b21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERh
dGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sw
XVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3In
XVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBd
WydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0yMjgsMjMgKzIyOCwyMyBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwo
W2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwog
ICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMg
PSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQn
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJz
dERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnNbMF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3NhZ2UnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10s
IGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHRlcnNbMF1bJ25hbWUnXSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGZpcnN0
RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzFdWydpZCddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzFdWydtZXNzYWdlJ10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBudWxsKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTI1OSwxMiArMjU5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRl
cnMnKTsKICAgICAgICAgfSkudGhlbigoY29tbWl0dGVycykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBhdXRo
b3JbJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1sw
XVsnYWNjb3VudCddLCBhdXRob3JbJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zMDIsMTUgKzMwMiwxNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9y
UmVwb3J0KHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1pdCkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzYW1lUmVwb3NpdG9yeU5hbWVJbk93bmVkQ29t
bWl0QW5kTWFqb3JDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncmVwb3NpdG9y
aWVzJywgeyduYW1lJzogJ1dlYktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICBsZXQg
b3NXZWJLaXQgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgd2Via2l0UmVwb3NpdG9yeSA9
IHJlc3VsdFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc1dlYktpdC5pZCwgd2Vi
a2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJLaXQubmFt
ZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RF
cXVhbChvc1dlYktpdC5pZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3NXZWJLaXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBudWxs
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Myw3ICszNDMsNyBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRXaXRoT3du
ZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25D
b21taXRXaXRoT3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7
J3JldmlzaW9uJzogJ1NpZXJyYTE2RDMyJ30pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJv
d3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnV2ViS2l0IENvbW1pdCd9KSwKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ0phdmFTY3JpcHRDb3Jl
IGNvbW1pdCd9KSwKQEAgLTM1MSw1NCArMzUxLDU0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICJXZWJLaXQifSksCiAgICAg
ICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ0phdmFT
Y3JpcHRDb3JlJ30pXSkKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbMF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbMF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdCA9IHJlc3VsdFsw
XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdENvbW1pdCA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bCh3ZWJraXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFs
KHdlYmtpdENvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
Ml0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0u
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY0NvbW1pdCA9IHJlc3VsdFsyXVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQsIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeFJl
cG9zaXRvcnkgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4
UmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4
UmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNF0u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNF0ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRbNF1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0UmVwb3NpdG9yeSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeSwgbnVs
bCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbNV1bMF07Ci0gICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
bm90U3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRv
cnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdC5yZXBvc2l0b3J5LCBq
c2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5
Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5
Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NS
ZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtp
dFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1p
dC5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBv
c2l0b3J5LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RS
b3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQuaWQsICdvd25lZCc6
IHdlYmtpdENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAgICAgICAg
IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdC5p
ZCwgJ293bmVkJzoganNjQ29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAg
ICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJl
cG9zaXRvcnkuaWR9KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJL
aXRDb21taXQgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3du
ZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0
cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3du
ZXJDb21taXRGb3JKU0NDb21taXQgPSAgcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdCwgbnVsbCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAg
ICAgfSkKIApAQCAtNDQ4LDcgKzQ0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xh
dmVGb3JSZXBvcnQobXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29tbWl0c1dpdGhPd25lZENvbW1pdHMp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgbXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29t
bWl0c1dpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsn
cmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93
cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZDNjcnfSksCiAgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0J30p
LApAQCAtNDU4LDQ5ICs0NTgsNDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAgICAgICAgICAgICAg
ICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2YVNjcmlwdENvcmUn
fSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHQubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHQubGVuZ3RoLCA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MCA9IHJlc3VsdFswXVswXTsKLSAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29t
bWl0MSA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21t
aXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQx
LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0
MCA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQw
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NDb21taXQwLCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QganNjQ29tbWl0MSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RT
dHJpY3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFs1XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WzVdLmxlbmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IG9zeFJlcG9zaXRvcnkgPSByZXN1
bHRbNV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4UmVwb3NpdG9yeSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVs
bCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNl0ubGVuZ3RoLCAxKQorICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzZdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9z
eFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzddLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NSZXBvc2l0b3J5ID0gcmVzdWx0WzddWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRv
cnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkub3du
ZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5
LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpz
Y1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDEucmVw
b3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5
LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxLnJlcG9zaXRv
cnksIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnku
aWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDEucmVwb3NpdG9y
eSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7
CiAKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0
X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MC5pZCwgJ293bmVkJzogd2Via2l0Q29t
bWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MS5pZCwgJ293bmVk
Jzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCkBAIC01MDgsMjUgKzUw
OCwyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRfb3du
ZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3duZWQnOiBqc2NDb21taXQxLmlk
fSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygn
Y29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJlcG9zaXRvcnkuaWR9KV0pOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQu
bGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3Ro
LCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21taXQwID0gcmVzdWx0WzBdWzBd
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0
MCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRG
b3JXZWJLaXRDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsx
XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21t
aXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29t
bWl0Rm9yV2ViS2l0Q29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0
RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJD
b21taXRGb3JKU0NDb21taXQwID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3Qgb3duZXJDb21taXRGb3JKU0NDb21taXQxID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQxLCBudWxs
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNTQ4LDE4ICs1NDgsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0V2l0aEVtcHR5T3duZWRD
b21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21t
aXRXaXRoRW1wdHlPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAg
ICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0
QWxsKCdyZXBvc2l0b3JpZXMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXRfb3duZXJzaGlwcycsICdv
d25lcicpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgbGV0
IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgcmVwb3NpdG9yaWVzID0gcmVz
dWx0WzFdOwogICAgICAgICAgICAgbGV0IGNvbW1pdF9vd25lcnNoaXBzID0gcmVzdWx0WzJdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1swXS5pZCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzWzBdLm5hbWUsICdPU1gnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRfb3duZXJzaGlwcy5sZW5ndGgsIDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1sw
XS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzWzBdLm5h
bWUsICdPU1gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRfb3duZXJz
aGlwcy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVyc2lv
bkNvbW1pdEFuZE93bmVkQ29tbWl0V2l0aFRpbWVzdGFtcCkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQt
Y29tbWl0cy8nLCBzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0YW1w
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1l
c3RhbXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1lc3RhbXAnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiB9KTsKQEAgLTY5OSwxMSArNjk5LDExIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdh
aXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LycpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgY29uc3QgY29tbWl0cyA9
IHJlc3VsdFsnY29tbWl0cyddOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgs
IDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7CiAKICAgICAg
ICAgcmV0dXJuIGNvbW1pdHM7CiAgICAgfQpAQCAtNzEyLDcgKzcxMiw3IEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAg
ICB7CiAgICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAgICAgICAgIGxldCBy
ZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOwogICAgICAgICByZXN1bHQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvJyk7
CiAgICAgICAgIHJldHVybiByZXN1bHRbJ2NvbW1pdHMnXTsKICAgICB9CkBAIC03MjAsOSArNzIw
LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwg
ZnVuY3Rpb24gKCkgewogICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoRXhwZWN0ZWRGYWlsdXJl
KGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpCiAgICAgewogICAgICAgICBjb25z
dCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyhjb21taXRzVXBk
YXRlLCBleHBlY3RlZEZhaWx1cmVOYW1lKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHks
IG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51bGwpOwog
ICAgIH0KIAogICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoICJNaXNzaW5nUmV2aXNpb24iIGlmIGNv
bW1pdCB1cGRhdGUgZG9lcyBub3QgaGF2ZSBjb21taXQgcmV2aXNpb24gc3BlY2lmaWVkJywgYXN5
bmMgKCkgPT4gewpAQCAtNzQ2LDMyICs3NDYsMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNv
bW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCBp
bml0aWFsUmVwb3J0Q29tbWl0cygpOwogCiAgICAgICAgIGxldCBjb21taXRzID0gYXdhaXQgZGF0
YWJhc2Uuc2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzBdLnJlcG9ydGVkLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0ucmVw
b3J0ZWQsIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBv
cnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJlcG9y
dGVkLCB0cnVlKTsKIAogICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGNvbW1p
dHMgU0VUIGNvbW1pdF9yZXBvcnRlZD1mYWxzZScpOwogICAgICAgICBsZXQgcmVzdWx0ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBjb21taXRzVXBkYXRlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CiAKICAgICAgICAgY29tbWl0cyA9IGF3YWl0IGRhdGFiYXNlLnNlbGVjdEFsbCgnY29tbWl0
cycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwogICAgIH0p
OwogCiAgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSBjb21taXRzIG1lc3NhZ2UsIHRp
bWUsIG9yZGVyLCBhdXRob3IgYW5kIHByZXZpb3VzIGNvbW1pdCIsIGFzeW5jICgpID0+IHsKICAg
ICAgICAgY29uc3QgY29tbWl0cyA9IGF3YWl0IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0dXMo
Y29tbWl0c1VwZGF0ZSwgJ09LJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksICdC
cmVha3MgYnVpbGRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmls
aXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0u
bWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2FnZScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1sxXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdLm9yZGVyLCAyMTA5NDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXS5vcmRlciwgMjEwOTQ5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFd
LnRpbWUsIDE0ODQ4ODYyMzA2NDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5w
cmV2aW91c0NvbW1pdCwgY29tbWl0c1swXS5pZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzBdLnRlc3RhYmlsaXR5LCAnQnJlYWtzIGJ1aWxkcycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgJ0NyYXNoZXMgV2ViS2l0Jyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2Un
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwgJ2Fub3Ro
ZXIgbWVzc2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5hdXRo
b3JOYW1lLCAnQ2hyaXMgRHVtZXonKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbMV0uYXV0aG9yTmFtZSwgJ1phbGFuIEJ1anRhcycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29tbWl0c1swXS5vcmRlciksIDIxMDk0OCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXRzWzFdLm9yZGVyKSwgMjEwOTQ5KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRpbWUsIDE0ODQ4ODYyMzA2NDUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5wcmV2aW91c0NvbW1pdCwg
Y29tbWl0c1swXS5pZCk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1y
ZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtdGVzdHMuanMKaW5kZXggZDlhMmNlZDY3MTgzODBmYWI5ZTBjZDViMDU3MDQ3MjE0
YmQxMzRmYS4uNWM0NDVmZWZjMGQ3MjA0YzBiYjVhMTZlMDJjZjYxMzcyZmYzZmI2OSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRl
c3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC10ZXN0cy5qcwpAQCAtMTAxLDcgKzEwMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gYnVpbGRl
ciBuYW1lIGlzIG1pc3NpbmciLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAiMjAxMy0w
Mi0yOFQxMDoxMjowMy4zODgzMDQifV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJOYW1lJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlz
c2luZ0J1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDksMTggKzEw
OSwxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNzd29yZCI6
ICJzb21lUGFzc3dvcmQifV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRp
bWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdNaXNzaW5nQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoInNo
b3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gYnVpbGRlcnMiLCAoKSA9PiB7CiAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
ZW1wdHlSZXBvcnQoKV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOb3RG
b3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJl
U3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRh
dGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTM0LDU4ICsxMzQsNTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7fX1dOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10s
IDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0J1aWxkZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0
aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDAp
OwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHJlcG9ydCB3
aXRoICJNaXNtYXRjaGluZ0NvbW1pdFRpbWUiIGlmIHRpbWUgZGlmZmVyZW5jZSBpcyBsYXJnZXIg
dGhhbiAxIHNlY29uZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZv
clJlcG9ydChlbXB0eVJlcG9ydCgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdpdE1p
c21hdGNoaW5nQ29tbWl0VGltZSgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVT
dG9yZWQnXSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3Nl
ZFJ1bnMnXSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVT
dG9yZWQnXSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3By
b2Nlc3NlZFJ1bnMnXSwgMSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hpbmdDb21t
aXRUaW1lJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10s
IDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlz
bWF0Y2hpbmdDb21taXRUaW1lJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBu
b3QgcmVqZWN0IHJlcG9ydCBpZiB0aGUgY29tbWl0IHRpbWUgZGlmZmVyZW5jZSBpcyB3aXRoaW4g
MSBzZWNvbmQiJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVw
b3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0aE9uZVNl
Y29uZENvbW1pdFRpbWVEaWZmZXJlbmNlKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJv
Y2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgp
XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAg
ICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBidWls
ZGVyIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJl
cG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAg
ICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9y
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlSZXBv
cnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9y
dHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50
WydidWlsZGVyUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50
Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRl
bnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50LCBz
dWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NywxOCArMTk3
LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3Jl
cG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Jl
cG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50
ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAgICAgICAgICAgICBkZWxl
dGUgcmVwb3J0WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0Wyd0
ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTYsMTkgKzIxNiwxOSBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChl
bXB0eVNsYXZlUmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNsYXZlUmVw
b3J0KCldKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAx
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdy
ZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29u
dGVudCA9IGVtcHR5U2xhdmVSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRl
bnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZSBzdWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxl
dGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdG9yZWRD
b250ZW50Wyd0ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250
ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0yMzgsOSArMjM4LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSku
dGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRz
WzBdWydjb250ZW50J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENvbnRlbnRb
J2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5
UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOwogICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1aWxkZXJQ
YXNzd29yZCcgaW4gc3RvcmVkQ29udGVudCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI1
MSw4ICsyNTEsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRfc2xhdmVzJyk7CiAgICAgICAgIH0pLnRoZW4o
KHNsYXZlcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlcy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlc1swXVsnbmFtZSddLCBlbXB0eVJlcG9y
dCgpWydzbGF2ZU5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVzWzBdWydu
YW1lJ10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTI2Miw4ICsyNjIsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRlcnMnKTsKICAgICAgICAgfSku
dGhlbigoYnVpbGRlcnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzWzBdWyduYW1lJ10s
IGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzMsNyArMjczLDcgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAg
ICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRzWzBdWyd0YWcnXSwgMTIzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZHNbMF1bJ3RhZyddLCAnMTIzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODMsNyAr
MjgzLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGRlbGV0ZSByZXBv
cnQuYnVpbGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgi
c2hvdWxkIHJlamVjdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5k
IGJ1aWxkIHRhZyB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLCBhc3luYyAoKSA9PiB7CkBAIC0yOTEs
NyArMjkxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICBjb25zdCByZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1i
ZXIgPSAnNDU2JzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0Y2gn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxk
ZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxkIGFjY2VwdCBp
ZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyB3aXRo
IGlkZW50aWNhbCB2YWx1ZSIsIGFzeW5jICgpID0+IHsKQEAgLTI5OSw3ICsyOTksNyBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9
IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWls
ZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KQogCiAgICAgaXQoInNob3VsZCBh
ZGQgdGhlIHBsYXRmb3JtIiwgKCkgPT4gewpAQCAtMzA4LDggKzMwOCw4IEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncGxhdGZvcm1z
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3JtcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBs
YXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0gcmVz
dWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsxXTsKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9ucyA9IHJlc3VsdFsyXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgp
LCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktp
dCcsICdtYWNPUyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNb
MF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRz
WzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9i
dWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25z
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRz
UmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydidWlsZF9j
b21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRz
UmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CiAKICAgICAgICAgICAgIGxldCByZXBvc2l0
b3J5SWRUb05hbWUgPSB7fTsKICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgcmVw
b3NpdG9yaWVzKQpAQCAtMzQ0LDkgKzM0NCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRzKQogICAg
ICAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05h
bWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwg
JzEwLjguMiAxMkM2MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1l
VG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0
aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNp
b25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGlt
ZSddLnRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6
NTU6MjAuOScpLnRvU3RyaW5nKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2MCwxNiAr
MzYwLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxk
cycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTM4MiwxNiArMzgyLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVw
b3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50
aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAyKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQxNSwxNyArNDE1LDE3IEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JS
ZXBvcnQoZmlyc3RSZXBvcnQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9ydF0p
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhlbigo
YnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgW3NlY29uZFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5n
Q29tbWl0UmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFJldmlzaW9uJyk7CiAgICAgICAgICAgICBh
c3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE0MTk3NycpID49IDApOwog
ICAgICAgICAgICAgYXNzZXJ0KEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9mKCcxNTAw
MDAnKSA+PSAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vz
c2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
ZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTQ4Nyw4ICs0ODcsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgZnVuY3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3Jl
Z2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydCkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNl
KTsKICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAt
NTExLDcgKzUxMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9y
dFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAg
fSkudGhlbigodGVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdHMu
bWFwKChyb3cpID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RzLm1hcCgocm93KSA9PiB7IHJldHVybiByb3db
J25hbWUnXTsgfSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScsICdEdW1t
eUJlbmNobWFyaycsICdEdW1teVBhZ2VMb2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1RyYXZlcnNl
Tm9kZXMnLCAnYXBwbGUuY29tJywgJ3dlYmtpdC5vcmcnXSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtNTI2LDE0ICs1MjYsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3RfbmFt
ZSddXSA9IG5ldyBBcnJheTsKICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3db
J3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVnYXRvcl9u
YW1lJ11dKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1l
JywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydU
aW1lJywgJ0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0
TmFtZVRvTWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMn
XV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snTW9k
aWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snYXBwbGUu
Y29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NTUyddLCBb
WydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVz
dE5hbWVUb01ldHJpY3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0aG1ldGljJ10sIFsn
VGltZScsICdHZW9tZXRyaWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlCZW5jaG1hcmsnXSwgW1snVGltZScsICdBcml0aG1l
dGljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01l
dHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11dKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ01vZGlm
eU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snVHJhdmVyc2VOb2RlcyddLCBbWydUaW1lJywgbnVs
bF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJp
Y3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1snVGltZScs
IG51bGxdXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDIsNyArNTQyLDcgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJpY3Ms
IHRlc3RfY29uZmlndXJhdGlvbnMKICAgICAgICAgICAgIFdIRVJFIHRlc3RfaWQgPSBtZXRyaWNf
dGVzdCBBTkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYwogICAgICAgICAgICAgQU5EIHRlc3Rf
bmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSku
dGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5y
b3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dC5yb3dzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yb3dzWzBd
OwogICAgICAgICAgICAgfSk7CiAgICAgfQpAQCAtNTY1LDIwICs1NjUsMjAgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBjb25z
dCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0
Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0
Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDAsIGdy
b3VwOiBudWxsLCB2YWx1ZTogNTAwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAg
ICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTEwLCByZWxh
dGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIs
IGdyb3VwOiBudWxsLCB2YWx1ZTogNTIwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTMwLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gNTAwICsgNTEw
ICsgNTIwICsgNTMwOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSdd
LCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzcXVhcmVfc3VtX2NhY2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAqIDUyMCAr
IDUzMCAqIDUzMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2Nh
Y2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICog
NTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKICAgICAgICAgICAgIHJldHVybiBmZXRjaFRl
c3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOwogICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAg
ICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwg
b3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAg
ICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogMTAy
LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDIsIGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKQEAgLTYw
MCw5ICs2MDAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgc3VtICs9IHZhbHVlOwogICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSB2
YWx1ZSAqIHZhbHVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5p
dGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydz
dW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTYxMywxNSArNjEzLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBjb25zdCBy
dW5JZCA9IHJlc3VsdC5ydW5bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVl
cyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAgKyAxMTApIC8gMiwgKDUyMCArIDEyMCkgLyAyLCAo
NTMwICsgMTMwKSAvIDJdOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRl
cmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRl
cmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6
IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1swXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAg
ICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6
IGV4cGVjdGVkVmFsdWVzWzFdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAg
ICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1
ZXNbMl0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1szXSwgcmVsYXRp
dmVfdGltZTogbnVsbH1dKTsKICAgICAgICAgICAgIGNvbnN0IHN1bSA9IGV4cGVjdGVkVmFsdWVz
LnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0sIDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1
bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3Vt
X2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3Vt
X2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyBy
ZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5n
dGgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1
bSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hl
J10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4g
c3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
NjQyLDEwICs2NDIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1
ZTsKICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7cnVuOiBydW5JZCwg
b3JkZXI6IGksIGdyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwgdmFsdWU6IGV4cGVjdGVkVmFsdWUs
IHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVy
YXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUn
XSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUn
XSwgc3F1YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0
Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0
aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3Vt
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUn
XSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwMywxMCArNzAzLDEw
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHNx
dWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1ZTsKICAgICAgICAgICAgIGV4
cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6IE1hdGgu
Zmxvb3IoaSAvIDIpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0p
OwogICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMs
IGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2Fj
aGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9u
cy5sZW5ndGgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwg
c3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSdd
LCBzcXVhcmVTdW0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3RzIHdp
dGhvdXQgYW55IG1ldHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03
MzcsMjcgKzczNywyNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIGNvbnN0IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlv
bnNGb3JNZXRyaWMoJ0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVu
ID0gYmVuY2htYXJrUmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFy
a1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
YmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwg
dmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwg
b3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVf
dGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5p
dGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykg
KyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDog
MSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0
aCwgNCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0
ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSAr
IDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdy
b3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0p
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRp
b25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykg
LyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDog
MSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAog
ICAgICAgICBjb25zdCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRv
dGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJl
U3VtID0gYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0
b3RhbCArIHJvdy52YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
ZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNx
dWFyZVN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVu
WydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVu
Y2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1
bSk7CiAKICAgICAgICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5J
dGVyYXRpb25zRm9yTWV0cmljKCdBU3ViVGVzdCcsICdUaW1lJyk7CiAgICAgICAgIHJ1biA9IHNv
bWVUZXN0UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVzdFJl
c3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZVRl
c3RSZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAge3J1biwgb3JkZXI6IDAsIGdyb3Vw
OiBudWxsLCB2YWx1ZTogMzEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAge3J1
biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIsIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsn
bWVhbl9jYWNoZSddLCAzMS41KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVz
dWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgMzEu
NSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9j
YWNoZSddLCA2Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5y
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMzEgKiAzMSArIDMyICogMzIpOwogICAgIH0pOwogCiAg
ICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3RzIG1pc3NpbmcgdGhlIG1hdGNoaW5nIG1ldHJpYyBk
dXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03OTIsMjcgKzc5MiwyNyBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IGJlbmNo
bWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1bW15
QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVuID0gYmVuY2htYXJrUmVzdWx0
LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0
ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSAr
IDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAw
LCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVu
LCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2
ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgoNCArIDE0
KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4s
IG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZl
X3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtS
ZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgy
ICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVuLCBvcmRl
cjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2ZV90aW1l
OiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgoNCArIDE0
KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAogICAgICAgICBjb25zdCBzdW0g
PSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFs
ICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJlU3VtID0gYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCArIHJvdy52YWx1ZSAq
IHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVu
WydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJr
UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5j
aG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1
bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsn
c3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtS
ZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAKICAgICAgICAgY29u
c3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmlj
KCdBdXhpbGlhcnlSZXN1bHQnLCAnQWxsb2NhdGlvbnMnKTsKICAgICAgICAgcnVuID0gc29tZVRl
c3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0UmVzdWx0
Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdFJl
c3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6IG51
bGwsIHZhbHVlOiAzMSArIDQxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgIHty
dW4sIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDMyICsgNDIsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0
LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQxICsgMzIg
KyA0Mik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFyZV9z
dW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQyLCAyKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2Fj
aGUnXSwgKDMxICsgNDEgKyAzMiArIDQyKSAvIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgMzEgKyA0MSArIDMyICsgNDIpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVhcmVfc3Vt
X2NhY2hlJ10sIE1hdGgucG93KDMxICsgNDEsIDIpICsgTWF0aC5wb3coMzIgKyA0MiwgMikpOwog
ICAgIH0pOwogCiAgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2hlbiB0aGVyZSBhcmUg
bW9yZSB0aGFuIG9uZSBub24tbWF0Y2hpbmcgYWdncmVnYXRvcnMgaW4gYSBzdWJ0ZXN0IiwgYXN5
bmMgKCkgPT4gewpAQCAtODQ4LDcgKzg0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIH19OwogCiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0g
YXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2Uo
cmVwb3J0V2l0aEFtYmlnaW91c0FnZ3JlZ2F0b3JzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0Y2hp
bmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsKICAgICB9KTsKIAogICAgIGZ1bmN0aW9uIHJl
cG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKQpAQCAtODkyLDE2ICs4OTIsMTYgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJB
ZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2Vs
ZWN0QWxsKCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGxldCBuZXdSZXBvcnQgPSBy
ZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCk7CiAgICAgICAgICAgICBuZXdSZXBvcnQuYnVpbGRU
YWcgPSAiMTI1IjsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZFRpbWUgPSAiMjAxMy0wMi0y
OFQxMjoxNzoyNC4xIjsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbbmV3UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5z
ZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
OTMwLDE3ICs5MzAsMTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3Qx
JywgJ0NvbWJpbmVkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ21lYW5fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1f
Y2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2Nh
Y2hlJ10sIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnaXRlcmF0aW9u
X2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
bWVhbl9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1
bV9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgOSk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0
aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigocmVz
dWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtOTYyLDEzICs5NjIsMTMgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JN
ZXRyaWMoJ3Rlc3QnLCAnRnJhbWVSYXRlJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDQpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkpOwogCiAg
ICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNCwgcmVsYXRpdmVfdGltZTogMH0sCiAg
ICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6
IDUsIHJlbGF0aXZlX3RpbWU6IDEwMH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9y
ZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDMsIHJlbGF0aXZlX3RpbWU6IDIwNX1dKTsKQEAg
LTEwMDYsNyArMTAwNiw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0c1VwZGF0aW5nRGlmZmVy
ZW50VGVzdHNbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZm
ZXJlbnRUZXN0c1swXV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAg
ICAgIHJldHVybiBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAgICAgfSku
dGhlbigob3JpZ2luYWxDb25maWcpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlm
ZmVyZW50VGVzdHNbMl1dKS50aGVuKCgpID0+IHsKQEAgLTEwMjMsMTYgKzEwMjMsMTYgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVp
bGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENv
bmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENvbmZpZykg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXV0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENv
bmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICAgICAgfSkudGhlbigoY29uZmlnKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0
X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoY29u
ZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0
X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1
bnNfbGFzdF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10p
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTA2OSw3ICsxMDY5
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdh
dG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDc3LDIyICsxMDc3
LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVn
YXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KS5zZWxlY3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTIzJ30pOwogICAgICAgICB9KS50aGVuKChy
ZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZv
cm1zJywge25hbWU6ICdNb3VudGFpbiBMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbYW5vdGhlclJlcG9ydFdpdGhTYW1lQnVpbGRSZXF1ZXN0XSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnRmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVxdWVz
dCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dz
KCdidWlsZHMnLCB7dGFnOiAnMTI0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZvcm1zJywge25hbWU6
ICdMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3Jv
dXBzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1n
cm91cHMuanMKaW5kZXggYzAxOWE0MmRiMTcyNDEyMTkzMjU4ODI1MGViOTM1OTAxMTFkOTRmOS4u
MTYyOWQ0YmIwYWYxZmY0YjJkNjkzYzFjYTc1ZGY3MDdlODA4YmJjYSAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMu
anMKQEAgLTExLDM5ICsxMSwzOSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0
aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZp
Y2F0aW9uJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGdpdmUgYW4gZW1wdHkgbGlzdCBp
ZiB0aGVyZSBpcyBub3QgZXhpc3RpbmcgdGVzdCBncm91cCBhdCBhbGwnLCBhc3luYyAoKSA9PiB7
CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtd
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBhIHRlc3Qg
Z3JvdXAgd2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxlYXN0IG9uZSBidWlsZCByZXF1ZXN0
JywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEo
VGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxl
dGVkJywgJ2NhbmNlbGVkJ10pOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3It
bm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMs
ICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3Rz
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29t
bWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
bGlzdCBhbGwgdGVzdCBncm91cHMgd2l0aCBwZW5kaW5nIG5vdGlmaWNhdGlvbicsIGFzeW5jICgp
ID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21w
bGV0ZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRp
b24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVuLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMics
ICc3MDMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5jb21taXRT
ZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmlj
YXRpb24sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRl
c3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRz
LCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBub3QgbGlzdCBoaWRkZW4gdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKQEAg
LTUxLDEyICs1MSwxMiBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2Nv
bXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAg
ICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMg
U0VUIHRlc3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwog
ICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgdGVzdCBncm91cHMg
d2l0aG91dCBuZWVkcyBub3RpZmljYXRpb24gZmxhZycsIGFzeW5jICgpID0+IHsKQEAgLTY0LDI0
ICs2NCwyNCBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRl
ZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAgICAgICAg
IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VUIHRl
c3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gPSBGQUxTRSBXSEVSRSB0ZXN0Z3JvdXBfaWQgPSA2
MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlvbicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxl
cywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGEgdGVz
dCBncm91cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVkIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMg
KCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFiYXNl
KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwgWydj
b21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdydW5uaW5nJ10pOwogICAgICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzgsMTggKzEzOCwxOCBAQCBkZXNjcmliZSgnL2FwaS90
ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFk
ZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVk
JywgJ2ZhaWxlZCcsICdjb21wbGV0ZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgYXdhaXQgVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VU
IHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBf
aWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJlcXVlc3Rz
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBjb250ZW50LnRlc3RHcm91
cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmlkLCA2MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC50YXNrLCA1MDApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAudGFzayksIDUwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3Qg
Z3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYXV0aG9y
LCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLmhpZGRlbik7CiAgICAg
ICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAg
ICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAy
JywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNvbW1p
dFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAw
JywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsK
ICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdyb3VwcyBt
YXkgbmVlZCBhZGRpdGlvbmFsIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTU4
LDMxICsxNTgsMzEgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBh
bmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMg
PSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgYXdhaXQgVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VU
IHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3JvdXBf
aWQgPSA2MDEnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJlcXVlc3Rz
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxl
bmd0aCwgMik7CiAKICAgICAgICAgICAgIGNvbnN0IG9uZVRlc3RHcm91cCA9IGNvbnRlbnQudGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuaWQsIDYw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3Jv
dXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuYXV0aG9yLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvbmVUZXN0R3JvdXAu
aWQpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRl
c3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbmVU
ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFvbmVUZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayhvbmVUZXN0
R3JvdXAubmVlZHNOb3RpZmljYXRpb24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9uZVRlc3RH
cm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVU
ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob25l
VGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQw
MScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChvbmVUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcsJzcw
MScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChv
bmVUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGFub3RoZXJUZXN0R3JvdXAgPSBjb250ZW50LnRlc3RHcm91cHNb
MV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5pZCwgNjAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5vdGhlciB0
ZXN0IGdyb3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5h
dXRob3IsICd3ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChhbm90aGVyVGVzdEdyb3VwLmlkKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAubmFtZSwgJ2Fub3RoZXIgdGVzdCBn
cm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAu
YXV0aG9yLCAnd2Via2l0Jyk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWFub3RoZXJUZXN0R3Jv
dXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RHcm91cC5uZWVk
c05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2soYW5vdGhlclRlc3RHcm91cC5t
YXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVz
dEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGFub3Ro
ZXJUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMyddKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRTZXRz
LCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMsIFsnNzEwJywnNzExJywgJzcxMicsICc3MTMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywg
JzQwMScsICc0MDInXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzCmlu
ZGV4IGZmZjJhY2YxZmI2MzlhYjNlOThhMmIxYjdiM2Q0MDZkZjFhY2M3ZTEuLmJiZjkzMzY2NTBl
NWVhNDE1N2RmZmE0ZDk2MmViYjk1OTA0N2U5NDAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJp
Z2dlcmFibGUtdGVzdHMuanMKQEAgLTMwLDE0ICszMCwxNCBAQCBkZXNjcmliZSgnL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qg
d2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB7
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5v
IHNsYXZlcycsICgpID0+IHsKICAgICAgICAgY29uc3QgdXBkYXRlID0ge3NsYXZlTmFtZTogZW1w
dHlVcGRhdGUuc2xhdmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiBlbXB0eVVwZGF0ZS5zbGF2ZVBhc3N3
b3JkfTsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5k
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
U2xhdmVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgsNyArNDgsNyBA
QCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgY29uc3QgcmVwb3J0ID0ge3NsYXZlTmFtZTogZW1wdHlVcGRhdGUuc2xhdmVOYW1l
LCBzbGF2ZVBhc3N3b3JkOiAnYmFkUGFzc3dvcmQnfTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBl
bXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNTgsNyArNTgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzMsMTAgKzczLDEwIEBAIGRlc2NyaWJlKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmln
Z2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3Mp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtODcsMTIgKzg3LDEyIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIHNtYWxsVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVzdCddKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBzbWFsbFVwZGF0
ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF1bJ3Rlc3QnXSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3Rlc3QnXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsncGxhdGZvcm0nXSwgc21h
bGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10pOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMTA4LDcgKzEwOCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3VyYXRpb25F
bnRyeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRDb25maWd1cmF0aW9uRW50cnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3Jv
dXBzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTE0OSw3ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNjEs
NyArMTYxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBk
YXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTczLDcgKzE3
Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NSw3ICsxODUsNyBA
QCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
RGF0YScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
dXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVw
bGljYXRlUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0R1cGxpY2F0ZVJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTIyMSwxOCArMjIxLDE4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKSwgZGIuc2VsZWN0
QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpXSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0
b3J5R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3Vy
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlv
bnNbMF1bJ3Rlc3QnXSwgTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSwgTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0aW9u
c1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFn
YmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1w
dHlUcmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1Myw4ICsy
NTMsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtpbml0
aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxSZXN1
bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNd
ID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9ucywg
aW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVw
b3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25z
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcywg
aW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBAIC0yNzUs
OCArMjc1LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBb
aW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBpbml0aWFs
UmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0b3J5R3Jv
dXBzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmlndXJhdGlv
bnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0
aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKICAgICB9KTsKIApAQCAt
MjkwLDE0ICsyOTAsMTQgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChy
ZXBvc2l0b3J5R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5
c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gZGIuc2VsZWN0QWxs
KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChyZXBvc2l0b3J5R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUn
XSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10s
ICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3VwIGlzIGF3ZXNvbWUnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzOSArMzQ0LDM5IEBAIGRlc2NyaWJlKCcvYXBp
L3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShU
cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAg
ICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2Vw
dHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAn
c3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
Lm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJr
aXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
LmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAn
c3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFtt
YWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZldGNoKCkp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IFRyaWdn
ZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3Jv
dXAuYWxsKCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kVG9w
TGV2ZWxCeU5hbWUoJ1dlYktpdCcpOwogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0
b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnbWFjT1MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBt
YWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNj
ZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFj
b3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygp
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQ
YXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJr
aXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBd
LmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5uYW1l
KCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9v
dHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3Rh
dHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC0zOTUsMjkgKzM5NSwyOSBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2Uu
YWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUn
KSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScp
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3Jl
cG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFi
bGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10s
IE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdz
eXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7
CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAo
cmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBv
c2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0
b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdy
b3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBv
c2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFj
b3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0
b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKIAog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3Rh
dHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0
QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICduYW1lJyksIGRiLnNlbGVjdEFs
bCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknKV0pOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtyZXBvc2l0b3J5R3JvdXBz
LCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbEdyb3Vwcyk7CiAKICAgICAgICAg
ICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0b3JpZXNCeUdyb3VwKHJl
cG9zaXRvcmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2JqZWN0LmtleXMocmVwb3Np
dG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1h
Y29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdy
b3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVwb3NpdG9yaWVzQnlHcm91cCku
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9y
aWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3Np
dG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdyb3Vw
c1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC00MzYsMTcgKzQzNiwxNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2Uu
YWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUn
KSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScp
XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3Jl
cG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFi
bGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10s
IE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sw
XVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdz
eXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7
CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3JvdXAo
cmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhyZXBv
c2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0Rh
dGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0
b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdy
b3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBv
c2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEubWFj
b3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0
b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsKICAg
ICAgICAgICAgIGluaXRpYWxSZXBvc2l0b3JpZXMgPSByZXBvc2l0b3JpZXM7CiAKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2Fw
aS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKQEAgLTQ1NSwxMyArNDU1LDEz
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRv
cnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9ubHknKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFs
R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIGluaXRp
YWxHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxl
J10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLCBpbml0aWFsUmVwb3NpdG9y
aWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLCBp
bml0aWFsUmVwb3NpdG9yaWVzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRl
c3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2Fk
LXJvb3QtdGVzdHMuanMKaW5kZXggYThiMTkxZDc1ZmMxYzgwMTY2YmEzNmUxMzUzMzViMDEwNjE4
ODlmOC4uNDk4MmYwOThiZTgxNzY1OTU3ZmExNTIzY2I3ZmRhYTNkNjcwNzVmNCAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3Qt
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
dXBsb2FkLXJvb3QtdGVzdHMuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVu
IHJvb3QgZmlsZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywge30pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5
RmlsZSgnc29tZS5kYXQnLCAnc29tZSBjb250ZW50JykudGhlbigocm9vdEZpbGUpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlKSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnU2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnNsYXZlTmFtZTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxv
YWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5h
bWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDksNyAr
MTQ5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZGVyTmFtZTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBy
ZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZGVyTmFtZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRC
dWlsZGVyTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU5LDcgKzE1OSw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGRlbGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVpbGROdW1i
ZXIgPSAnMWFiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQo
cm9vdEZpbGUpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnNDU2JzsKICAgICAgICAg
Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlz
bWF0Y2gnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgYWNjZXB0IGlmIGJvdGggYnVpbGQg
bnVtYmVyIGFuZCBidWlsZCB0YWcgZXhpc3RzIHdpdGggc2FtZSB2YWx1ZScsIGFzeW5jICgpID0+
IHsKQEAgLTE4OCwzOSArMTg4LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogCiAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNo
ID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQo
d2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGNvbnN0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQt
anNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25z
dCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAg
Y29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsn
V2ViS2l0J10pOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7
CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3Vs
ZCBjb250aW51ZSB3b3JraW5nIHdpdGggYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRhZyBpcyBub3Qg
cHJlc2VudCcsIGFzeW5jICgpID0+IHsKQEAgLTIyOSw0MCArMjI5LDQwIEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0Mg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwog
CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAg
ICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02
MTYxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05
MTkxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRl
Um9vdEZpbGUoKTsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwg
YnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICBkZWxldGUgcmVwb3J0LmJ1
aWxkVGFnOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnMTIzJzsKICAgICAgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVu
IGJ1aWxkIHRpbWUgaXMgbWlzc2luZycsICgpID0+IHsKQEAgLTI3MSw3ICsyNzEsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxl
dGUgcmVwb3J0LmJ1aWxkVGltZTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBs
b2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxkVGltZSA9
ICdXZWQsIDEwIE1heSAyMDE3IDAzOjAyOjMwIEdNVCc7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxk
VGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjkxLDcgKzI5MSw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0
ZSByZXBvcnQuYnVpbGRSZXF1ZXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3Qn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVp
bGRSZXF1ZXN0ID0gJ2FiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5k
Q3JlYXRlUm9vdEZpbGUoKS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IG1ha2VSZXBvcnQocm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVp
bGRSZXF1ZXN0VHlwZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0zMTksNyArMzE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5yZXBvc2l0b3J5TGlzdDsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzI5LDcgKzMyOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290Lycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdhK2In
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRh
KCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0zNDcsNjYgKzM0Nyw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9v
dC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAg
ICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2gg
PSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21t
aXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxl
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBi
dWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxv
YWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAg
dXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RS
YXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RH
cm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBi
dWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZp
bGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJv
b3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2
YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAg
fSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VS
ZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeVdyb25n
S2V5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3
LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEtleUZvclJlcG9zaXRvcnknKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5Rm9yUmVw
b3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDI0LDY2ICs0MjQsNjYgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAg
ICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
ICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAg
ICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwog
ICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0
ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcv
YXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxv
YWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1
cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21l
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxl
bmFtZSgpLCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRC
dWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmlu
aXNoZWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJv
b3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZp
bGUubWFrZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3Jp
cHQgQ29udGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQo
KSwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQyJywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNj
cmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290
LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTAxLDc5ICs1MDEs
NzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVu
ZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShz
aGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNo
YXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290Rmls
ZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpKSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVw
bG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2Fk
ZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZp
bGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVk
Um9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdy
b3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVz
dCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwg
YnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
bm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJv
b3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFy
ZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0g
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0
b3J5TGlzdCA9ICciYSInOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MDEsOCArNjAxLDggQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9z
aXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIkJhZFJlcG9zaXRvcnlOYW1lIl0nOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9h
ZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUn
XSwgJ0JhZFJlcG9zaXRvcnlOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ0JhZFJlcG9zaXRv
cnlOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MTYsOCArNjE2LDggQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVw
b3J0LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIm1hY09TIl0nOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnkn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwg
J21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ21hY09TJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC02MzUsMzQgKzYzNSwzNCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAg
ICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2gg
PSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBh
ZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9
PiB7CkBAIC02NzAsNDUgKzY3MCw0NSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJL
aXQiLCAiU2hhcmVkIl0nOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0
YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9
IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBs
b2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290
LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9h
ZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVz
dEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVx
dWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVz
dCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRSb290KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9hZGVkUm9vdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3Vw
bG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Vi
a2l0UGF0Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBsb2FkZWRSb290KTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0g
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIy
OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzI3LDg3ICs3MjcsODcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0R3JvdXAg
PSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAg
IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICB9KS50
aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9y
dChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsK
ICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24o
dXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29t
ZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1aWxk
UmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAg
ICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3Qs
IGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1
aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290
RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFrZVRlbXBv
cmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29udGVudCAw
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tvd25lclJl
cG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwg
JzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRl
ZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAganNj
Um9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5p
ZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9v
dC5maWxlbmFtZSgpLCAnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29yZS1Sb290
LmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRS
ZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwg
YnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVp
bGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5h
bGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3RdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9h
ZGVkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCmluZGV4IGJlZGM1NDc3ZDU1YTRjNzQ3YjIxZDcw
OTQ4NTUyZTM1N2Y0NjJhOTQuLjAyZTFkODlmY2MxZDIyZWE2ODZhY2VkMTYwMjI5MjMyMWZkZGQ4
ZDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcwpAQCAtNywxOSArNywxOCBAQCBn
bG9iYWwuRm9ybURhdGEgPSByZXF1aXJlKCdmb3JtLWRhdGEnKTsKIAogY29uc3QgVGVzdFNlcnZl
ciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBUZW1wb3Jh
cnlGaWxlID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMnKS5UZW1wb3Jh
cnlGaWxlOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9j
b21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogCiBkZXNjcmliZSgnL2Fw
aS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91dCg1MDAwKTsK
LSAgICBUZXN0U2VydmVyLmluamVjdCgpOwotCisgICAgcHJlcGFyZVNlcnZlclRlc3QodGhpcyk7
CiAgICAgVGVtcG9yYXJ5RmlsZS5pbmplY3QoKTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJJ
bnZhbGlkQXJndW1lbnRzIiB3aGVuIG5laXRoZXIgcGF0aCBub3Igc2hhMjU2IHF1ZXJ5IGlzIHNl
dCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS91cGxvYWRlZC1maWxlJykudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFy
Z3VtZW50cycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS91cGxvYWRlZC1maWxlLycpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlk
QXJndW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3Rh
dHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0y
Nyw3ICsyNiw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBs
b2FkZWQtZmlsZS8xJykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0z
NSw3ICszNCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdXBs
b2FkZWQtZmlsZS9mb28nKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTQ3LDcgKzQ2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVz
dChgL2FwaS91cGxvYWRlZC1maWxlLyR7dXBsb2FkZWRGaWxlWydpZCddfWAsICdHRVQnLCBudWxs
LCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNv
bnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY4LDEzICs2NywxMyBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3Vs
ZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZSBzcGVjaWZpZWQgU0hBMjU2IGlzIGludmFsaWQn
LCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PWFiYycpLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3Vu
ZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJOb3RG
b3VuZCIgd2hlbiB0aGVyZSBpcyBubyBmaWxlIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgU0hBMjU2
ICcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9NTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZi
ZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpLnRoZW4oKGNvbnRlbnQpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5k
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdO
b3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODYsNyArODUsNyBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBs
b2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxlLz9zaGEy
NTY9JHt1cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUsIHJlc3Bv
bnNlWyd1cGxvYWRlZEZpbGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHVwbG9hZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTk3LDExICs5NiwxMSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAg
ICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7Ci0gICAgICAgICAgICByZXR1cm4g
ZGIuY29ubmVjdCgpLnRoZW4oKCkgPT4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9maWxlcyBT
RVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCkpOworICAgICAg
ICAgICAgcmV0dXJuIGRiLnF1ZXJ5KGBVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VUIGZpbGVfZGVs
ZXRlZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJ2ApOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
YC9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRGaWxlWydzaGEyNTYnXX1gKTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xMTcsMTYgKzExNiwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhl
YWRlcnM7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRl
cygnZXRhZycpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydldGFnJ10sIHVw
bG9hZGVkRmlsZVsnc2hhMjU2J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhl
YWRlcnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CiAKICAgICAgICAgICAgIGFz
c2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnYWNjZXB0LXJhbmdlcycpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydhY2NlcHQtcmFuZ2VzJ10sICdieXRlcycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1yYW5nZXMn
XSwgJ2J5dGVzJyk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5p
bmNsdWRlcygnY29udGVudC1kaXNwb3NpdGlvbicpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxlbmFtZSo9
dXRmLTgnJ3NvbWUuZGF0YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVy
c1snY29udGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVudDsgZmlsZW5hbWUqPXV0Zi04Jydz
b21lLmRhdGApOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycykuaW5j
bHVkZXMoJ2NvbnRlbnQtbGVuZ3RoJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRl
cnNbJ2NvbnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCB1cGxvYWRlZEZp
bGVbJ3NpemUnXSk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5p
bmNsdWRlcygnbGFzdC1tb2RpZmllZCcpKTsKICAgICAgICAgfSk7CkBAIC0xNDQsNyArMTQzLDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGxhc3RNb2RpZmllZCA9IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChg
L2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9
KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ10sIGxhc3RN
b2RpZmllZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsOSArMTU1LDkgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRl
ZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5
dGVzPTUtJ319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVz
IDUtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNw
b25zZVRleHQsICdjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzAsOSAr
MTY5LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChg
L2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7
J1JhbmdlJzogJ2J5dGVzPTQtOSd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQtOS8xMicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJyBjb250ZScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5n
ZSddLCAnYnl0ZXMgNC05LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnIGNvbnRlJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xODQsOSArMTgzLDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRw
UmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHto
ZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS00J319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOC0x
MS8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwg
J3RlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRl
bnQtcmFuZ2UnXSwgJ2J5dGVzIDgtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICd0ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xOTgsOSArMTk3LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNl
bmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51
bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS0xMDAnfX0pOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhl
YWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdi
eXRlcyAwLTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9u
c2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyAwLTExLzEyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjA5LDcgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmls
ZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2Vu
ZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVs
bCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9MTItJ319KQotICAgICAgICAgICAgICAgIC50
aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJv
cikgPT4gYXNzZXJ0LmVxdWFsKGVycm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAudGhlbigo
KSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0yMjAsNyArMjE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVk
LWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0
ZXM9Mi0xJ319KQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVycm9yLCA0
MTYpKTsKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQg
bmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
NDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMzIsMTUgKzIzMSwxNSBAQCBkZXNj
cmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaWQg
PSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8k
e2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29u
dGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9u
c2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdH
RVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5
dGVzID0gOS0xMCcsICdJZi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQn
XX19KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVy
c1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAn
ZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1MiwxNSArMjUxLDE1IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpZCA9
IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7
aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250
ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25z
ZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dF
VCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0
ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1snZXRhZyddfX0pOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9
IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50
LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjcyLDEzICsyNzEsMTMgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVzcG9uc2Vb
J3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VU
JywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3Nv
bWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwg
bnVsbCwKICAgICAgICAgICAgICAgICB7J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJZi1SYW5n
ZSc6ICdmb28nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAzLDcgKzMwMiw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGVuZEJ5dGUgLSBzdGFydEJ5dGUgKyAxOyBpKyspIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBhY3R1YWwgPSByZXNwb25zZUJ1ZmZlcltpXTsKICAgICAgICAgICAg
ICAgICBjb25zdCBleHBlY3RlZCA9IGJ1ZmZlcltzdGFydEJ5dGUgKyBpXTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGluZGV4ICR7
aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2Fj
dHVhbH1gKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0dWFsLCBleHBl
Y3RlZCwgYFRoZSBieXRlIGF0IGluZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0
ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCkBAIC0zMTUsOCArMzE0LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6IGBieXRl
cyA9ICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9YH0sIHJlc3BvbnNlSGFuZGxlcn0pOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJl
c3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJh
bmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCBg
Ynl0ZXMgJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxlU2l6ZX1gKTsKICAgICAgICAgICAg
IHZlcmlmeUJ1ZmZlcigpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxk
LXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggMTRlOTQ1
NmQyZTY3YTVjNzEwMDEyMGIxNTQ2NDgwYzI3MTZkZWJmNC4uYjEwNzQ5YTBkMWU5MDM4ZTFmYjJl
OTEzOTM0YTYzYWEyMjUwZGQ1ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFw
aS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5bmMgZnVu
Y3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkxNjIy
IiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0
Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQo
KSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0
IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwog
Ci0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAg
ICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBAIC0x
NDAsMjMgKzE0MCwyMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHsnZ3JvdXAnOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5l
ZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdh
aXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRH
cm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMo
KSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwg
Mik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCks
IDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91
cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVz
dHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChncm91cC5y
ZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7CiAKICAgICAgICAgYXdhaXQg
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywge2dyb3VwOiBp
bnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdy
b3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCA0KTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0aXRpb25D
b3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVz
dHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh1cGRhdGVkR3Jv
dXBzWzBdLnJlcGV0aXRpb25Db3VudCgpKSwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSksIDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0cygp
LCB0cnVlKTsKICAgICAgICAgZm9yIChjb25zdCBjb21taXRTZXQgb2YgdXBkYXRlZEdyb3Vwc1sw
XS5yZXF1ZXN0ZWRDb21taXRTZXRzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dHMgPSB1cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RzRm9yQ29tbWl0U2V0KGNvbW1pdFNldCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAg
ICAgfQogICAgIH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBjb25zdCBp
bnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
IGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmluaXRpYWxS
ZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
bWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChncm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7
CiAgICAgICAgIGF3YWl0IGdyb3VwLnVwZGF0ZUhpZGRlbkZsYWcodHJ1ZSk7CiAKICAgICAgICAg
YXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFzeW5jICgp
ID0+IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycs
IHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pKQpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUt
YW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5kZXgg
OTk2ZDJkZDMyZDc2YmE1NDc1M2U2MzlmZjhhZjliMzU2ZjI3OTdkOC4uMGU2ODYxYjdlYzZiZWJl
NTUyYTY0ZDg3M2ZlNTc2NmI1ZDExNzQyZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0xMTMsNyArMTEzLDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJy
b3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge30pLnRoZW4oKGNvbnRlbnQpID0+
IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7
CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9y
LCAnTWlzc2luZ05hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
J01pc3NpbmdOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMjEsNyArMTIxLDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJy
b3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIGVuZFJ1bjog
MX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lz
LXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0lu
dmFsaWRFbmRSdW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0lu
dmFsaWRFbmRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzNyw3ICsxMzcsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJv
d3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46
ICJmb28iLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVu
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmls
ZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46
ICJmb28ifSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4K
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5h
bHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMTAwLCBlbmRSdW46IDF9KS50aGVu
KChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTY4LDcgKzE2OCw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2Vy
IHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46
IDEsIGVuZFJ1bjogMTAwfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlk
RW5kUnVuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52
YWxpZEVuZFJ1bicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MTgwLDcgKzE4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFt
ZTogJ2hpJywgc3RhcnRSdW46IDEsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDJ9KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNoJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlzbWF0Y2gn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIxMiwyMCArMjEy
LDIwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZpZ1Jv
dykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtj
b25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycs
IHtuYW1lOiAnaGknLCBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1
bnNbMV1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwogICAg
ICAgICB9KS50aGVuKCh0YXNrKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5u
YW1lKCksICdoaScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgp
LCAnaGknKTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5
cGUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxh
YmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5t
ZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0
MScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjQ0LDIyICsyNDQsMjIgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJp
dmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmln
Um93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScs
IHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0p
OwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5h
bHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0pLnRoZW4o
KHRhc2spID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdoaScpOwogICAg
ICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNh
dXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUg
cGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3Qo
KS5sYWJlbCgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnN0YXJ0
VGltZSgpLCAxNDQ1OTYwMDkxMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmVu
ZFRpbWUoKSwgMTQ0NTk2Njg2MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5j
aGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
cGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5NjAwOTEw
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suZW5kVGltZSgpLCAxNDQ1
OTY2ODYxMDAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MCw3ICsyODAsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3Nl
ciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBzdGFydElk
ID0gdGVzdFJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBlbmRJZCA9IHRlc3RSdW5zWzFdWydp
ZCddOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46
IGVuZElkfSk7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgog
ICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFs
eXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46IGVuZElk
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lz
VGFzaycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYW5hbHlzaXNfdGFza3MnKTsKICAgICAgICAgfSku
dGhlbigodGFza3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2tzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTIsNyArMzEyLDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBh
cGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICAgICAgICAgIG5h
bWU6ICdoaScsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApA
QCAtMzMwLDggKzMzMCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICBm
b3IgKGxldCBzdHJhdGVneSBvZiBzdHJhdGVnaWVzKQogICAgICAgICAgICAgICAgIHN0cmF0ZWd5
SWRNYXBbc3RyYXRlZ3lbJ2lkJ11dID0gc3RyYXRlZ3k7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSddLCAidGlt
ZSBzZXJpZXMgc2VnbWVudGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RyYXRl
Z3lJZE1hcFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3MgdC10ZXN0
Iik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1hcFt0YXNrUm93
WydzZWdtZW50YXRpb24nXV1bJ25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlvbiIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1sndGVz
dF9yYW5nZSddXVsnbmFtZSddLCAic3R1ZGVudCdzIHQtdGVzdCIpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMzQ2LDcgKzM0Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAg
ICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxhdGZv
cm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3co
J3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwg
cGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0g
YXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCB3
ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmll
cycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtpdFJl
cG9zaXRvcnlSb3cuaWQ7CkBAIC0zNzEsNyArMzcxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBm
dW4KICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBs
YXRmb3JtJyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0
Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlk
KCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0g
YXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCdd
fSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCB3
ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmll
cycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtpdFJl
cG9zaXRvcnlSb3cuaWQ7CkBAIC0zODcsMTggKzM4NywxOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScs
IGZ1bgogICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogCiAgICAgICAgIGNvbnN0IHRh
c2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCgh
dGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVl
c3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5j
aGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgp
LmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1l
dHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNr
LmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlw
ZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5s
YWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91
bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIHdoZW4gY29tbWl0IHNl
dCBsaXN0IGFuZCBhIHBvc2l0aXZlIHJlcGV0aXRpb24gY291bnQgaXMgc3BlY2lmaWVkJywgYXN5
bmMgKCkgPT4gewpAQCAtNDI2LDcgKzQyNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAg
ICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsK
ICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3Rf
Y29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZv
cm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQg
ZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZp
c2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNv
bnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMn
fX07CkBAIC00MzYsMzggKzQzNiwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAg
ICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydp
ZCddfSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5
SWQoY29udGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCks
ICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2Nv
bmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFz
c2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2Vz
KCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0
MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9r
KCF0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJ
ZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBd
LnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0
cmlnZ2VyYWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNr
LnBsYXRmb3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0
Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3Jt
KCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFz
a0lkKCksIHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRh
c2suaWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgp
LCB0ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwg
dGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0
KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
dGVzdCgpLCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlz
QnVpbGQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkp
OwpAQCAtNDc3LDggKzQ3Nyw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGNv
bnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAg
ICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsK
ICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Vi
a2l0SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVw
b3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRS
ZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkp
LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29u
ZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9u
KCksICcxOTE2MjMnKTsKICAgICB9KTsKIH0pOwogCkBAIC01MDAsNyArNTAwLDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmls
ZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0u
ZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBh
d2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRl
c3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAg
ICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7
Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5z
Lmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgs
IDIpOwogCiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxl
Y3RGaXJzdFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNv
bnN0IHdlYmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTU0OCw3ICs1NDgsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9k
ZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxh
dGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3
YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVz
dDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAg
ICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtj
b25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwg
Mik7CiAKICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3Jldmlz
aW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dl
YmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNTU4LDM4ICs1NTgsMzggQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJp
dmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsn
aWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAgICAgIGNvbnN0IHRhc2sg
PSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCghdGFz
ay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVxdWVzdHMo
KSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5n
ZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFi
ZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0cmlj
KCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFz
ay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4
ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVs
KCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1l
dHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0Nv
bmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdD
b25maXJtJyk7CiAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRy
aWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmln
Z2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2Vy
YWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAo
KSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFz
ay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rh
c2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQub2so
IWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTU5OSw4ICs1OTksOCBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxl
Z2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRv
cnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2
aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0
LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYy
MycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9y
UmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9y
eSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAg
ICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCBhbmQg
cmVzcGVjdCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJlcXVlc3Qn
LCBhc3luYyAoKSA9PiB7CkBAIC02MjgsNyArNjI4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5j
dGkKICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3Jt
SWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygn
dGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBw
bGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBh
d2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IG9u
ZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAgICAg
ICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5
MTYyMyd9fTsKQEAgLTYzOCwzOCArNjM4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAg
ICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNb
MV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdGFz
ayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0
YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0
cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hh
bmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5s
YWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRy
aWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5m
aXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUo
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFi
ZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2su
bWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAn
Q29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwg
J0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlv
bigpKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0
cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJp
Z2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dl
cmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVl
c3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3Vw
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3Vw
KCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRh
c2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNU
YXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBh
c3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9r
KCFidWlsZFJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC02NzksNyArNjc5LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmls
ZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJl
cXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBi
dWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0
b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJl
dmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNl
dC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2
MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRv
cnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogfSk7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0
cy5qcwppbmRleCAwOWNkMzdhYjQzNmNiM2E3YmI3Y2I4Zjg0OWJjYTlkZTIyN2MxNDQxLi5jODRm
MzQ0YWZmNmQxYmFjZTBkNGJmMjAxYWIxNGU0MTdlODBhMGQ3IDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0
LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTgzLDcgKzgz
LDcgQEAgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9
IFsiMTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewogICAg
ICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93
WydpZCddfSk7CiAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
UnVucy5sZW5ndGgsIDIpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAgICAgICAgICBuYW1lOiBuYW1lLAogICAg
ICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTM3LDcgKzEzNyw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHt9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWROYW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkTmFtZScpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IGNvbW1pdFNldHM6IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Myw3ICsxNTMsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTog
J3Rlc3QnLCB0YXNrOiAnZm9vJywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTYxLDcgKzE2MSw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogMX0p
LnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xNjksNyArMTY5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0Jywg
dGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7fX0pLnRoZW4oKGNvbnRl
bnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNzcsNyArMTc3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVw
ZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRl
bnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xODUsNyAr
MTg1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50
OiAnZm9vJywgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwg
J0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCBy
ZXBldGl0aW9uQ291bnQ6IC01LCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2
aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcs
IHRhc2s6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Is
ICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
SW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsyMTAsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzOiB7
J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJpZ2dlcmFi
bGVOb3RGb3VuZEZvclRhc2snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
ZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFt
ZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhl
bigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMzEsNyArMjMxLDcg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRz
OiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge31dfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjQyLDcgKzI0Miw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0czog
W3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX1dfSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnRm9vJzog
W119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5
Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI2
Miw3ICsyNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBj
b21taXRTZXRzOiB7J1dlYktpdCc6IFsnMSddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJu
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0
ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0yODYsNyArMjg2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1l
OiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yOTgsNyArMjk4LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcs
IHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEwLDcgKzMxMCw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3Jv
dXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmlsZScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZpbGUnKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyMSw3ICszMjEsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcG9zaXRv
cnknKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMzMSw3ICsz
MzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRT
ZXRzOiB7J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1QTI4NCdd
fX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdz
aG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0
U2V0cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzQ1LDcg
KzM0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRHVw
bGljYXRlVGVzdEdyb3VwTmFtZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTM2Miw3ICszNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0zNzgsNyArMzc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0lu
dmFsaWRDb21taXRPd25lcnNoaXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTM5MywxNyArMzkzLDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9
LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJSZXZp
c2lvbjogJzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5k
UmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQs
IHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElkKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChyZXF1
ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1swXS5pc1Rl
c3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTQx
OCwxNCArNDE4LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAg
ICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25z
dCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293
bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVB
Mjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkx
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00NDAsMTcgKzQ0MCwxNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgIHtbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNjLmlk
KCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3MzYn
fX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9uQ291
bnQ6IDEsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0uaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00NjUsMTMgKzQ2NSwxMyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25l
ZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtNDgyLDI4ICs0ODIsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0
IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgp
KTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQw
ID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9
IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3Np
dG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Vi
a2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycp
OwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0u
cmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3Vw
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwLm5h
bWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwog
ICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAg
ICAgICAgICAgIH0pOwpAQCAtNTIxLDI0ICs1MjEsMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBp
bnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKIAog
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJlcG9z
aXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXAubmFtZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICd3ZWJr
aXQtb25seScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFz
c2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAg
LTU1MywzMyArNTUzLDMzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0g
Y29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91
cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5h
bGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQn
KVswXTsKICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuYWxsKCkuZmls
dGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVswXTsKIAog
ICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAg
ICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNl
dDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9z
aXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJy
aW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qg
cmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5k
LXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5yZXBv
c2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgp
LCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJl
cG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVw
b3NpdG9yeUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFj
Y2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNj
ZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTYwMCwyOCArNjAwLDI4IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMmNlZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0MycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1N2U4Nzk1
MzMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5y
ZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2ZkMWEyOWM2
MzNiYTU3ZTg3OTUzMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKIAogICAgICAgICAgICAg
ICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAo
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1lKCks
ICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
c2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lzdGVt
LWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAo
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMSwgcmVwb3Np
dG9yeUdyb3VwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cDEsIHJlcG9zaXRvcnlHcm91cDApOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBv
c2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBv
c2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02NDIsMzIg
KzY0MiwzMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRb
J3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRS
ZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDQpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNl
dCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFj
b3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVz
KCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAKICAgICAgICAgICAgICAg
ICBjb25zdCByZXBvc2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQoIXJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAKICAgICAgICAgICAg
ICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3Vw
KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEubmFtZSgp
LCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3VwMSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtpdC1vbmx5
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDEs
IHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQo
IXJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
KHJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTY5
MSwyOCArNjkxLDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0
IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBz
ZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxvYWRlZEZp
bGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxlKV0pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQw
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9z
aXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW1VwbG9hZGVkRmlsZS5lbnN1cmVTaW5n
bGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1cGxvYWRlZEZpbGUpXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cykpOwogICAgICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNzQwLDUwICs3NDAsNTAgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBs
YXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1
XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAg
IGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Vi
a2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1
c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVz
KCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29t
bWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNv
bW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0
Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAu
ZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC04MDUsNjAgKzgwNSw2MCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQn
XTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05v
dGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRl
c3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBs
YXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3Qo
KSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdy
b3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNCdWls
ZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxk
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQo
KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0
KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3Qo
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgp
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1aWxk
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlz
QnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0
cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgp
OwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVp
bGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQxKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNv
c10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3Rz
KCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNj
LCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29t
bWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQub2soIXNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KGpzYykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAgICAgICAg
IGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTg4
MCw2MSArODgwLDYxIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50
Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2so
IWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3Jt
LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0
IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0
XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0u
aXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sw
XS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVz
dCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0
KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRT
ZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0
U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2Ms
IHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0
b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW2pz
Yywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1
c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZv
clJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1p
dEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBh
dGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5
KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwg
dHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJp
bmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0
Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpz
Yy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFz
ZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTYzLDY4ICs5NjMs
NjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91
cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVl
ZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgp
LCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50
ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQo
TW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlz
QnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNC
dWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1
aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1
aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlz
VGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNU
ZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgp
LCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNC
dWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3Qo
KSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRT
ZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBt
YWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1l
UHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMo
KSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9y
eShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVk
LWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3Vz
dG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMo
KSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJl
c0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBz
ZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNj
LTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNl
dDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDU3LDc3ICsxMDU3
LDc3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3Jv
dXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91
cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0
YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwg
UGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3Rz
ID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5p
c0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlz
QnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNC
dWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlz
VGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNU
ZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzVGVz
dCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3Qo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0KCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxk
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlz
QnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
Ml0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3QoKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0
KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0
U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCksIHNl
dDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIG93bmVkSlND
LCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3Vz
dG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtq
c2MsIG93bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkyNzM2Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKLQotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdqc2MtNjE2MScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdq
c2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBqc2MsIHdl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5j
dXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJl
cG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmll
cygpKSwgW293bmVkSlNDLCBqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVw
bG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5
KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgJ2pzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwg
ZmFsc2UpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtMTE1NCw0NSArMTE1NCw0NSBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5z
ZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0o
KSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2Nr
RGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNC
dWlsZCgpLCBmYWxzZSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlz
VGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0
KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rl
c3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFd
LmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJd
LmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSks
IFttYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3Rz
KCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0
MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0
KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQx
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTIxNyw3ICsxMjE3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1BhdGNoTm90
QWNjZXB0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1BhdGNo
Tm90QWNjZXB0ZWQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyMzAsMjQgKzEyMzAs
MjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3Jv
dXBJZCddOwogCiAgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gYXdh
aXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSks
IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNl
cnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDEpOwogICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRpb24o
KSk7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJl
cXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0u
Y29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMo
KSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3
ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtd
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRv
IGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBuZWVkcy1ub3RpZmljYXRpb24gZmxhZyB1bnNldCcs
IGFzeW5jICgpID0+IHsKQEAgLTEyNTksMjQgKzEyNTksMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qg
aW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0
IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lz
VGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
cmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lz
VGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChh
bmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAgICBh
c3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCByZXF1
ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIz
Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwg
W3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9v
dHMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1
c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAg
ICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgY3VzdG9tIHRlc3QgZ3JvdXAgZm9yIGFu
IGV4aXN0aW5nIGN1c3RvbSBhbmFseXNpcyB0YXNrJywgKCkgPT4gewpAQCAtMTI5Niw0MyArMTI5
Niw0NCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDInLCB0YXNrOiByZXN1bHRb
J3Rhc2tJZCddLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIHRlc3QsIHJl
dmlzaW9uU2V0cywgcmVwZXRpdGlvbkNvdW50OiAyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewogICAgICAgICAgICAgc2Vjb25kUmVzdWx0ID0gcmVzdWx0OwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGZpcnN0UmVzdWx0Wyd0YXNrSWQnXSwgc2Vjb25kUmVzdWx0Wyd0YXNrSWQn
XSk7CisgICAgICAgICAgICAvLyBwZyBmdW50aW9ucyB3aWxsIHJldHVybiBhbGwgZGF0YSBhcyBz
dHJpbmcsIHNvIHdlIG5lZWQgbWFrZSBzdXJlIHRoYXQgd2UgY29tcGFyZSBhcyBpbnQKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChmaXJzdFJlc3VsdFsndGFza0lkJ10p
LCBwYXJzZUludChzZWNvbmRSZXN1bHRbJ3Rhc2tJZCddKSk7CiAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRl
c3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKICAgICAgICAg
fSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNrLCB0
ZXN0R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lz
VGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBUZXN0R3JvdXAuc29y
dEJ5TmFtZSh0ZXN0R3JvdXBzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzWzBdLm5hbWUoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAg
ICAgICBsZXQgcmVxdWVzdHMgPSB0ZXN0R3JvdXBzWzBdLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBsZXQgc2V0
MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IHNldDEgPSByZXF1
ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1sxXS5uYW1lKCksICd0ZXN0
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMV0ucmVwZXRpdGlvbkNv
dW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9z
aXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzWzFdLm5hbWUoKSwgJ3Rlc3QyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwc1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAg
ICAgICByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMV0uYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIHNldDAgPSByZXF1
ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIHNldDEgPSByZXF1ZXN0c1sxXS5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1szXS5j
b21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEu
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0
KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcwpp
bmRleCA0M2I0MDdlY2E5ZGQwMjlkYWFhYjg0NjM3YTZkYzEyNTYzZGYxNTkxLi5iNTdhMDIxMWU2
ODdmOWEzYzcyNzRjNzc0OWI2ZDVlMWZmYWFkYTFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCkBAIC0zOSwxMyArMzksMTMgQEAgZGVzY3JpYmUoIi9w
cml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycp
OwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Nb
MF1bJ21lYW5fY2FjaGUnXSwgMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Nb
MF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGll
ciddLCBmYWxzZSk7CiAgICAgICAgICAgICBpZCA9IHJ1blJvd3NbMF1bJ2lkJ107CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewpAQCAtNTMsMTAgKzUzLDEwIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5S
b3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVh
bl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRl
cmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1
ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02NSwxMSArNjUsMTEgQEAgZGVzY3JpYmUo
Ii9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVu
cycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIFJlbW90ZUFQSS5jbGVhckNvb2tpZXMoKTsKQEAgLTc3LDcgKzc3
LDcgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC04NSwxOCArODUsMTggQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2Vk
LWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0
ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0aFN0
YXR1cygnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzJywge3Rva2VuOiAnYmFkJ30p
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwNSwyMyArMTA1LDIzIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1hcGkv
dXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSku
dGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0
bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21h
cmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycsIHsncnVuJzogcnVuUm93c1swXVsnaWQn
XSwgJ21hcmtlZE91dGxpZXInOiB0cnVlfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxp
ZXInXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtl
ZF9vdXRsaWVyJ10sIHRydWUpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBydW5Sb3dzWzBdWydpZCddLCAn
bWFya2VkT3V0bGllcic6IGZhbHNlfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4o
KHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXIn
XSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRf
b3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
ZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCAw
MjExNmVkOGQ4YmJlOTIwZGJmMThkNjE3ZThmOTU5MzJjNzgzNTk5Li4yMmZkMGZlYzZlMzRiMThi
YzIxYTlkYmRhNWI5YTE1YzE0NmE4NTkwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3Rz
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5bmMg
ZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkx
NjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZp
cnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0u
aWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9IGF3
YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0p
OwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAg
ICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBA
IC0xNjUsMjAgKzE2NSwyMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVz
dWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1
ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwogCiAg
ICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlbnRBdCA9IG5ldyBEYXRlOwogICAgICAgICBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDog
aW5zZXJ0ZWRHcm91cElkLCBuZWVkc05vdGlmaWNhdGlvbjogZmFsc2UsIG5vdGlmaWNhdGlvblNl
bnRBdDogbm90aWZpY2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCl9KTsKIAogICAgICAgICBjb25z
dCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rh
c2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmlj
YXRpb24oKSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5u
b3RpZmljYXRpb25TZW50QXQoKS50b0lTT1N0cmluZygpLCBub3RpZmljYXRpb25TZW50QXQudG9J
U09TdHJpbmcoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5l
ZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVw
ZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCkudG9JU09TdHJpbmcoKSwgbm90aWZp
Y2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBi
ZSBhYmxlIHRvIHVwZGF0ZSAibmVlZHNfbm90aWZpY2F0aW9uIiBmaWVsZCB0byB0cnVlJywgYXN5
bmMgKCkgPT4gewpAQCAtMTkwLDE4ICsxOTAsMTggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVk
R3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0R3Jv
dXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVl
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3Qg
Z3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9u
U2VudEF0KCkpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3Vw
ZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0
aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RH
cm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1
cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVlKTsK
ICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAgICAgfSk7
CiAKQEAgLTIxNCwxMCArMjE0LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQg
PSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3
YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRp
b25TZW50QXQoKSk7CiAKICAgICB9KTsKQEAgLTIzMSwyMiArMjMxLDIyIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBj
b25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0
YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKIAogICAgICAgICBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDog
aW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAg
bGV0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsn
dGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5n
dGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vw
c1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAgICAgIGF3YWl0IFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRl
ZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IGZhbHNlfSk7CiAKICAgICAgICAgdXBkYXRl
ZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwg
dHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMo
KSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY2xl
YXIgIm1heV9uZWVkX21vcmVfcmVxdWVzdHMiIHdoZW4gaGlkaW5nIGEgdGVzdCBncm91cCcsIGFz
eW5jICgpID0+IHsKQEAgLTI1OCwyMiArMjU4LDIyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRl
ZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdy
b3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0
IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9y
ZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5t
YXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRHcm91
cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAgbGV0IHVwZGF0ZWRH
cm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRy
dWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCks
IHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIGhp
ZGRlbjogdHJ1ZX0pOwogCiAgICAgICAgIHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1
YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRl
ZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2Up
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigp
LCB0cnVlKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktdXBsb2FkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzCmluZGV4IGUwZjhhMjhk
ZmU2MTMxMjg5YTkyNjE2OWQxMTg5MTY5MGJkZmFmYjAuLjQ3ZTkzOGEyMzM0OTg5Mjc0YTFiOTBi
N2VhZDcxNDlhN2QwOTg0ZDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQt
ZmlsZS10ZXN0cy5qcwpAQCAtMjcsNyArMjcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7fSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplTGltaXRFeGNlZWRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplTGltaXRFeGNlZWRl
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTEsMTUgKzUx
LDE1IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcp
OwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVw
bG9hZGVkRmlsZS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBs
aW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaXplLCB1cGxvYWRlZEZpbGUuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3
YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5pZCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAq
IDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
b3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUuc2l6ZSkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZS5m
aWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNp
b24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEy
NTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVl
MDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5z
aGEyNTYsIHVwbG9hZGVkRmlsZS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
NzksMTYgKzc5LDE2IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9h
ZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmls
ZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5
MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9h
ZGVkRmlsZTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1
cGxvYWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9h
ZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
ZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVk
MDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1
Nik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDgsMTYgKzEwOCwxNiBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgdXBsb2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAg
IHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2FkZWRG
aWxlMSwgdXBsb2FkZWRGaWxlMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmls
ZTEuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1C
ICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwg
dXBsb2FkZWRGaWxlMS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZp
bGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUx
MWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0
SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRl
ZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBd
LmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFj
NWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTM5LDI2ICsxMzksMjYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxv
YWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSByZXNw
b25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1
cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwodXBsb2FkZWRGaWxlMS5pZCwgdXBsb2FkZWRGaWxlMi5p
ZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uaWQsIHVwbG9hZGVkRmlsZTIuaWQpOworICAgICAgICAg
ICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEuaWQsIHVwbG9hZGVkRmlsZTIu
aWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5pZCwg
cGFyc2VJbnQodXBsb2FkZWRGaWxlMi5pZCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIuZmlsZW5hbWUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVw
bG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzFdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUyLmZpbGVuYW1lKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxlMS5z
aXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmls
ZTIuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCByb3dzWzFd
LnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVj
MThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRi
NScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZp
bGUxLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVw
bG9hZGVkRmlsZTIuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNo
YTI1Niwgcm93c1sxXS5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0u
ZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZXh0
ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChy
b3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLnNpemUpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNpemUsIHJvd3NbMV0uc2l6ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAy
NTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmlsZTEu
c2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1Niwg
dXBsb2FkZWRGaWxlMi5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9h
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIg
KiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5taW1lLCAn
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAz
ZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmls
ZW5hbWUsICdzb21lLm90aGVyLnRhci5nejUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50YXIuZ3o1Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJl
ZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
bG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3Nv
bWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxldGVkX2F0
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3Ro
ZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhl
ci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQs
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUs
ICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmRl
bGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0u
ZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pCiAgICAgfSk7CiAKQEAgLTIx
NywxNCArMjE3LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsK
ICAgICAgICAgfQogICAgICAgICBsZXQgcm93cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndXBsb2Fk
ZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50KTsK
IAogICAgICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBUZW1wb3JhcnlGaWxlLm1ha2VUZW1wb3Jh
cnlGaWxlT2ZTaXplSW5NQignbGltaXQuZGF0JywgbGltaXRJbk1CLCAnYScpOwogICAgICAgICBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBz
dHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsKICAgICAgICAgcm93cyA9IGF3YWl0IGRiLnNl
bGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVu
Z3RoLCBzcGxpdENvdW50ICsgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxl
bmd0aCwgc3BsaXRDb3VudCArIDEpOwogICAgICAgICBjb25zdCBkZWxldGVkRmlsZXMgPSByb3dz
LmZpbHRlcigocm93KSA9PiByb3dbJ2RlbGV0ZWRfYXQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChkZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChk
ZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIG5vdCBw
cnVuZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBkZWxldGVkJywgYXN5bmMgKCkgPT4gewpAQCAtMjgx
LDcgKzI4MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
dXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEyLDEzICszMTIs
MTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0
QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90
aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZGVsZXRl
ZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDYsMTMgKzM0NiwxMyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwo
J3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290LnRhci5neicpOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290LnRhci5neicpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0
LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM4Miw3ICszODIsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25l
d0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJy
b3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMKaW5kZXggNThiNTExMzExOWJmNjEwYzQ3ZTI4NDdmYTA3MzA3ZTFlNWFmMmY2Zi4uMTli
OWMxMWZmMGNmM2M0YWYzYzkyNDNhOTAzMTk0Mjk2M2YzNzQ1MyAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKQEAgLTU2LDcgKzU2LDcgQEAgYXN5bmMgZnVuY3Rpb24g
YXNzZXJ0VGhyb3dzKGV4cGVjdGVkRXJyb3IsIHRlc3RGdW5jdGlvbikKICAgICAgICAgICAgIGF3
YWl0IHRlc3RGdW5jdGlvbigpCiAgICAgfSBjYXRjaChlcnJvcikgewogICAgICAgICB0aHJvd25F
eGNlcHRpb24gPSB0cnVlOwotICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJy
b3IpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3IpOwog
ICAgIH0KICAgICBhc3NlcnQub2sodGhyb3duRXhjZXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1m
aWxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
dGVtcG9yYXJ5LWZpbGUuanMKaW5kZXggN2I4NGIyNGJmZTZhODgzN2VlYzc0MjdjODc2MGU0YjIw
MWRkYjBjNy4uMjYyYjJmZDRlMTcyMGI2MzU2NjhiNjZlMGQ4ZWI4NzVkMDg2MDg5ZiAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVt
cG9yYXJ5LWZpbGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgVGVt
cG9yYXJ5RmlsZSB7CiAgICAgICAgIGxldCBtZWdhYnl0ZVN0cmluZyA9IGNoYXJhY3RlclRvRmls
bDsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKQogICAgICAgICAgICAgbWVn
YWJ5dGVTdHJpbmcgPSBtZWdhYnl0ZVN0cmluZyArIG1lZ2FieXRlU3RyaW5nOwotICAgICAgICBh
c3NlcnQuZXF1YWwobWVnYWJ5dGVTdHJpbmcubGVuZ3RoLCAxMDI0ICogMTAyNCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEwMjQgKiAxMDI0KTsK
IAogICAgICAgICBsZXQgY29udGVudCA9ICcnOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHNpemVJbk1COyBpKyspCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10
ZXN0cy5qcwppbmRleCA2MDRkYTczNGRhMGNlM2IwY2VjMGIwOTVhZmY5MDE1Y2RkOTc3MWQ5Li40
NTBmMGMzYTgzMzZmNTRkZmYyZGZmOGMwMTk2OGQ5MDRlZWVmNjA2IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJh
YmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTExLDggKzExLDggQEAgY29u
c3QgTW9ja0xvZ2dlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stbG9nZ2VyLmpzJykuTW9j
a0xvZ2dlcjsKIAogZnVuY3Rpb24gYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdCwgbWV0
aG9kLCB1cmwsIGNvbnRlbnQpCiB7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9kLCBt
ZXRob2QpOwotICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7CisgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3QudXJsLCB1cmwpOwogICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50KTsKIH0K
IApAQCAtNDAsNDUgKzQwLDQ1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEu
cnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6IDcwMiwg
J2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgotICAgICAgICAg
ICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQt
cmVxdWVzdC1pZCc6IDcwMiwgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0x
J319KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDIn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxk
ZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNv
bHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tE
YXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1l
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC05NywzOCArOTcsMzggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRp
bmdCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoeydidWlsZHMnIDogW01v
Y2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpLnRyaWdnZXJh
YmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVk
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIApAQCAtMTQ3LDcwICsxNDcsNzAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5
OTl9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0p
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklk
OiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVl
c3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0OSw2MiArMzQ5LDYyIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
OCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC00MjMsNzAgKzQyMyw3MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWls
ZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcw
MicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcw
MicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAg
ICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVp
bGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJl
c29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEu
cnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
cmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygp
LCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01MDUsNTAgKzUwNSw1MCBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJp
Z2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5p
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVy
LTEnLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTcwLDg2ICs1NzAsODYgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3
fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWls
ZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDIn
LCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9k
LCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUt
YnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3dr
JzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWls
ZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzEwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElk
OiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwp
OwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJs
ZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVx
dWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTIzKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0
cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzEsOTEgKzY3MSw5MSBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9
fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29z
JzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMScsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0
SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1
aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxk
UmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5u
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9y
VHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCku
dHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEx
KS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8x
NycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCks
ICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTAp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1
ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC03NzYsNjAgKzc3Niw2MCBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUt
YnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sy
XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
Ml0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxk
ZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNb
Ml0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6
IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
NF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUo
TW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVO
YW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVs
ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVz
dHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVl
c3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTg1NCwyNyArODU0LDI3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAg
ICAgICAgICAgICAgICB7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksCiAgICAgICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAgICAgICAgICAg
ICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEw
fSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtODgzLDIwICs4
ODMsMjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCiAgICAgICAgICAg
ICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKICAgICAgICAg
ICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtOTE4
LDU4ICs5MTgsNTggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNv
bWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7
J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxLCBi
dWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFi
bGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFi
bGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWls
ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1
ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC05ODgsNDIgKzk4OCw0MiBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJh
YmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFp
bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0xMDQ1LDIzICsxMDQ1LDIzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
UE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVp
bGRlci0xJyk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEn
fX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgn
T0snKTsKICAgICAgICAgICAgIH0pOwpAQCAtMTA3OSw3MSArMTA3OSw3MSBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJv
bWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxl
KE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50
cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
KCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmV1c2UgdGhlIHJvb3RzIGZy
b20gYSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCB3aXRoIHRoZSBzYW1lIGNvbW1pdCBzZXQnLCBh
c3luYyAoKSA9PiB7CkBAIC0xMTU4LDc4ICsxMTU4LDc4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAg
bGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGxl
dCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAg
ICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJD
b21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90
aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6
IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
CiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxk
UmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dp
dGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAg
ICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAg
ICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVk
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBkZWZlciBzY2hlZHVsaW5nIGEgYnVpbGQgcmVxdWVzdCBpZiB0aGVyZSBpcyBhICJydW5u
aW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2FtZSBjb21taXQgc2V0LCBidXQgc2hvdWxkIHNjaGVk
dWxlIHRoZSBidWlsZCByZXF1ZXN0IGlmICJydW5uaW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2Ft
ZSBjb21taXQgc2V0IGZhaWxzIGxhdGVyIG9uJywgYXN5bmMgKCkgPT4gewpAQCAtMTI0NCwxMTQg
KzEyNDQsMTE0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQg
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQg
YnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBs
ZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNl
dC5lcXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
e30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDgwMX0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQgc3lu
Y1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2Vy
YWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWlsZGVy
KCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5v
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CiAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogOTAwLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9T
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5kYXRhLCB7J2lkJzogJzkwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAn
Zm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiAnaHR0cDovL2xvY2FsaG9zdDo4MTgwL2FwaS91
cGxvYWRlZC1maWxlLzEwMC50eHQnLAogICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlk
JzogJzkwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAg
ICAgICAgIH0pOwpAQCAtMTM2OCw3OCArMTM2OCw3OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg4MDApOwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxl
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQg
YW5vdGhlckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAg
ICAgICAgICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29t
bWl0U2V0KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhl
ckNvbW1pdFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAw
fSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA5MDAsIGJ1aWxkZXJJZDogM30pXX0pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tU
ZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDgwMCk7CiAgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9i
dWlsZHMvMTI0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHVwZGF0
ZSBidWlsZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIgdHJpZ2dlcmFibGUnLCBhc3luYyAoKSA9PiB7
CkBAIC0xNTM0LDIyICsxNTM0LDIyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbWFjb3MgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNvcy5u
YW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNv
cy5uYW1lKCksICdtYWNPUycpOwogICAgICAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFs
bCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
VHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRy
aWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuYWxsKClbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQn
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVUZXN0SWQoKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9y
bS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxh
dGZvcm0pLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKIAog
ICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
LnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgp
LCAnd2Via2l0LXN2bicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Z3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwogCiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmds
ZUJ1aWxkZXIoKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsK
QEAgLTE1ODQsMjIgKzE1ODQsMjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVm
ZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAg
ICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAgICAg
ICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSk7CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAn
YnVpbGQtd2Via2l0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91
cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFu
ZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uZGVzY3Jp
cHRpb24oKSwgJ0N1c3RvbSBSb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3Np
dG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uZGVzY3JpcHRpb24o
KSwgJ0N1c3RvbSBSb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwg
dHJ1ZSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVz
dFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0gWyBdOwpAQCAtMTYxMSwxMyArMTYxMSwxMyBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0
b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZS5hbGwoKVswXS5yZXBvc2l0b3J5R3JvdXBz
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQt
cm9vdHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBv
c2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
c1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdy
b3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0LCBtYWNvc10pOwogICAgICAgICAgICAgfSkKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC0xNjMyLDEyICsxNjMyLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ2V0QnVpbGRlck5hbWVUb0lETWFw
UHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuZ2V0QnVpbGRlck5hbWVUb0lETWFwKCk7CiAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1hcFBy
b21pc2UudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIl0sIDEpCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEi
XSwgMikKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJz
b21lIGJ1aWxkZXIgMiJdLCAzKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVy
TmFtZVRvSURNYXBbIm90aGVyIGJ1aWxkZXIiXSwgNCkKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3RlciJdLCA1KQotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYp
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
c29tZSBidWlsZGVyIl0sIDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEiXSwgMikKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIgMiJdLCAz
KQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBb
Im90aGVyIGJ1aWxkZXIiXSwgNCkKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3RlciJdLCA1KQorICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0sIDYp
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXIt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9z
LWJ1aWxkLWZldGNoZXItdGVzdHMuanMKaW5kZXggN2IyZTUxN2MzMWYwNTU5YTEyMTNjMTEyYzQ5
ZDRhYWRiZDI2NzFkMy4uZTMxMzNjYTRkMGU2YWJlNWJhNzViMjgxYmI3YWEwYjVjM2FjODYxYSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1v
cy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwpAQCAtMTEwLDEzICsx
MTAsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgZGVz
Y3JpYmUoJ09TQnVpbGRlckZldGNoZXIuX2NvbXB1dGVPcmRlcicsICgpID0+IHsKICAgICAgICAg
aXQoJ3Nob3VsZCBjYWxjdWxhdGUgdGhlIHJpZ2h0IG9yZGVyIGZvciBhIGdpdmVuIHZhbGlkIHJl
dmlzaW9uJywgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxk
RmV0Y2hlcih7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9y
ZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMy
MTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2
RDMyMXonKSwgMTYwMzAzMjEyNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5f
Y29tcHV0ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEwLjEy
LjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2
RDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRj
aGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMXonKSwgMTYwMzAz
MjEyNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9y
ZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEw
LjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgdGhyb3cgYXNzZXJ0aW9uIGVycm9yIHdoZW4gZ2l2ZW4gYSBpbnZhbGlkIHJl
dmlzaW9uJywgKCkgPT4gewpAQCAtMTQxLDEzICsxNDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9t
aXNlID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQx
J10sICdeXFwuKiQnKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9t
aXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNz
Lmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAgICAgICAg
Y29uc3QgZXhwZWN0ZWRSZXN1bHRzID0ge2FsbFJldmlzaW9uczogWyIxNkQzMjEiLCAiMTZFMzIx
eiIsICIxNkYzMjEiXSwgY29tbWl0c1dpdGhUZXN0YWJpbGl0eToge319OwogICAgICAgICAgICAg
YXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnMTZEMzIxXG4xNkUz
MjF6XG5cbjE2RjMyMScpOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJbmZvID0gYXdhaXQgZmV0
Y2hDb21taXRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZXhwZWN0ZWRS
ZXN1bHRzLCBidWlsZEluZm8pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChl
eHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgcGFyc2UgdGhlIGNvbW1hbmQgb3V0cHV0IGFzIEpTT04gZm9ybWF0JywgYXN5bmMgKCkg
PT4gewpAQCAtMTU3LDEzICsxNTcsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9taXNlID0gZmV0Y2hl
ci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAg
ICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAgICAgICAgICBjb25zdCBvdXRwdXRPYmplY3QgPSB7
YWxsUmV2aXNpb25zOiBbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0
aFRlc3RhYmlsaXR5OiB7IjE2RDMyMSI6ICJQYW5pYyJ9fTsKICAgICAgICAgICAgIGF3YWl0IE1v
Y2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3V0cHV0
T2JqZWN0KSk7CiAgICAgICAgICAgICBjb25zdCBidWlsZEluZm8gPSBhd2FpdCBmZXRjaENvbW1p
dHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdXRwdXRPYmplY3QsIGJ1
aWxkSW5mbyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dE9iamVj
dCwgYnVpbGRJbmZvKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3Myw5ICsxNzMsOSBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9
IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dl
cik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0Y2hlci5fY29tbWl0c1dpdGhpblJh
bmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sICJPU1giLCAxNjA0MDAwMDAwLCAx
NjA2MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAn
T1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRl
cjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0MDMy
MTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAs
IHJldmlzaW9uOiAnMTZGMzIxJ30pOwogCiAgICAgICAgIH0pOwogCkBAIC0xODMsOCArMTgzLDgg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBj
b25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKICAgICAgICAgICAgIGNvbnN0IGZldGNoZXIg
PSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGwsIG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dn
ZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGZldGNoZXIuX2NvbW1pdHNXaXRoaW5S
YW5nZShbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCAiT1NYIiwgMTYwNDAwMDAwMCwg
MTYwNTAwMDAwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTog
J09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9y
ZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xOTYsMjQgKzE5NiwyNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZl
dGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXQsIGFub3RoZXJPU1hDb21t
aXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKTsKIAogICAgICAgICAgICAg
cmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJv
Y2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vz
cy5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkUzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMyJ10pOwogICAgICAgICAgICAg
ICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBh
ZGRvd25lZENvbW1pdFByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1swXVsncmVwb3NpdG9yeSddLCBvc3hDb21t
aXRbJ3JlcG9zaXRvcnknXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNb
MF1bJ3JldmlzaW9uJ10sIG9zeENvbW1pdFsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdWydvd25lZENvbW1pdHMnXSwgb3duZWRDb21taXRX
aXRoV2ViS2l0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1sxXVsncmVw
b3NpdG9yeSddLCBhbm90aGVyT1NYQ29tbWl0WydyZXBvc2l0b3J5J10pOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzFdWydyZXZpc2lvbiddLCBhbm90aGVyT1NYQ29tbWl0
WydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNb
MV1bJ293bmVkQ29tbWl0cyddLCBhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXBvc2l0b3J5J10sIG9z
eENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbiddKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29tbWl0
cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzWzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9z
aXRvcnknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1b
J3JldmlzaW9uJ10sIGFub3RoZXJPU1hDb21taXRbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFu
b3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC0yMjQsMTUgKzIyNCwxNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNo
ZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbiddKQogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRp
b25Qcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
U3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJv
Y2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkQzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5p
bnZvY2F0aW9uc1swXS5yZWplY3QoJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQnKTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3Jfb3V0cHV0LCAnRmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0Jyk7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvcl9vdXRwdXQsICdGYWls
ZWQgZ2V0dGluZyBvd25lZC1jb21taXQnKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKQEAgLTI0NSwxNSArMjQ1LDE1IEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21t
aXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdF0s
IFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJldHVy
biB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQz
MiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3Mu
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAgICAg
IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoJ3siV2ViS2l0Ijp7IlJhbmRv
bUtleSI6ICJSYW5kb21WYWx1ZSJ9fScpOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93
bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgICAgICB9LCAo
ZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRw
dXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUs
ICdBc3NlcnRpb25FcnJvciBbRVJSX0FTU0VSVElPTl0nKTsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3InKTsK
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQpAQCAtMjkw
LDQwICsyOTAsNDAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/
ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSkpLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAw
MzMwNyk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0g
TW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgICAgICBmZXRj
aEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygp
OwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZENjhcblNpZXJyYTE2RDY5
XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSdd
KTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2RTMzXG5TaWVycmExNkUzM2hc
blNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBm
ZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
QEAgLTMzMSwyOSArMzMxLDI5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlzZSA9
IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkQ2OFxuU2llcnJhMTZENjlcbicpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0
aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcs
ICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21t
aXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWyds
aXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJhMTZFMzNcblNpZXJyYTE2RTMzaFxuU2llcnJhMTZF
MzQnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNo
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0
Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXBv
cnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBA
IC0zNzAsMzQgKzM3MCwzNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwog
ICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKIAotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVyJ10s
IDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5WzBdWydvd25l
ciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydvcmRl
ciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSks
IDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
b3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwg
MTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0
MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUz
NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCkBAIC00MjMsNDAgKzQyMyw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNo
ZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9u
UHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0Y2hBdmFpbGFi
bGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBi
dWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAg
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1
bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5y
ZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNP
Ti5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAg
IGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9y
SW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10p
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAn
U2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFu
ZEphdmFTY3JpcHRDb3JlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoQXZhaWxhYmxl
QnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNDY0LDI5ICs0
NjQsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5mZXRj
aFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxs
IG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1
YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJy
YTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBd
LnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdp
dGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENv
bW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CkBAIC01MDMsMzQgKzUwMywzNCBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQx
NkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0
ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBv
c2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJl
cG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293
bmVyJ10sIDEwKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2
OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2
OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21t
aXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQw
MDMzMDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUz
M2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAw
MzMwOCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1b
J3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZF
MzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBv
cnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDAp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
KSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0
MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDAp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NTUsNDEgKzU1NSw0MSBAQCBk
ZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKIAogICAgICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgIHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZF
MzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFu
ZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAg
ICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcydd
KTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVz
dWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0
QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZp
c2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9z
eCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwog
ICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRz
Rm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFu
ZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAg
ICAgICAgYXdhaXQgIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENv
bW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAn
Zm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogCiAgICAgICAgICAgICBh
d2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CiAKQEAgLTYwMSw0MyArNjAxLDQzIEBA
IGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29u
c3Qgb3N4Q29tbWl0MTZFMzNoID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2
aXNpb24nOiAnU2llcnJhMTZFMzNoJ30pOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZF
MzQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmEx
NkUzNCd9KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydv
d25lciddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVy
J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3Np
dG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpz
Y1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChq
c2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQ2OC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5pYyIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5p
YyIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9y
eSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29y
ZGVyJ10sIDE2MDMwMDY5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBDUFUiKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3Jk
ZXInXSksIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBDUFUiKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydvcmRlciddLCAxNjA0MDAzMTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsndGVzdGFiaWxpdHkn
XSwgIldlYktpdCBjcmFzaGVzIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZFMzEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzFbMF1bJ29yZGVyJ10pLCAxNjA0MDAz
MTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMVswXVsn
dGVzdGFiaWxpdHknXSwgIldlYktpdCBjcmFzaGVzIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hD
b21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hD
b21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1
bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBv
cnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAx
NjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSks
IDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBj
b21taXRzIHdpdGhvdXQgb3duZWQtY29tbWl0cyBpZiAib3duZWRDb21taXRDb21tYW5kIiBpcyBu
b3Qgc3BlY2lmaWVkIGluIGNvbmZpZycsIGFzeW5jICgpID0+IHsKQEAgLTY1OSwyNSArNjU5LDI1
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAn
U2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7
CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgIGNv
bnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2Ug
PSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBhd2Fp
dCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAgICAg
ICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdh
bGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMn
XSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJl
c3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoUmVw
b3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTY5NCwzMCArNjk0LDMwIEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZF
MzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVz
dWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVu
Z3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwg
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5n
dGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVu
Z3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBd
WydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMw
MDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hb
MF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwg
MTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
NFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAx
NjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAz
MDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsK
IAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2
MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXBvcnQgY29tbWl0cyB3aXRoaW4gc3BlY2lmaWVkIHJl
dmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpAQCAtNzM4LDI1ICs3MzgsMjUgQEAgZGVzY3Jp
YmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmExNkUz
M2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0cnVlfSldKTsKIAogICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTign
L2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5
OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVy
cmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAgIHJl
c3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJ
bnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZl
dGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJ
bnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2Fp
dCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZF
eHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNp
ZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRh
dGVQcm9taXNlOwpAQCAtNzczLDMwICs3NzMsMzAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVy
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1
bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10s
IDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwg
MTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXIn
XSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRl
ciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21t
aXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDAp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89
MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAg
ICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZF
MzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIHVwZGF0ZSBjb21taXRzIHdpdGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFu
Z2UnLCBhc3luYyAoKSA9PiB7CkBAIC04MTcsMjkgKzgxNywyOSBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRl
cic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6IHRydWV9KV0pOwogCiAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3Qt
cmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNn
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Q
cm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IGNvbnN0IGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2ZldGNoQXZhaWxh
YmxlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vz
cy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAg
ICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5jb21taXRzVG9VcGRhdGUubGVuZ3RoLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuY29tbWl0c1RvVXBkYXRlLmxl
bmd0aCwgMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXNlICJsYXN0LXJl
cG9ydGVkIiBvcmRlciArIDEgYXMgIm1pbk9yZGVyIicsIGFzeW5jICgpID0+IHsKQEAgLTg1Mywx
NSArODUzLDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdy
ZXZpc2lvbic6ICdTaWVycmExNkQxMDAnLCAnb3JkZXInOiAxNjAzMDEwMDAwLCAncmVwb3J0ZWQn
OiB0cnVlfSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2
MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDAwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDAw
MCk7CiAKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tT
dWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaEFu
ZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAg
ICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHgg
YnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAg
ICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJy
YUQpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hBbmRSZXBvcnRQcm9taXNl
OwpAQCAtODc2LDE5ICs4NzYsMTkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQ2OSA9IHJlc3VsdHNbMl07CiAg
ICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDBhID0gcmVzdWx0c1szXTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydvcmRlciddLCAx
NjAzMDEwMDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQx
MDBhLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZEMTAwYVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAwYVswXVsnb3JkZXInXSksIDE2MDMwMTAwMDEp
OwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89
MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDBhJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkQxMDBhJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAxKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1c2UgbWluUmV2aXNpb24gaW4gdGhlIGNvbmZp
ZyBpZiB0aGVyZSBpcyBubyBjb21taXQnLCBhc3luYyAoKSA9PiB7CkBAIC05MDEsMTMgKzkwMSwx
MyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEwLCAnbmFtZSc6ICdPU1gn
fSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAw
MDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hS
ZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0
aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBh
d2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC05MjQsMjMgKzkyNCwyMyBAQCBk
ZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0
IG9zeENvbW1pdDE2RDEwMCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hDb21t
aXQxNkQxMDEgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9z
aXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
ZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNj
UmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZENjkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hD
b21taXQxNkQ2OS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZEMTAwLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZEMTAwWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMC5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsncmVwb3NpdG9yeSddLCAxMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAw
WzBdWydvcmRlciddKSwgMTYwMzAxMDAwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQxMDEubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQxMDFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAxLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5J10s
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQx
NkQxMDFbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZE
MTAxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDMwMTAxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDMwMTAxMDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxk
IHN0b3AgcmVwb3J0aW5nIGlmIGFueSBjdXN0b20gY29tbWFuZCBmYWlscycsICgpID0+IHsKQEAg
LTk2Myw2MCArOTYzLDYwIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQw
MDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1v
Y2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgZmV0Y2hB
bmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFE
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7
CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9j
YXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5j
b21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAg
ICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJh
RSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gn
XSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVqZWN0KCdDb21tYW5kIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBm
ZXRjaEFuZFJlcG9ydFByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFz
c2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICAgICAg
fSwgKGVycm9yX291dHB1dCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZXJyb3Jf
b3V0cHV0KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yX291dHB1dCwg
J0NvbW1hbmQgZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAx
NjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAw
MDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQogICAgIH0pCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdy
YXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rv
b2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKaW5kZXggNzFhMWQ1MzllYjYy
ZmVmMmFlYjdjZTBjMTk2NDBiMTY0YzJmY2YxMC4uNjlhOTFmNWU2MTEzMDZlYWRiOGYyMTI3Yjg4
ZDA1ZGVhYjk1YjEwYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTQ1LDggKzE0NSw4IEBAIGNvbnN0IGNvbmZpZ1dpdGhU
d29UZXN0ZXJzID0gewogCiBmdW5jdGlvbiBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
LCBtZXRob2QsIHVybCwgY29udGVudFRvUmVzb2x2ZSkKIHsKLSAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1cmwp
OworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5yZXNvbHZl
KGNvbnRlbnRUb1Jlc29sdmUpOwogfQogCkBAIC0yNjUsMjMgKzI2NSwyMyBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiBzZWNvbmRUZXN0R3JvdXBGaXJzdEJ1
aWxkUmVxdWVzdH0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
CiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiBmaXJz
dFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J2Fub3RoZXIgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdhbm90aGVy
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCiAgICAgICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNlY29uZFRlc3RHcm91
cEZpcnN0QnVpbGRSZXF1ZXN0fSksCkBAIC0yOTIsNDUgKzI5Miw0NSBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RH
cm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAogICAgICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogCiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhhbm90aGVyVGFza0lkLCB0cnVlKTsKICAg
ICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM0NCwzNiArMzQ0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGNvbnN0IHRhc2tJZCA9IHRlc3RHcm91cC50YXNr
KCkuaWQoKTsKICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGxldCBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNj
cmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgbGV0
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGxldCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNo
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICBsZXQgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICBsZXQgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dl
cmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwpA
QCAtMzgxLDMyICszODEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMics
ICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAn
Y2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcyd9fSk7CiAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAgICAgICAg
ICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
Myk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUg
YnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IGZpcnN0QnVpbGROdW1i
ZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQnVpbGRpbmcgV2ViS2l0J30pKTsKQEAgLTQxNSwzOSAr
NDE1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAg
ICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwg
J0J1aWxkaW5nIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC00NTYsMjYgKzQ1NiwyNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksCiAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBi
dWlsZFRhZzogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcg
V1RGJ30pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7
fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAg
ICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RC
dWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pKTsKQEAgLTQ4
NCw4MCArNDg0LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
CiAgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCAnQ29tcGlsaW5nIFdURicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
IG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCi0gICAgICAgIGF3YWl0IHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0Lmlk
KCksIGZpcnN0QnVpbGROdW1iZXIpOworICAgICAgICBhd2FpdCB1cGxvYWRSb290KHBhcnNlSW50
KGJ1aWxkUmVxdWVzdC5pZCgpKSwgZmlyc3RCdWlsZE51bWJlcik7CiAKICAgICAgICAgdGVzdEdy
b3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
ICdDb21waWxpbmcgV1RGJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOwogICAgICAg
ICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIGxldCB3ZWJraXRS
b290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2Vy
dCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJv
b3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC01
NjYsMzIgKzU2NiwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXJ9KSk7CiAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NU
JywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAg
ICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdr
JzogdHJ1ZX19KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLCB7CiAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtNjAzLDgzICs2MDMsODMgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwog
ICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51
bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwotICAgICAgICBhd2FpdCB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1
ZXN0LmlkKCksIDEyNCk7CisgICAgICAgIGF3YWl0IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJC
dWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAKICAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwog
ICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
ICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWls
ZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7
CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgY29uc3Qgb3RoZXJX
ZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICB9KTsKIApAQCAt
Njk0LDM0ICs2OTQsMzQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0g
dGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNo
ID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC03MjksMzIgKzcyOSwzMiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywg
J3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdj
aGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJ319KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMX0pKTsKQEAgLTc2Myw3NiArNzYzLDc2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
d2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwg
J3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAg
ICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAg
ICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAg
IHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAg
IGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKQEAgLTg0MSwzMiArODQxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1i
dWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0u
ZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdw
YXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gn
OiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC04NzgsODAgKzg3OCw4MCBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVu
YW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJr
aXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dl
YmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBs
b2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICAgICAgcmV0dXJu
IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRS
b290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJX
ZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTY3LDM0ICs5NjcsMzQgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5p
ZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAg
ICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGlu
c3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09u
Y2UoKSk7CkBAIC0xMDAyLDMyICsxMDAyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1
aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5k
YXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1v
dGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAn
YnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRm
b3JtJ319KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3Nv
bWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTEwMzYsNzYgKzEwMzYsNzYg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgp
LCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEu
d2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMTExNCwzMiArMTExNCwzMiBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0
ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5
MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwgJ3Bs
YXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTExNTEsODAgKzExNTEsODAg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRj
aC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Vi
a2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVw
bG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVy
biB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAg
YXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAg
IGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVy
V2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEyNDEsMjIgKzEyNDEsMjIg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2so
KS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAx
KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdX
YWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIHVwbG9hZFJvb3QoMSwgNDUpOwpAQCAtMTI2NSwzOSArMTI2NSwzOSBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgY29uc3Qgcm9v
dHMgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm9vdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgZmlyc3RSb290ID0gcm9vdHNb
MF07CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJvb3RzWzBdLmZpbGVuYW1lKCksICdy
b290NDUuZGF0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogICAgICAgICAgICAgY29uc3Qgb3RoZXJSb290cyA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9v
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlclJvb3Rz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyUm9vdHNbMF0u
ZmlsZW5hbWUoKSwgJ3Jvb3Q0Ni5kYXQnKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzA3LDEzICsx
MzA3LDEzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLXRlc3RzJywgJ09LJyk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMycsICdqc29ucnBjJzog
JzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3Rl
c3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzMn
LCdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsICdyb290cyc6IEpTT04uc3RyaW5n
aWZ5KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwgWwogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRl
c3RlcicpLCBidWlsZFJlcXVlc3RJZDogM30pLAogICAgICAgICAgICAgXSk7CkBAIC0xMzIxLDcg
KzEzMjEsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWls
ZHMnOiBbCkBAIC0xMzQzLDM2ICsxMzQzLDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRj
aCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJ
ZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAg
ICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhl
ckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzgzLDEzICsxMzgzLDEzIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xNDAxLDI0ICsxNDAxLDI0IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICBjb25zdCB0
ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJl
cXVlc3QuaWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEwMDIp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTAwMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNDMyLDQ5ICsxNDMyLDQ5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwogICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRlc3RH
cm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdvdGhlciBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxLCBidWlsZFRhZzogMzEyfSkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksCkBAIC0xNDgz
LDI4ICsxNDgzLDI4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcWV1c3RzID0gdGVzdEdyb3Vwc1swXS5idWlsZFJlcXVlc3Rz
KCk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1swXS5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzBdLmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ290aGVyIGJ1aWxkZXInLCAzMTIpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnRmFp
bGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhlciBidWlsZGVyJywgMzEyKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1sxXS5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzFdLmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWls
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFl
dXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBmdW5jdGlvbiBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQocmVxdWVzdCkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdG
YWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYXNzZXJ0
VGVzdEJ1aWxkSGFzRmFpbGVkKGJ1aWxkUmVxZXVzdHNbMl0pOwpAQCAtMTUyNCwzNiArMTUyNCwz
NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwog
ICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
Lm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xNTYxLDMyICsxNTYx
LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZp
c2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3du
ZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEu
YnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpA
QCAtMTU5NSw4NSArMTU5NSw4NSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBs
b2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKS50aGVuKCgpID0+IHVwbG9hZFJvb3QoYnVp
bGRSZXF1ZXN0LmlkKCksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJl
cG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jykp
OworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lmlk
KCkpLCAxMjMpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQo
KSksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdK
YXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAg
ICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93
bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBh
c3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3
ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0xNjgyLDMyICsx
NjgyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAg
IHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2
aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93
bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTcxOSw5NSArMTcxOSw5NSBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAg
IGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1Jl
cG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpz
Y1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9v
dCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1
ZXN0LmlkKCksIDEyNCkudGhlbigoKSA9PiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0Lmlk
KCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdK
YXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOworICAgICAgICAg
ICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEy
NCkudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkp
LCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2
YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25l
ZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNz
ZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Vi
a2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJKU0NSb290ID0gb3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNz
ZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAncm9v
dDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3QsIG90aGVySlNDUm9vdF0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKQEAgLTE4MjQsMzYgKzE4MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFz
aygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVk
SlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwpAQCAtMTg2MSwzMiArMTg2MSwzMiBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9m
b3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdm
b3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAn
b3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIs
InJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19
YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVy
SURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUg
YnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTE4OTUsMTI2ICsxODk1LDEyNiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAg
ICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpT
Q1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3Qu
aWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxk
UmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290
ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEyMywg
W3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0
Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CisgICAgICAgICAgICByZXR1cm4g
dXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMywgW3tvd25lclJlcG9z
aXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIw
MTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpT
QyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAg
IGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KChvd25lZEpTQykpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0p
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMjAyMywzMiArMjAyMywzMiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRz
JywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkx
OTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2
In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAg
J2J1aWxkcyc6IFsKQEAgLTIwNjAsMTQxICsyMDYwLDE0MSBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9
KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9v
dC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdS
dW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAg
ICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtp
dFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAg
ICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
UnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAg
ICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhl
cldlYmtpdFJvb3RdKTsKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9z
aXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTog
J0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5v
d25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jv
b3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9
IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJKU0NSb290ID0g
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3QsIG90aGVySlNDUm9vdF0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9hc3NlcnQtb3ZlcnJpZGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYXNzZXJ0LW92ZXJyaWRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ZmEyZjgzNmYyYjYzM2I1MjI3
NTBjNTQ0Njk5ZTU4YjY4N2VjNzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvYXNzZXJ0LW92ZXJyaWRlLmpzCkBAIC0wLDAgKzEsNyBAQAorY29u
c3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK2Z1bmN0aW9uIG1ha2VDb25zb2xlQXNz
ZXJ0VGhyb3cgKCkgeworICAgIGNvbnNvbGUuYXNzZXJ0ID0gYXNzZXJ0Lm9rOworfQorCittb2R1
bGUuZXhwb3J0cy5tYWtlQ29uc29sZUFzc2VydFRocm93ID0gbWFrZUNvbnNvbGVBc3NlcnRUaHJv
dzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwppbmRleCAzMGJkMjVmMGFjZDAx
N2U0NWY4YTgwODFmY2VlMWI4ZDA5N2Y2ODgxLi41MmNiMWVjMjQzYjlmMTY1ZGY3ZGM3ZDY5MGU0
MDdhMDgwOWVlODRhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3MgQnVpbGRib3RC
dWlsZEVudHJ5IHsKIAogICAgIGluaXRpYWxpemUoc3luY2VyLCByYXdEYXRhKQogICAgIHsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwgcmF3RGF0YVsnYnVpbGRlcmlk
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoc3luY2VyLmJ1aWxkZXJJ
RCgpKSwgcGFyc2VJbnQocmF3RGF0YVsnYnVpbGRlcmlkJ10pKTsKIAogICAgICAgICB0aGlzLl9z
eW5jZXIgPSBzeW5jZXI7CiAgICAgICAgIHRoaXMuX2J1aWxkYm90QnVpbGRSZXF1ZXN0SWQgPSBy
YXdEYXRhWydidWlsZHJlcXVlc3RpZCddOwpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBCdWlsZGJv
dEJ1aWxkRW50cnkgewogCiAgICAgYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRhdGVJc05lZWRlZChy
ZXF1ZXN0KQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QuaWQoKSwgdGhpcy5f
YnVpbGRSZXF1ZXN0SWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5pZCgp
LCB0aGlzLl9idWlsZFJlcXVlc3RJZCk7CiAgICAgICAgIGlmICghcmVxdWVzdCkKICAgICAgICAg
ICAgIHJldHVybiBudWxsOwogICAgICAgICBpZiAodGhpcy5pc1BlbmRpbmcoKSkgewpAQCAtMTE3
LDcgKzExNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgbGV0IHByb3BlcnRp
ZXMgPSB0aGlzLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlcXVlc3Rz
SW5Hcm91cCk7CiAKICAgICAgICAgYXNzZXJ0KHByb3BlcnRpZXNbJ2ZvcmNlc2NoZWR1bGVyJ10s
IGBmb3JjZXNjaGVkdWxlciB3YXMgbm90IHNwZWNpZmllZCBpbiBidWlsZGJvdCBwcm9wZXJ0aWVz
IGZvciBidWlsZCByZXF1ZXN0ICR7bmV3UmVxdWVzdC5pZCgpfSBvbiBwbGF0Zm9ybSAiJHtuZXdS
ZXF1ZXN0LnBsYXRmb3JtKCkubmFtZSgpfSIgZm9yIGJ1aWxkZXIgIiR7dGhpcy5idWlsZGVyTmFt
ZSgpfSJgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKCF0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZSwg
IXNsYXZlTmFtZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCghdGhpcy5fc2xhdmVQcm9w
ZXJ0eU5hbWUsICFzbGF2ZU5hbWUpOwogICAgICAgICBpZiAodGhpcy5fc2xhdmVQcm9wZXJ0eU5h
bWUpCiAgICAgICAgICAgICBwcm9wZXJ0aWVzW3RoaXMuX3NsYXZlUHJvcGVydHlOYW1lXSA9IHNs
YXZlTmFtZTsKIApAQCAtMzM3LDcgKzMzNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAog
ICAgICAgICBhc3NlcnQoY29uZmlnLmJ1aWxkUmVxdWVzdEFyZ3VtZW50LCAnYnVpbGRSZXF1ZXN0
QXJndW1lbnQgbXVzdCBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB1c2VkIHRvIHN0
b3JlIHRoZSBidWlsZCByZXF1ZXN0IElEJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVv
Zihjb25maWcucmVwb3NpdG9yeUdyb3VwcyksICdvYmplY3QnLCAncmVwb3NpdG9yeUdyb3VwcyBt
dXN0IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24n
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihjb25maWcucmVwb3NpdG9yeUdy
b3VwcyksICdvYmplY3QnLCAncmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9u
YXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24nKTsKIAogICAgICAgICBjb25zdCBy
ZXBvc2l0b3J5R3JvdXBzID0ge307CiAgICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcykKQEAgLTQxNiw3ICs0MTYsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNl
ciB7CiAKICAgICBzdGF0aWMgX3BhcnNlUmVwb3NpdG9yeUdyb3VwKG5hbWUsIGdyb3VwKQogICAg
IHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC5yZXBvc2l0b3JpZXMpLCAnb2Jq
ZWN0JywKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihncm91cC5yZXBvc2l0b3Jp
ZXMpLCAnb2JqZWN0JywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBk
b2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXNgKTsKICAgICAgICAg
YXNzZXJ0KCEoJ2Rlc2NyaXB0aW9uJyBpbiBncm91cCkgfHwgdHlwZW9mKGdyb3VwWydkZXNjcmlw
dGlvbiddKSA9PSAnc3RyaW5nJywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25h
bWV9IiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb25gKTsKQEAgLTQzMSw3ICs0MzEsNyBAQCBj
bGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gUmVw
b3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUocmVwb3NpdG9yeU5hbWUpOwogICAgICAgICAgICAg
YXNzZXJ0KHJlcG9zaXRvcnksIGAiJHtyZXBvc2l0b3J5TmFtZX0iIGlzIG5vdCBhIHZhbGlkIHJl
cG9zaXRvcnkgbmFtZWApOwogICAgICAgICAgICAgcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0b3J5
TmFtZV0gPSByZXBvc2l0b3J5OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihvcHRp
b25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBhIG5vbi1kaWN0
aW9uYXJ5IHZhbHVlYCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKG9w
dGlvbnMpLCAnb2JqZWN0JywgYCIke3JlcG9zaXRvcnlOYW1lfSIgc3BlY2lmaWVzIGEgbm9uLWRp
Y3Rpb25hcnkgdmFsdWVgKTsKICAgICAgICAgICAgIGFzc2VydChbdW5kZWZpbmVkLCB0cnVlLCBm
YWxzZV0uaW5jbHVkZXMob3B0aW9ucy5hY2NlcHRzUGF0Y2gpLAogICAgICAgICAgICAgICAgIGAi
JHtyZXBvc2l0b3J5TmFtZX0iIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVlOiAk
e0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuYWNjZXB0c1BhdGNoKX1gKTsKICAgICAgICAgICAgIGlm
IChvcHRpb25zLmFjY2VwdHNQYXRjaCkKQEAgLTQ0MSw3ICs0NDEsNyBAQCBjbGFzcyBCdWlsZGJv
dFN5bmNlciB7CiAgICAgICAgIH0KICAgICAgICAgYXNzZXJ0KHBhcnNlZFJlcG9zaXRvcnlMaXN0
Lmxlbmd0aCwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHNwZWNpZnkgYW55
IHJlcG9zaXRvcnlgKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnRlc3RQ
cm9wZXJ0aWVzKSwgJ29iamVjdCcsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZp
ZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlkIHR5cGVgKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihncm91cC50ZXN0UHJvcGVydGllcyksICdvYmpl
Y3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSB0ZXN0IGNvbmZp
Z3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7CiAKICAgICAgICAgY29uc3QgcmVzb2x2
ZVJlcG9zaXRvcnkgPSAocmVwb3NpdG9yeU5hbWUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJl
cG9zaXRvcnkgPSByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlOYW1lXTsKQEAgLTQ3MCw3ICs0
NzAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0pOwogICAgICAgICBhc3Nl
cnQoIWdyb3VwLmFjY2VwdHNSb290cyA9PSAhc3BlY2lmaWVzUm9vdHMsCiAgICAgICAgICAgICBg
UmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgYWNjZXB0cyByb290cyBidXQgZG9lcyBub3Qgc3Bl
Y2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllc2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwocGFy
c2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9yaWVzLnNpemUsCisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWRSZXBvc2l0b3J5TGlzdC5sZW5ndGgsIHRlc3RSZXBv
c2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBk
b2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBpbiB0ZXN0aW5nYCk7
CiAKICAgICAgICAgbGV0IGJ1aWxkUHJvcGVydGllc1RlbXBsYXRlID0gbnVsbDsKQEAgLTUwNCw3
ICs1MDQsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBhc3NlcnQocGF0
Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplIHx8IGhhc093bmVkUmV2aXNpb25zLCBgUmVw
b3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIGZvciBidWls
ZGluZyBidXQgZG9lcyBub3QgYWNjZXB0IGFueSBwYXRjaGVzIG9yIG5lZWQgdG8gYnVpbGQgb3du
ZWQgY29tcG9uZW50c2ApOwogICAgICAgICAgICAgZm9yIChjb25zdCByZXBvc2l0b3J5IG9mIHBh
dGNoUmVwb3NpdG9yaWVzKQogICAgICAgICAgICAgICAgIGFzc2VydChyZXZpc2lvblJlcG9zaXRv
cmllcy5oYXMocmVwb3NpdG9yeSksIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZp
ZXMgYSBwYXRjaCBmb3IgIiR7cmVwb3NpdG9yeS5uYW1lKCl9IiBidXQgZG9lcyBub3Qgc3BlY2lm
eSBhIHJldmlzaW9uYCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocGF0Y2hBY2NlcHRpbmdS
ZXBvc2l0b3J5TGlzdC5zaXplLCBwYXRjaFJlcG9zaXRvcmllcy5zaXplLAorICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSwgcGF0
Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAi
JHtuYW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4g
YnVpbGRpbmcgYSBwYXRjaGApOwogICAgICAgICB9CiAKQEAgLTU2NCwxMiArNTY0LDEyIEBAIGNs
YXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAg
ICAgICAgICBjYXNlICdwcm9wZXJ0aWVzJzogLy8gRmFsbHRocm91Z2gKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdCdWlsZCBwcm9wZXJ0aWVz
IHNob3VsZCBiZSBhIGRpY3Rpb25hcnknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdCdWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBi
ZSBhIGRpY3Rpb25hcnknKTsKICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZ1sncHJvcGVydGll
cyddKQogICAgICAgICAgICAgICAgICAgICBjb25maWdbJ3Byb3BlcnRpZXMnXSA9IHt9OwogICAg
ICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjb25maWdbJ3Byb3BlcnRpZXMnXTsKICAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdmFsdWUpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQg
cHJvcGVydGllcyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBl
ICIke3R5cGVvZih2YWx1ZSl9ImApOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0cmluZycsIGBCdWlsZCBwcm9wZXJ0aWVzICIk
e25hbWV9IiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIiR7dHlwZW9mKHZh
bHVlKX0iYCk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbbmFtZV0gPSB2YWx1ZVtu
YW1lXTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01ODAs
NyArNTgwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgICAgIGNvbmZp
Z1tuYW1lXSA9IHZhbHVlLnNsaWNlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlICdidWlsZGVyJzogLy8gRmFsbHRocm91Z2gKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBz
dHJpbmcgdHlwZWApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yo
dmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9mIHN0cmluZyB0eXBlYCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlICdidWlsZGVySUQnOgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCmluZGV4
IDQwZGUwYTU2OTdjODdjZWIwOTgzNTg3MmQ3ZTJlMDg1MzM5YmIzYzMuLjI5YzFlNTA4Y2ZlZDY1
NjRjNWMyMzlmMDYwNTk4NGU4ZTQxOTZmMzIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKQEAgLTE0Nyw3
ICsxNDcsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFzc2VydCh0cmlnZ2VyYWJsZSBp
bnN0YW5jZW9mIFRyaWdnZXJhYmxlLCAnTXVzdCBzcGVjaWZ5IGEgdmFsaWQgdHJpZ2dlcmFibGUn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksIHRoaXMuX25h
bWUsICdNdXN0IHNwZWNpZnkgdGhlIHRyaWdnZXJhYmxlIG9mIHRoaXMgc3luY2VyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0aGlzLl9uYW1l
LCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicpOwogICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdC5yZXBvc2l0b3J5R3JvdXAoKTsK
ICAgICAgICAgICAgIGlmICghcmVwb3NpdG9yeUdyb3VwKSB7CiAgICAgICAgICAgICAgICAgdGhp
cy5fbG9nZ2VyLmVycm9yKGBCdWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSBkb2VzIG5vdCBz
cGVjaWZ5IGEgcmVwb3NpdG9yeSBncm91cC4gU3VjaCBhIGJ1aWxkIHJlcXVlc3QgaXMgbm8gbG9u
Z2VyIHN1cHBvcnRlZC5gKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKaW5kZXggYWNmMDQ5ZDM4OGZjNjc3YWZhMDg0ODg4
MDYxNWRhNjFjYzFjZWUzOS4uMjY0MjU1MmRlY2YzMDFmYWE1NDA0NDQ3ZDhkOTNkZDQwYzRhNzA1
OCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1cC1j
b21wb25lbnQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1
cC1jb21wb25lbnQuanMKQEAgLTEsNCArMSw2IEBACisndXNlIHN0cmljdCc7CiAKK2NvbnN0IGFz
c2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogY29uc3QgTWFya3VwRG9jdW1lbnQgPSBuZXcgY2xh
c3MgTWFya3VwRG9jdW1lbnQgewogICAgIGNvbnN0cnVjdG9yKCkKICAgICB7CkBAIC0yNyw3ICsy
OSw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsK
IAogICAgIF9pZEZvckNsb25lKG9yaWdpbmFsKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQob3JpZ2luYWwgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG9y
aWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAgICAgICAgIHJldHVybiB0aGlzLl9ub2Rl
SWQrKzsKICAgICB9CiAKQEAgLTM4LDcgKzQwLDcgQEAgY29uc3QgTWFya3VwRG9jdW1lbnQgPSBu
ZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogCiAgICAgbWFya3VwKG5vZGUpCiAgICAgewotICAg
ICAgICBjb25zb2xlLmFzc2VydChub2RlIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CisgICAgICAg
IGFzc2VydC5vayhub2RlIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAgICAgICAgIHJldHVybiBu
b2RlLl9tYXJrdXAoKTsKICAgICB9CiAKQEAgLTU2LDcgKzU4LDcgQEAgY29uc3QgTWFya3VwRG9j
dW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogY2xhc3MgTWFya3VwTm9kZSB7CiAg
ICAgY29uc3RydWN0b3IoaWQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Yo
aWQpID09ICdudW1iZXInKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHR5cGVvZihpZCkgPT0gJ251bWJl
cicpOwogICAgICAgICB0aGlzLl9pZCA9IGlkOwogICAgICAgICB0aGlzLl9wYXJlbnROb2RlID0g
bnVsbDsKICAgICB9CkBAIC03Myw5ICs3NSw5IEBAIGNsYXNzIE1hcmt1cE5vZGUgewogCiAgICAg
X2Nsb25lTm9kZURhdGEoY2xvbmVkTm9kZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHR5cGVvZihjbG9uZWROb2RlLl9pZCkgPT0gJ251bWJlcicpOwotICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGNsb25lZE5vZGUuX3BhcmVudE5vZGUgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayh0eXBl
b2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHRoaXMu
X2lkICE9IGNsb25lZE5vZGUuX2lkKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGNsb25lZE5vZGUuX3Bh
cmVudE5vZGUgPT0gbnVsbCk7CiAgICAgfQogCiAgICAgcmVtb3ZlKCkKQEAgLTExMyw3ICsxMTUs
NyBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiAgICAgICAg
IGlmIChjaGlsZC5fcGFyZW50Tm9kZSkKICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpOwogCi0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAg
ICBhc3NlcnQub2soY2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAgICAgICAgIHRoaXMuX2No
aWxkTm9kZXMucHVzaChjaGlsZCk7CiAgICAgICAgIGNoaWxkLl9wYXJlbnROb2RlID0gdGhpczsK
ICAgICB9CkBAIC0xMjMsNyArMTI1LDcgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRz
IE1hcmt1cE5vZGUgewogICAgICAgICBpZiAoY2hpbGQuX3BhcmVudE5vZGUgIT0gdGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9jaGlsZE5vZGVz
LmluZGV4T2YoY2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwKTsKKyAg
ICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0aGlzLl9jaGlsZE5vZGVzLnNw
bGljZShpbmRleCwgMSk7CiAgICAgICAgIGNoaWxkLl9wYXJlbnROb2RlID0gbnVsbDsKICAgICB9
CkBAIC0xNDIsMTAgKzE0NCwxMCBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFy
a3VwTm9kZSB7CiAKICAgICAgICAgaWYgKG5ld0NoaWxkLl9wYXJlbnROb2RlKQogICAgICAgICAg
ICAgbmV3Q2hpbGQucmVtb3ZlKCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG5ld0NoaWxkLl9w
YXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQub2sobmV3Q2hpbGQuX3BhcmVudE5v
ZGUgPT0gbnVsbCk7CiAKICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9jaGlsZE5vZGVzLmlu
ZGV4T2Yob2xkQ2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwKTsKKyAg
ICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0aGlzLl9jaGlsZE5vZGVzLnNw
bGljZShpbmRleCwgMSwgbmV3Q2hpbGQpOwogICAgICAgICBvbGRDaGlsZC5fcGFyZW50Tm9kZSA9
IG51bGw7CiAgICAgICAgIG5ld0NoaWxkLl9wYXJlbnROb2RlID0gdGhpczsKQEAgLTE1NSw4ICsx
NTcsOCBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiBjbGFz
cyBNYXJrdXBDb250ZW50Um9vdCBleHRlbmRzIE1hcmt1cFBhcmVudE5vZGUgewogICAgIGNvbnN0
cnVjdG9yKGlkLCBob3N0KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaG9zdCBpbnN0
YW5jZW9mIE1hcmt1cEVsZW1lbnQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChob3N0Ll9jb250
ZW50Um9vdCA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3QgaW5zdGFuY2VvZiBNYXJr
dXBFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3QuX2NvbnRlbnRSb290ID09IG51bGwp
OwogICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2hvc3RFbGVtZW50ID0gbnVsbDsK
ICAgICAgICAgaG9zdC5fY29udGVudFJvb3QgPSB0aGlzOwpAQCAtMTc1LDcgKzE3Nyw3IEBAIGNs
YXNzIE1hcmt1cEVsZW1lbnQgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2RlIHsKICAgICBjb25zdHJ1
Y3RvcihpZCwgbmFtZSkKICAgICB7CiAgICAgICAgIHN1cGVyKGlkKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQodHlwZW9mKG5hbWUpID09ICdzdHJpbmcnKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHR5
cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwogICAg
ICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fdmFsdWUgPSBu
dWxsOwpAQCAtMzY0LDcgKzM2Niw3IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5k
cyBDb21tb25Db21wb25lbnRCYXNlIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5f
bmFtZSA9IGNvbXBvbmVudHNCeUNsYXNzLmdldChuZXcudGFyZ2V0KTsKICAgICAgICAgY29uc3Qg
Y29tcG9uZW50ID0gY29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbXBvbmVudCwgYENvbXBvbmVudCAiJHt0aGlzLl9uYW1lfSIgaGFzIG5vdCBi
ZWVuIGRlZmluZWRgKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGNvbXBvbmVudCwgYENvbXBvbmVudCAi
JHt0aGlzLl9uYW1lfSIgaGFzIG5vdCBiZWVuIGRlZmluZWRgKTsKICAgICAgICAgdGhpcy5fY29t
cG9uZW50SWQgPSBjb21wb25lbnQuaWQ7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBudWxsOwog
ICAgICAgICB0aGlzLl9jb250ZW50Um9vdCA9IG51bGw7CkBAIC00MTIsNyArNDE0LDcgQEAgY2xh
c3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAg
ICAgc3RhdGljIHJ1blJlbmRlckxvb3AoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
IWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFzc2VydC5vayghY3VycmVu
dGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKICAgICAgICAgZG8gewogICAgICAgICAgICAgY29uc3Qg
Y3VycmVudFNldCA9IFsuLi5jb21wb25lbnRzVG9SZW5kZXJdOwogICAgICAgICAgICAgY29tcG9u
ZW50c1RvUmVuZGVyLmNsZWFyKCk7CkBAIC00MjksMTQgKzQzMSwxNCBAQCBjbGFzcyBNYXJrdXBD
b21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICByZW5kZXJS
ZXBsYWNlKHBhcmVudE5vZGUsIGNvbnRlbnQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2Vy
dChjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJlbnROb2RlKTsKKyAgICAgICAg
YXNzZXJ0Lm9rKGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9PSB0aGlzKTsKKyAgICAgICAg
YXNzZXJ0Lm9rKHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJlbnROb2RlKTsKICAgICAg
ICAgcGFyZW50Tm9kZS5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAgICAgICBpZiAoY29udGVudCkg
ewogICAgICAgICAgICAgTWFya3VwQ29tcG9uZW50QmFzZS5fYWRkQ29udGVudFRvRWxlbWVudChw
YXJlbnROb2RlLCBjb250ZW50KTsKIAogICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29t
cG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChj
b21wb25lbnQpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbXBvbmVudCk7CiAgICAgICAgICAg
ICB0aGlzLl9hcHBseVN0eWxlT3ZlcnJpZGVzKHBhcmVudE5vZGUsIGNvbXBvbmVudC5zdHlsZU92
ZXJyaWRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ5Myw3ICs0OTUsNyBAQCBjbGFzcyBNYXJr
dXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICBzdGF0
aWMgcmVzZXQoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWN1cnJlbnRseVJlbmRl
cmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFzc2VydC5vayghY3VycmVudGx5UmVuZGVyaW5nQ29t
cG9uZW50KTsKICAgICAgICAgTWFya3VwRG9jdW1lbnQucmVzZXQoKTsKICAgICAgICAgY29tcG9u
ZW50c01hcC5jbGVhcigpOwogICAgICAgICBjb21wb25lbnRzQnlDbGFzcy5jbGVhcigpOwpAQCAt
NTY3LDkgKzU2OSw5IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25D
b21wb25lbnRCYXNlIHsKIAogICAgIHN0YXRpYyBkZWZpbmVFbGVtZW50KG5hbWUsIGNvbXBvbmVu
dENsYXNzKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWNvbXBvbmVudHNNYXAuZ2V0
KG5hbWUpLCBgVGhlIGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVk
YCk7CisgICAgICAgIGFzc2VydC5vayghY29tcG9uZW50c01hcC5nZXQobmFtZSksIGBUaGUgY29t
cG9uZW50ICIke25hbWV9IiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWRgKTsKICAgICAgICAgY29u
c3QgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcyA9IGNvbXBvbmVudHNCeUNsYXNzLmdldChjb21w
b25lbnRDbGFzcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFleGlzdGluZ0NvbXBvbmVudEZv
ckNsYXNzLCBleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzCisgICAgICAgIGFzc2VydC5vayghZXhp
c3RpbmdDb21wb25lbnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcwogICAgICAg
ICAgICAgPyBgVGhlIGNvbXBvbmVudCBjbGFzcyAiJHtleGlzdGluZ0NvbXBvbmVudEZvckNsYXNz
fSIgaGFzIGFscmVhZHkgYmVlbiB1c2VkIHRvIGRlZmluZSBhbm90aGVyIGNvbXBvbmVudCAiJHtl
eGlzdGluZ0NvbXBvbmVudEZvckNsYXNzLm5hbWV9ImAgOiAnJyk7CiAgICAgICAgIGNvbXBvbmVu
dHNNYXAuc2V0KG5hbWUsIHsKICAgICAgICAgICAgIGNsYXNzOiBjb21wb25lbnRDbGFzcywKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRj
aGVyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNo
ZXIuanMKaW5kZXggOTkzNDA3OWQ2YjNhYTQ5ZDg3ZWU0M2RhNTk1MWE3ZGMxMDJjMDlmYy4uMmQ2
ZjUwYTk1NzMwZGNkNjZjNDc0NTgzMWJiOGViN2ViN2YyM2E2YiAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZldGNoZXIuanMKQEAgLTEy
MSw3ICsxMjEsNyBAQCBjbGFzcyBPU0J1aWxkRmV0Y2hlciB7CiAgICAgICAgICAgICAgICAgdGhp
cy5fbG9nZ2VyLmxvZyhgR290ICR7T2JqZWN0LmtleXMoKG93bmVkQ29tbWl0cykpLmxlbmd0aH0g
b3duZWQgY29tbWl0cyBmb3IgIiR7Y29tbWl0WydyZXZpc2lvbiddfSJgKTsKICAgICAgICAgICAg
ICAgICBmb3IgKGxldCByZXBvc2l0b3J5TmFtZSBpbiBvd25lZENvbW1pdHMpIHsKICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgb3duZWRDb21taXQgPSBvd25lZENvbW1pdHNbcmVwb3NpdG9yeU5h
bWVdOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKG93
bmVkQ29tbWl0KSwgWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhvd25lZENvbW1pdCksIFsncmV2aXNpb24nXSk7CiAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2Yob3duZWRDb21taXRbJ3JldmlzaW9uJ10p
ID09ICdzdHJpbmcnKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY29tbWl0
Wydvd25lZENvbW1pdHMnXSA9IG93bmVkQ29tbWl0czsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvcmVtb3RlLmpzCmluZGV4IGFmNmFhMzY4ZWY1MGJiODc4MzE3NjdmNmFiNzU2
MzFjMjgxZGUwYzcuLjQ3NzM3NjY2MDY2MGI4MDZkNDExMTk5MjA3Zjk0MjhkY2E0NDcyNjAgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwpAQCAtMzEsMTQg
KzMxLDE0IEBAIGNsYXNzIE5vZGVSZW1vdGVBUEkgZXh0ZW5kcyBDb21tb25SZW1vdGVBUEkgewog
ICAgIGNvbmZpZ3VyZShzZXJ2ZXIpCiAgICAgewogICAgICAgICBhc3NlcnQoc2VydmVyLnNjaGVt
ZSA9PT0gJ2h0dHAnIHx8IHNlcnZlci5zY2hlbWUgPT09ICdodHRwcycpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodHlwZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycsICdob3N0IHNob3VsZCBiZSBh
IHN0cmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5ob3N0
KSwgJ3N0cmluZycsICdob3N0IHNob3VsZCBiZSBhIHN0cmluZycpOwogICAgICAgICBhc3NlcnQo
IXNlcnZlci5wb3J0IHx8IHR5cGVvZihzZXJ2ZXIucG9ydCkgPT0gJ251bWJlcicsICdwb3J0IHNo
b3VsZCBiZSBhIG51bWJlcicpOwogCiAgICAgICAgIGxldCBhdXRoID0gbnVsbDsKICAgICAgICAg
aWYgKHNlcnZlci5hdXRoKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZl
ci5hdXRoKSwgJ29iamVjdCcsICdhdXRoIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkgd2l0aCB1c2Vy
bmFtZSBhbmQgcGFzc3dvcmQgYXMga2V5cycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5
cGVvZihzZXJ2ZXIuYXV0aC51c2VybmFtZSksICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFp
biBhIHN0cmluZyB1c2VybmFtZScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihz
ZXJ2ZXIuYXV0aC5wYXNzd29yZCksICdzdHJpbmcnLCAnYXV0aCBzaG91bGQgY29udGFpbiBhIHN0
cmluZyBwYXNzd29yZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihz
ZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5IHdpdGgg
dXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3RyaW5nJywgJ2F1dGggc2hv
dWxkIGNvbnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAnc3RyaW5nJywgJ2F1dGggc2hv
dWxkIGNvbnRhaW4gYSBzdHJpbmcgcGFzc3dvcmQnKTsKICAgICAgICAgICAgIGF1dGggPSB7CiAg
ICAgICAgICAgICAgICAgdXNlcm5hbWU6IHNlcnZlci5hdXRoLnVzZXJuYW1lLAogICAgICAgICAg
ICAgICAgIHBhc3N3b3JkOiBzZXJ2ZXIuYXV0aC5wYXNzd29yZCwKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCmluZGV4IDZhMTFkYmM2N2ZmNjM1NjIy
YTM4ZTc3MTg5NGU5Mjg1YTM3NTc3MDcuLjRiZWJhYmQ1YWE3MjE0NTNkZTdkZTczNzk3NDlmODgw
YTE3NGM1MWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1v
ZGVscy5qcwpAQCAtNyw2ICs3LDggQEAgZnVuY3Rpb24gaW1wb3J0RnJvbVYzKGZpbGUsIG5hbWUp
CiAgICAgZ2xvYmFsW25hbWVdID0gcmVxdWlyZShtb2RlbHNEaXJlY3RvcnkgKyBmaWxlKVtuYW1l
XTsKIH0KIAorcmVxdWlyZSgnLi9hc3NlcnQtb3ZlcnJpZGUuanMnKS5tYWtlQ29uc29sZUFzc2Vy
dFRocm93KCk7CisKIGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnRGF0YU1v
ZGVsT2JqZWN0Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ0xhYmVs
ZWRPYmplY3QnKTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvY29tbWl0LXNldC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0
LXRlc3RzL2NvbW1pdC1zZXQtdGVzdHMuanMKaW5kZXggYTI2NmE4MGZiOTU1ZWUxYjkyMGM5ZGVl
Nzk2MTZiNTQzZTA3Y2RmYy4uMzg5M2E1MmVhYjdjZTcwNjA0NzhmNDk4MTI3YTMxNTkzNjEyMDIz
ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0
LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9j
b21taXQtc2V0LXRlc3RzLmpzCkBAIC0yMiwxMCArMjIsOCBAQCBmdW5jdGlvbiBjcmVhdGVSb290
KGRlbGV0ZWRBdCkKIHsKICAgICBjb25zdCBkYXRhID0geydjcmVhdGVkQXQnOiBuZXcgRGF0ZSgn
MjAxNy0wNS0wMVQyMTowMzoyN1onKSwgJ2ZpbGVuYW1lJzogJ3Jvb3QuZGF0JywgJ2V4dGVuc2lv
bic6ICcuZGF0JywgJ2F1dGhvcic6ICdzb21lIHVzZXInLAogICAgICAgICBzaXplOiAxNjQ1MjIz
NCwgc2hhMjU2OiAnMDNlZWQ3YTg0OTRhYjg3OTRjNDRiN2Q0MzA4ZTU1NDQ4ZmM1NmY0ZDZjMTc1
ODA5YmE5NjhmNzhmNjU2ZDU4ZCd9OwotICAgIGlmIChkZWxldGVkQXQpIHsKLSAgICAgICAgY29u
c29sZS5sb2coZGVsZXRlZEF0KTsKKyAgICBpZiAoZGVsZXRlZEF0KQogICAgICAgICBkYXRhWydk
ZWxldGVkQXQnXSA9IGRlbGV0ZWRBdDsKLSAgICB9CiAgICAgcmV0dXJuIFVwbG9hZGVkRmlsZS5l
bnN1cmVTaW5nbGV0b24oNDU2LCBkYXRhKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422463</attachid>
            <date>2021-03-05 18:36:04 -0800</date>
            <delta_ts>2021-03-05 19:07:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305183600.patch</filename>
            <type>text/plain</type>
            <size>876083</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi40MjVmMjNkNmQ5
ZmQ5N2NjZmYzZWRkMWZlNjM0M2QwMzNjYWIyZTg3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAyMS0wMy0wNSAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisgICAgICAgIAorICAgICAgICBNYWtlIHNlcnZlciB0ZXN0IHJ1biB3
aXRoIG5ldyBub2RlIHZlcnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjQ2MworCisgICAgICAgIENoYW5nZSBhc3NlcnQuZXF1YWwgdG8gYXNz
ZXJ0LnN0cmljdEVxdWFsIHNpbmNlIG5vZGUgZGVwcmVjYXRlZCB0aGlzIEFQSQorICAgICAgICBB
ZGQgYSBuZXcgZnVuY3Rpb24gY29uc29sZS5hc3NlcnQgdG8gbWFrZSBzdXJlIGl0IHdpbGwgdGhy
b3cgYW4gZXJyb3IKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qczoKKyAgICAgICAgKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTCk6CisgICAgICAgIChSZXBvc2l0b3J5
KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzOgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzOgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6CisgICAgICAg
IChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6Cisg
ICAgICAgIChhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZCk6CisgICAgICAgIChyZXR1
cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVu
KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzOgorICAgICAg
ICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hl
cmUudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVz
dHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5q
czoKKyAgICAgICAgKGVtcHR5UmVwb3J0LnRoZW4pOgorICAgICAgICAoYXN5bmMgaW5pdGlhbFJl
cG9ydENvbW1pdHMpOgorICAgICAgICAoYXN5bmMgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1
cyk6CisgICAgICAgIChhc3luYyB0ZXN0V2l0aEV4cGVjdGVkRmFpbHVyZSk6CisgICAgICAgICog
c2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanM6CisgICAgICAgIChlbXB0eVJlcG9ydC50
aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpzOgorICAgICAg
ICAqIHNlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzOgorICAgICAg
ICAodXBkYXRlLnRoZW4pOgorICAgICAgICAodGhlbi5yZXNwb25zZS5kYi5zZWxlY3RBbGwuc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuLmRiLnNlbGVjdEFsbC5zdHJp
bmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRoZW4uTWFuaWZlc3QuZmV0Y2gudGhl
bik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanM6CisgICAgICAg
IChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxk
LXJlcXVlc3RzLXRlc3RzLmpzOgorICAgICAgICAoYXN5bmMgY3JlYXRlQW5hbHlzaXNUYXNrKToK
KyAgICAgICAgKGNvbnN0LmNvbW1pdFNldC5vZi51cGRhdGVkR3JvdXBzLjAucmVxdWVzdGVkQ29t
bWl0U2V0cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1h
bmFseXNpcy10YXNrLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qczoKKyAgICAgICAgKGNyZWF0ZUFuYWx5c2lz
VGFzayk6CisgICAgICAgIChyZXR1cm4uY3JlYXRlQW5hbHlzaXNUYXNrLnN0cmluZ19hcHBlYXJl
ZF9oZXJlLnRoZW4pOgorICAgICAgICAocmV0dXJuLmFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
ay5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9o
ZXJlLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1y
dW4tc3RhdHVzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRh
dGUtdGVzdC1ncm91cC10ZXN0cy5qczoKKyAgICAgICAgKGFzeW5jIGNyZWF0ZUFuYWx5c2lzVGFz
ayk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRl
c3RzLmpzOgorICAgICAgICAoVGVzdFNlcnZlci50ZXN0Q29uZmlnLnVwbG9hZEZpbGVMaW1pdElu
TUIuMS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zLmpzOgorICAgICAgICAoYXN5bmMgYXNzZXJ0VGhyb3dzKToKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzOgorICAgICAgICAoVGVtcG9yYXJ5
RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZU9mU2l6ZUluTUIpOgorICAgICAgICAqIHNlcnZlci10ZXN0
cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qczoKKyAgICAgICAgKGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRoZW4pOgor
ICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczoKKyAg
ICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9qcy9hc3Nl
cnQtb3ZlcnJpZGUuanM6IEFkZGVkLgorICAgICAgICAobWFrZUNvbnNvbGVBc3NlcnRUaHJvdyk6
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzOgorICAgICAgICAoQnVpbGRi
b3RCdWlsZEVudHJ5LnByb3RvdHlwZS5pbml0aWFsaXplKToKKyAgICAgICAgKEJ1aWxkYm90QnVp
bGRFbnRyeS5wcm90b3R5cGUuYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRhdGVJc05lZWRlZCk6Cisg
ICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkpOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJv
dG90eXBlLnNjaGVkdWxlUmVxdWVzdCk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fcGFyc2VSZXBvc2l0b3J5R3JvdXApOgor
ICAgICAgICAoQnVpbGRib3RTeW5jZXIuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcpOgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIpOgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJh
YmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuX3ZhbGlkYXRl
UmVxdWVzdHMpOgorICAgICAgICAqIHRvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanM6CisgICAg
ICAgIChjb25zdC5NYXJrdXBEb2N1bWVudC5uZXcuTWFya3VwRG9jdW1lbnQucHJvdG90eXBlLl9p
ZEZvckNsb25lKToKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERvY3VtZW50Lm5ldy5NYXJrdXBEb2N1
bWVudC5wcm90b3R5cGUubWFya3VwKToKKyAgICAgICAgKiB0b29scy9qcy9vcy1idWlsZC1mZXRj
aGVyLmpzOgorICAgICAgICAocHJvdG90eXBlLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZCk6Cisg
ICAgICAgICogdG9vbHMvanMvcmVtb3RlLmpzOgorICAgICAgICAoTm9kZVJlbW90ZUFQSS5wcm90
b3R5cGUuY29uZmlndXJlKToKKyAgICAgICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAg
ICAgICogdW5pdC10ZXN0cy9jb21taXQtc2V0LXRlc3RzLmpzOgorCiAyMDIxLTAyLTE4ICBEZXdl
aSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IGEg
c3luY2luZyBzY3JpcHQgbWF5IHRyeSB0byByZXVzZSBhIGRlbGV0ZSByb290LgpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnku
anMKaW5kZXggOTMxOTg5OWRkY2Y2MDI3NTlkMDI0ODA5MDM1OTU3ZmUwNjNmMWE0Yi4uMzVkZDM1
ZTRiZWMzNjA1MGMzNmE0NTFjMDI2ODNjODdmZmE1OGE4YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCkBAIC02
MCw3ICs2MCw3IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5u
YW1lKCkgPCBiLm5hbWUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBhLmlkKCkgLSBiLmlk
KCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGIuX2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRm
b3Jtcy10ZXN0cy5qcwppbmRleCAxMTJiMDkxNWZmOGY5OTQyNWVlNjg0NjUzYzI5NTQyYTQ3OTk5
YmM0Li4zYmRlZGVjN2I5YzJjMWJmN2Y0YTM5MGM2Yjc4Y2JkYzc3MjMwZTMzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXBsYXRmb3Jtcy10ZXN0cy5qcwpAQCAtNDUsMTkgKzQ1LDE5IEBAIGRlc2NyaWJlKCIvYWRtaW4v
cGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgncGxhdGZvcm1zJywgJ25hbWUnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7
CiAgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5rIE1v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSddLCAnVHJ1bmsgTW91
bnRhaW4gTGlvbicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZFBsYXRmb3Jtc1sxXVsnaWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkUGxhdGZvcm1zWzJdWydp
ZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgncGxhdGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1BsYXRmb3JtcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1BsYXRmb3Jtcy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1sw
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxh
dGZvcm1zWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdQbGF0Zm9ybXMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobmV3UGxhdGZv
cm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC02OSwxNSArNjksMTUgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBvbGRUZXN0UnVucyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9s
ZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10s
ICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
Ml1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9z
dW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RS
dW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKICAgICAgICAgICAg
ICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9p
ZCddLCAnZGVzdGluYXRpb24nOiBvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1faWQnXX0pOwpAQCAt
ODUsMjAgKzg1LDIwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgbmV3VGVzdFJ1bnMgPSByZXN1
bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVucy5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xk
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sxXVsn
cnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydwbGF0
Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMl1bJ3J1
bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzNdWydydW5f
aWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3Jt
X25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1
bl9jb25maWcnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sw
XVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNr
cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5f
c3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1
bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRm
b3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0
UnVuc1szXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUn
XSwgMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydy
dW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmlnJ10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTE0LDEzICsxMTQsMTMgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9y
bXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JD
b25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkQ29uZmlncyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9u
YW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10s
IHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENv
bmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJl
cG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSdd
LCAnY3VycmVudCcpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZENvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX2lkJ119KTsKQEAgLTEyOCwxMyArMTI4LDEzIEBAIGRlc2NyaWJlKCIvYWRt
aW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5
KHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxh
dGZvcm0nXV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IG5ld0NvbmZpZ3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdDb25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmln
c1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRl
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5cGUn
XSwgJ2Jhc2VsaW5lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsn
cGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1
cnJlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsncGxh
dGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5
cGUnXSwgJ2Jhc2VsaW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29u
Zmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAn
RnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sx
XVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVw
cm9jZXNzLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwppbmRleCAyZmY1M2NiZjg4YWMy
NGIwZTkyMTZiMGE3MmU0ZTM3MDkyMjdhODgxLi5iMDhhZjlmZGY5YzZiNDMwNTAyOTBkYzc1YTIz
NDVhNzI2NTFmOGU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpz
CkBAIC00OCwxMCArNDgsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVS
ZXBvcnRXaXRoUmV2aXNpb25zKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ1dl
YktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVwb3NpdG9yaWVzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSZXBzaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXS5vd25lciA9PSAxID8gcmVwb3Np
dG9yaWVzWzFdLmlkIDogcmVwb3NpdG9yaWVzWzBdLmlkOwogICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzIxMzIxNCcsICdyZXBvc2l0b3J5
Jzogd2Via2l0UmVwc2l0b3J5SWR9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBA
IC02NSwyNyArNjUsMjcgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBv
cnRbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0pOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkcyA9IHJlc3VsdFsw
XTsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzWzBdWyd0YWcnXSwgMTk4Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10s
ICcxOTg2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgcmVwb3J0SWQgPSByZXBvcnRzWzBdWydpZCddOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZyddLCAxOTg2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgJzE5ODYnKTsK
ICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9i
dWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9
KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAw
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKGAvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JHtyZXBvcnRJZH1gKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdi
dWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRzWzBdWyd0YWcnXSwgMTk4Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzWzBd
Wyd0YWcnXSwgJzE5ODYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk1LDEwICs5NSwx
MCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFswXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3QgPSByZXBvcnRzWzBdOwogICAg
ICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxk
ID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpA
QCAtMTA2LDE0ICsxMDYsMTQgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBuZXdQb3J0ID0gcmVwb3J0c1swXTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Wydj
b21taXR0ZWRfYXQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQb3J0Wydjb21taXR0ZWRfYXQn
XSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1
aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG9yaWdpbmFsUmVwcm90WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKICAgICAgICAg
ICAgIG9yaWdpbmFsUmVwcm90WydidWlsZCddID0gbnVsbDsKICAgICAgICAgICAgIG5ld1BvcnRb
J2J1aWxkJ10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvcmlnaW5hbFJl
cHJvdCwgbmV3UG9ydCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9yaWdp
bmFsUmVwcm90LCBuZXdQb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggODNmYmU1OTdmZTc5YTNhMWJmODA1MGFjODM3
N2JkZDg2NDc0NGU2Ni4uY2RlNWVkZjJiYjFmMjdkNWQzOTcxNWNiMzZhZWY2MGNiZTUxMmIwOSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVp
bGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTEzLDcgKzEzLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hv
dWxkIHJldHVybiAiVHJpZ2dlcmFibGVOb3RGb3VuZCIgd2hlbiB0aGUgZGF0YWJhc2UgaXMgZW1w
dHknLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JykudGhlbigoY29udGVudCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnVHJpZ2dlcmFi
bGVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0
YXR1cyddLCAnVHJpZ2dlcmFibGVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMjEsMTEgKzIxLDExIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVp
bGRfdHJpZ2dlcmFibGVzJywge25hbWU6ICdidWlsZC13ZWJraXQnfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2J1
aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMywzNiArMzMsMzYgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBN
b2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwg
WydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBs
b2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25l
cjogIjkzMTE2IiwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsx
XS5pZCwgNDA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICAgICAge2NvbW1pdDogJzIwMTcnLCBjb21taXRPd25lcjogIjk2MzM2IiwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1pdE93bmVyOiBu
dWxsLCBpZDogODc4MzIsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246ICcxMC4xMSAxNUEyODQn
LCB0aW1lOiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogOTMxMTYsIHJlcG9zaXRvcnk6ICcxMScs
IHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTogMTQ0NTk0NTgxNjg3OH0pCi0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMx
MTYnLCBpZDogJzE3OTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2Mt
NjE2MScsIHRpbWU6IDE0NTY5NjA3OTUzMDB9KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDk2MzM2LCBy
ZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9
KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtj
b21taXRPd25lcjogJzk2MzM2JywgaWQ6IDIwMTcsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lv
bjogJ293bmVkLWpzYy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1p
dE93bmVyOiBudWxsLCBpZDogJzg3ODMyJywgcmVwb3NpdG9yeTogJzknLCByZXZpc2lvbjogJzEw
LjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTMxMTYn
LCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4
Nzh9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMl0sIHtjb21taXRPd25lcjogJzkzMTE2JywgaWQ6ICcxNzk3JywgcmVwb3NpdG9yeTogJzIx
MycsIHJldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCB0aW1lOiAxNDU2OTYwNzk1MzAwfSkKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzNdLCB7
Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTYzMzYnLCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lv
bjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9KQorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtjb21taXRPd25lcjogJzk2MzM2
JywgaWQ6ICcyMDE3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkx
OTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwogICAgICAgICAg
ICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAg
ICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV1bJ2NyZWF0ZWRBdCddID0gMDsKICAgICAg
ICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXVsnY3JlYXRlZEF0J10gPSAwOwogICAg
ICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdWydjcmVhdGVkQXQnXSA9IDA7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXSwg
e2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5
R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5
MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3Rh
dHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDog
MH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJs
ZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3Jt
OiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0MDQnLCBz
dGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVp
bGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgw
JywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcy
MDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0
U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1
cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUn
LCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIw
MDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVy
OiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlw
dGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0
b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6
ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywg
c3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRB
dDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcx
MDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1
JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVz
OiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBu
dWxsLCBjcmVhdGVkQXQ6IDB9KTsKICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAsMzAgKzcw
LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRz
JywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMs
ICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3lu
Yy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC0x
MDEsNTMgKzEwMSw1MyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVu
Z3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5p
ZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5p
ZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
cmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAot
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAx
MDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
JzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAg
IGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0IGlmIHNhbWUgY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVy
LmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Vi
a2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0
LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdj
b21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDMp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAg
ICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29t
bWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNv
bW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAn
ODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMx
MTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
LCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgNzA4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwp
OwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7NzA4OiB7CiAgICAgICAgICAgICBzdGF0dXM6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiA3MDR9fTsKQEAgLTE1
OSwyOSArMTU5LDI5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5z
b3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVz
JywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQw
Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAg
ICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBj
b21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3Jywg
Y29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5
MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0p
OwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcx
MDEnfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OwogICAgIH0pOwogCiAgICAgaXQoJ3JldXNlIHJvb3RzIGZyb20gZXhpc3RpbmcgYnVpbGQgcmVx
dWVzdHMgaWYgdGhlIGNvbW1pdHMgc2V0cyBhcmUgZXF1YWwgZXhjZXB0IHRoZSBleGlzdGVuY2Ug
b2YgY3VzdG9tIHJvb3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTk1LDMyICsxOTUsMzIgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0pOwog
ICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2
MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5j
dXN0b21Sb290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5jdXN0b21Sb290cywgWycxMDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAg
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RS
ZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICAgICAg
c3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29y
ZCcsCkBAIC0yMjgsMjcgKzIyOCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVz
dHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5pZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31d
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3Rz
LCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0
b21Sb290cywgWycxMDQnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRo
ICJDYW5ub3RSZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byByZXVzZSBpcyBkZWxldGVk
JywgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDMxICsyOTksMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVp
bGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5xdWVyeShgQ1JFQVRFIFRSSUdHRVIgZW11bGF0ZV9maWxlX3B1cmdlIEFGVEVSIFVQ
REFURSBPRiBjb21taXRzZXRfcm9vdF9maWxlIE9OIGNvbW1pdF9zZXRfaXRlbXMKICAgICAgICAg
ICAgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBlbXVsYXRlX2ZpbGVfcHVyZ2UoKTtg
KTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkLCA2MDApOwotCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVs
bCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgIHN0YXR1
czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51
cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1
c2VEZWxldGVkUm9vdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAg
ICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zMzcsMjkgKzMzNiwyOSBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9j
a0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgp
LCBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBmYWxzZSk7CiAgICAgICAg
IGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVz
QnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0
dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMg
PSB7OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxk
UmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07Cisg
ICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAg
ICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnTm9NYXRjaGluZ0NvbW1pdFNldEl0ZW0nLCAoKSA9
PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1y
ZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMt
c2xhdmUnLApAQCAtMzc0LDMwICszNzMsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDEsIGNvbW1pdDogMTExMTY4fSkKICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICcxMTExNjgnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
OF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAw
OiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1c2VSb290V2l0aE5vbk1hdGNoaW5nQ29tbWl0
U2V0cycsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCkBAIC00MTAsMzAgKzQwOSwzMCBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRk
TW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ3J1bm5p
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycs
ICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncnVu
bmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVs
bH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAncnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDog
ewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAgIGF3YWl0IGFzc2Vy
dFRocm93cygnQ2FuT25seVJldXNlQ29tcGxldGVkQnVpbGRSZXF1ZXN0JywgKCkgPT4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywK
ICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAgLTQ0NSwyNyArNDQ0
LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWls
ZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRl
bnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdz
dGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0
OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDog
dHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewogICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogOTk5fX07CkBAIC00ODEsNTUgKzQ4MCw1NSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsn
YnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9h
ZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAg
ICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLmlkLCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnOScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lv
biwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXVsxXS5pZCwgOTMxMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9u
LCAnMTkyNzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2
NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwg
NDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5v
cmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZv
cm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwg
JzIwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJzknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNpb24sICcx
MC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcxMScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdHMnXVsyXS5pZCksIDk2MzM2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9uLCAnMTky
NzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVz
dCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5v
cmRlciksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0
U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAn
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIpLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNTM3LDU1ICs1MzYsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0P3VzZUxlZ2FjeUlkUmVzb2x1dGlvbj10cnVlJyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10u
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzFdLmlkKSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAg
ICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnks
ICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11b
MV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgWydzb21lIHRlc3Qn
XSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCBbJ3NvbWUgdGVz
dCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0uaWQsIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsIFsnc29tZSB0
ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9y
bScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgWydzb21l
IHRlc3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnbWFjT1MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNp
b24sICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0u
cmV2aXNpb24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0u
cmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3
MDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBw
bGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZv
cm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21lIHRlc3QnXSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3NvbWUg
dGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3Jk
ZXIpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRl
c3QsIFsnc29tZSB0ZXN0J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTk1LDcgKzU5
NCw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxk
UmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsK
ICAgICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTYwMyw5NCArNjAyLDk0IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBs
YXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRm
b3JtKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwg
NzA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA5MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgp
LCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwNSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwNSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwg
MSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBp
bnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3Rz
WzFdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgOTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwg
cGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVx
dWVzdHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzA3KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElk
KCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29t
bWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFy
dGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCks
ICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoMjEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlw
dENvcmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKIAogICAgICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1p
dFNldCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAu
MTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgY29u
c3QgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2
aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1
ODE2ODc4KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1
NjUwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQu
cmV2aXNpb24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtz
ZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKIAogICAgICAgICAgICAg
Y29uc3QgZmlyc3RTSkNDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24o
KSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0U0pD
Q29tbWl0LnRpbWUoKSwgMTQ1Njk2MDc5NTMwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0U0pDQ29tbWl0LnRpbWUoKSwgMTQ1Njk2
MDc5NTMwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFNKQ0NvbW1pdCA9IHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMwODM3MTAw
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lv
bigpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgr
c2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTY5OCw3ICs2OTcsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93
bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IGF3
YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC03
MDgsMzMgKzcwNywzMyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3RzWzBdOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgNzA0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVyKCksIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCkpLCA5MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lm9yZGVy
KCkpLCAwKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKSBpbnN0
YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5oYXNTdGFydGVkKCkp
OwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CiAKICAgICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgY29uc3QganNjID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCgyMTMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3Jl
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlwdENv
cmUnKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
OTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMoKS5zb3J0KChvbmUsIGFub3RoZXIpID0+IG9uZS5p
ZCgpIDwgYW5vdGhlci5pZCgpKSwgW29zeCwgd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEy
ODQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBw
YXJzZUludChvbmUuaWQoKSkgLSBwYXJzZUludChhbm90aGVyLmlkKCkpKSwgW29zeCwgd2Via2l0
XSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCkuYWNj
ZXB0cyhjb21taXRTZXQpKTsKICAgICB9KTsKIApAQCAtNzQ0LDcgKzc0Myw3IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAg
ICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgICAgIGFz
c2VydCh0ZXN0KTsKQEAgLTc1Miw3OSArNzUxLDc5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZv
cm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxh
dGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHBs
YXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50
ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgp
KSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFd
LnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1p
dFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzRmluaXNo
ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmlzUGVuZGluZygp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkp
LCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3Jk
ZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0
U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0KCks
IHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZv
cm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnBsYXRm
b3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFydGVkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5nKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNP
UycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycp
OwogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAg
ICAgICAgICAgbGV0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOwogCiAgICAgICAgICAgICBs
ZXQgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRD
b21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1
QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4x
MSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gp
LCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
CiAKICAgICAgICAgICAgIGxldCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LnJldmlz
aW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNvbmRDb21t
aXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgbGV0IGZpcnN0
V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7
CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRXZWJLaXRDb21taXQgPSBzZWNvbmRDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK3NlY29uZFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtODM0LDcgKzgzMyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODQ0LDcg
Kzg0Myw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1
aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODU0LDcgKzg1Myw3IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVz
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsK
QEAgLTg3Niw3ICs4NzUsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9
KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVz
dHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1swXS5pc1BlbmRpbmcoKSk7CkBAIC04OTksMzIgKzg5OCwzMiBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIo
KSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3
MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3Vw
SWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpLCA3MTIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCksIDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgNzEzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCks
IDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5v
cmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5p
ZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgp
KSwgNzEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSksIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDcx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLmlkKCkpLCA3MTIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0u
dGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgNzEzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLnRlc3RH
cm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtOTM3LDMwICs5MzYsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJh
YmxlLmFsbCgpLmZpbmQoKHRyaWdnZXJhYmxlKSA9PiB0cmlnZ2VyYWJsZS5uYW1lKCkgPT0gJ2J1
aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLnJlcG9z
aXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
Z3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJs
ZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwog
ICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlH
cm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzNdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCAxNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgMTcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlk
KCksIDE3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVw
b3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s3XS5pZCgpLCAxNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3Np
dG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9y
eUdyb3VwKCksIGdyb3Vwc1sxXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkpLCAxNzAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNV0uaWQoKSksIDE3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgMTcwMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCAxNzAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcxLDMyICs5NzAsMzIgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3
MTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzFdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uaWQoKSwgNzEyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJd
LnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLmlkKCksIDcxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5v
cmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlk
KCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0
R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbN10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzBdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5v
cmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpKSwgNzEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIo
KSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbM10uaWQoKSksIDcxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAz
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVd
LmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgp
KSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzZdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcw
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s3XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwMDgsMzYgKzEwMDcsMzYgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAn
cGFzc3dvcmQnLAogICAgICAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRl
cwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkLCA3MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjYW5jZWxlZCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAn
MjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0s
ICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bMV0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10u
b3JkZXIsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2Fu
Y2VsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFd
LmlkKSwgNzAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0u
cGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsK
KworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLm9y
ZGVyKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
Ml0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVz
dHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICAgICAg
fSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ1Nob3VsZCBub3QgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAxNTE5
MTBiYWViMjU1NjAyNmI5MmYwYTMxYmQxOTA1NjhiZmFiNzEzLi4yODU2OWYwNjM3MzA0ZTNhNjJj
Zjc3MDA5MjM5M2Y3ZjBlNzM2NTk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTExOSwyMiAr
MTE5LDIyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0LCBzdWJtaXR0
ZWQpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJt
aXR0ZWRbJ3JldmlzaW9uJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwobmV3IERhdGUoY29tbWl0
Wyd0aW1lJ10pLnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2UnXSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0dGVkWydhdXRob3In
XVsnbmFtZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9yRW1haWwnXSwg
c3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFsncmV2aXNpb24nXSwgc3VibWl0dGVkWydyZXZpc2lvbiddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ldyBEYXRlKGNvbW1pdFsndGltZSddKS50b0lTT1N0cmluZygp
LCBzdWJtaXR0ZWRbJ3RpbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRb
J21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ25hbWUnXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvckVtYWlsJ10sIHN1Ym1p
dHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIGlmKHN1Ym1pdHRlZFsncHJldmlv
dXNDb21taXQnXSkgewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFsncHJldmlvdXNDb21t
aXQnXSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOwogICAgICAgICB9CiAgICAgfQogCiAg
ICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vJywgKCkgPT4gewogICAgICAg
ICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8g
bWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQnKS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Niw4ICsxNDYsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE1
NSwxOCArMTU1LDE4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMn
XTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21t
aXRzWzBdLCBzdWJtaXR0ZWRDb21taXRzWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRzWzFdLCBzdWJtaXR0ZWRDb21taXRzWzFdKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRz
WzJdLCBzdWJtaXR0ZWRDb21taXRzWzJdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1syXVsncHJldmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMl1bJ3ByZXZpb3VzQ29tbWl0J10s
IGNvbW1pdHNbMV1bJ2lkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0x
NzQsMTkgKzE3NCwxOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYLycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRzJ107CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN5c3RlbVZlcnNpb25Db21taXRz
Wydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCBzdWJtaXR0ZWRDb21taXRzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzRdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbM11bJ3JldmlzaW9u
J10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzFdWydy
ZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1s1XVsncmV2
aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCBzdWJtaXR0ZWRDb21taXRzLmxl
bmd0aCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3Jl
dmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRD
b21taXRzWzRdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbM11bJ3Jldmlz
aW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21t
aXRzWzFdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1s1XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUo
Jy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb2xkZXN0JywgKCkgPT4gewogICAgICAgICBpdCgi
c2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hp
bmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0JykudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMDIsOCArMjAyLDggQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dl
YktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjE0LDggKzIxNCw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
L29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yMjcsOSArMjI3LDkgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzVdWydyZXZpc2lvbiddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cydd
WzVdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTIzNyw3ICsyMzcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXRlc3QnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9s
YXRlc3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5v
dEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI0NSw4ICsyNDUs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
bGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNTcsOCArMjU3LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwpAQCAtMjcwLDkgKzI3MCw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhdGVzdCcpOwogICAgICAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lz
dGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI4NCwxMyArMjg0LDEzIEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgZGIucXVlcnkoYERF
TEVURSBGUk9NIHRlc3RzIFdIRVJFIHRlc3RfbmFtZSA9ICdBLVRlc3QnYCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IHBsYXRmb3JtcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAg
IGNvbnN0IHRlc3RfbWV0cmljcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdF9tZXRyaWNzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0ZXN0cycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgYXNzZXJ0KHRl
c3RfbWV0cmljc1swXS5pZCAhPSB0ZXN0c1swXS5pZCk7CiAKQEAgLTMwMiw3ICszMDIsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2Fw
aS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXN0LXJlcG9ydGVkJywgKCkgPT4gewogICAgICAgICBp
dCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0
Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcp
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzE0LDggKzMxNCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCkBAIC0zMjMsOCArMzIzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0MCw4ICszNDAsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQp
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMzUz
LDkgKzM1Myw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3Rl
bVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzcyLDMxICszNzIsMzEgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjcmdG89MzcwJyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQg
PSByZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNp
b24sICdTaWVycmExNkM2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXQucmV2aXNpb24sICdTaWVycmExNkM2OCcpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzcwJnRvPTM2NycpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0yMDAmdG89Mjk5Jyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2OSZ0bz00MzInKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVz
dWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3Vs
dHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1Np
ZXJyYTE2RDMyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5y
ZXZpc2lvbiwgJ1NpZXJyYTE2RDMyJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vPGNvbW1p
dD4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8yMTA5NDknKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVw
b3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQx
Niw3ICs0MTYsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21t
aXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NTAnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAg
ICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAg
IHJldmlzaW9uOiAnMjEwOTUwJywKQEAgLTQ0Nyw4ICs0NDcsOCBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8y
MTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00NTgsOCArNDU4LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OT9wcmVmaXgtbWF0Y2g9ZmFsc2UnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29t
bWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7
CiAKQEAgLTQ2OCw4ICs0NjgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3Qg
cmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5
P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1Nh
bWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVsxXSk7CiAgICAgICAgIH0pOwogCkBAIC00NzgsNyArNDc4LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmlndW91c1JldmlzaW9uUHJl
Zml4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J0FtYmlndW91c1JldmlzaW9uUHJlZml4Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJz
aG91bGQgbm90IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gdGhlcmUgaXMg
YSBjb21taXQgcmV2aXNpb24gZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCByZXZpc2lvbiBwcmVm
aXgiLCBhc3luYyAoKSA9PiB7CkBAIC00ODYsOCArNDg2LDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNPbmVQcmVm
aXhPZlRoZU90aGVyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRb
J2NvbW1pdHMnXVswXSwgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXJbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgIH0pOwogCkBAIC00OTYsNyArNDk2LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
V2ViS2l0LzIxMDkwP3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgic2hvdWxkIG5vdCBtYXRjaCBwcmVmaXggYW5kIHJldHVybiAn
VW5rb3duQ29tbWl0JyB3aGVuIHN2biBjb21taXQgc3RhcnRzIHdpdGggJ3InIHByZWZpeCBhbmQg
dGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2giLCBhc3luYyAoKSA9PiB7CkBAIC01MDQsNyArNTA0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L3IyMTA5NT9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29t
bWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBoYW5k
bGUgY29tbWl0IHJldmlzaW9uIHdpdGggc3BhY2UiLCAoKSA9PiB7CkBAIC01MTUsMTIgKzUxNSwx
MiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PUyUyMFgvMTAuMTEuMTAlMjBTaWVycmExNkM2
NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0cy5jb21taXRzWzBdOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXQuaWQsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXQucmV2aXNpb24sICcxMC4xMS4xMCBTaWVycmExNkM2NycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXQuaWQpLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAg
U2llcnJhMTZDNjcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTM4LDEz
ICs1MzgsMTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVy
LXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdP
SycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMu
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gcmVzdWx0
cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvd25lZENvbW1pdC5y
ZXBvc2l0b3J5LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21taXQu
cmV2aXNpb24sICcyMTA5NTAnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRD
b21taXQuaWQsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChvd25lZENvbW1pdC5yZXBvc2l0b3J5KSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG93bmVkQ29tbWl0LmlkKSwgMik7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1OCw4ICs1NTgsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEz
MjMnKQogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHRzLmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTU3Myw4ICs1NzMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEzMjQnKQogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pCiAgICAgfSk7CkBAIC01ODIsNyArNTgyLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3Np
dG9yeT4vP3ByZWNlZGluZ1JldmlzaW9uPTxjb21taXQtMT4mbGFzdFJldmlzaW9uPTxjb21taXQt
Mj4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8/ZnJvbT0yMTA5MDAmdG89MjExMDAwJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9y
eU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC01OTQsNyArNTk0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5MDAmbGFzdFJldmlzaW9uPTIxMTAwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYwNyw4ICs2MDcsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OSZs
YXN0UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02
MjEsNyArNjIxLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdS
ZXZpc2lvbj0yMTA5NTAmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZENvbW1pdFJhbmdlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MzUsOCArNjM1LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIz
Jmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
Y29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2
QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21taXQpID0+IGNvbW1p
dFsncmV2aXNpb24nXSksIFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIyNjU3J10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NTAsNyArNjUwLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxh
c3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NjQsNyArNjY0LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RS
ZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzgsOCArNjc4LDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZp
c2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cydd
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTY5Myw4ICs2OTMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5n
UmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNzA4LDggKzcwOCw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RSZXZp
c2lvbj0yMTA5NTAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1
Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c0NvbW1pdDogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDkn
LApAQCAtNzQzLDggKzc0Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0y
MTA5NDcmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVsxXSk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKaW5kZXgg
YmRhMjc0ZmIxOTk2ZDQ3YTYxMjE0M2ZjZjUyMmQ2ZDk5NGM0ZWZkOC4uOGJkODEyM2YxYWJmOGE1
YzU1YTEyYzZmMWQ4N2FkMDU0ZGE5YjJmYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKQEAgLTEz
LDcgKzEzLDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAg
ICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdoZW4gZGF0YWJhc2UgaXMg
ZW1wdHkiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChtYW5pZmVzdCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgpLCBbJ2FsbCcsICdi
dWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJvYXJkcycsCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG1hbmlmZXN0KS5zb3J0
KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hib2FyZCcsICdkYXNo
Ym9hcmRzJywKICAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1pdCcsICdtYXhSb290
UmV1c2VBZ2VJbkRheXMnLCAnbWV0cmljcycsICdwbGF0Zm9ybUdyb3VwcycsICdyZXBvc2l0b3Jp
ZXMnLCAnc2l0ZVRpdGxlJywKICAgICAgICAgICAgICAgICAnc3RhdHVzJywgJ3N1bW1hcnlQYWdl
cycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0cmlnZ2VyYWJsZXMnXSk7
CiAKQEAgLTQ1LDIyICs0NSwyMiBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190
cmFja2VycycsIGJ1Z3ppbGxhRGF0YSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczov
L3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdo
dHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgICAgIGxldCBtYW5pZmVzdCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRl
bnQpOwogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRy
YWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQu
b3JnLycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAn
QnVnemlsbGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1Vy
bCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3Jn
LycpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgY2xlYXIgQnVnIGFu
ZCBCdWdUcmFja2VyIHN0YXRpYyBtYXBzIHdoZW4gcmVzZXQiLCBhc3luYyAoKSA9PiB7CiAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190cmFja2VycycsIGJ1
Z3ppbGxhRGF0YSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDog
J2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJs
OiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CkBAIC05MiwyOCArOTIs
MjggQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdX
ZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24o
MTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53
ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBsZXQgbWFjb3MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY29zKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCBpb3MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChpb3MpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CiAKICAgICAgICAgICAgIGxldCB0cmFj
a2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydCh0cmFja2Vy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8v
d2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmV3
QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93
ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tl
ci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CiAKICAgICAgICAgICAgIHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDIpOwogICAgICAg
ICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIu
bmFtZSgpLCAnUmFkYXInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lKHRyYWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnUmFkYXInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKHRy
YWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTMxLDE5ICsxMzEsMTkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KDExKTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5vd25lZFJlcG9zaXRvcmllcygpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayghd2Via2l0Lm93bmVkUmVwb3NpdG9yaWVzKCkpOwogCiAgICAgICAgICAgICBsZXQg
b3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKICAgICAgICAgICAgIGFzc2VydChvc3gpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdPUyBYJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9yeS5m
aW5kQnlJZCgzNSldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgp
LCAnT1MgWCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvc3gub3duZWRS
ZXBvc2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUpXSk7CiAKICAgICAgICAgICAg
IGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChp
b3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpb3Mub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFpb3Mub3duZWRSZXBvc2l0b3JpZXMoKSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAgICAgICB9
KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQuYnVpbGRlcnMsIHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dC5idWlsZGVycywgewogICAgICAgICAgICAgICAgICcxJzoge25hbWU6ICdTb21lQnVpbGRlcics
IGJ1aWxkVXJsOiAnaHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzLyRidWlsZGVyTmFt
ZS9idWlsZC8kYnVpbGRUYWcnfSwKICAgICAgICAgICAgICAgICAnMic6IHtuYW1lOiAnU29tZU90
aGVyQnVpbGRlcicsIGJ1aWxkVXJsOiBudWxsfQogICAgICAgICAgICAgfSk7CkBAIC0xNjUsMTMg
KzE2NSwxMyBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAg
ICAgICAgICAgbGV0IGJ1aWxkZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDEpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIubmFtZSgp
LCAnU29tZUJ1aWxkZXInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLnVybEZv
ckJ1aWxkKDEyMyksICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxk
ZXIvYnVpbGQvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci5u
YW1lKCksICdTb21lQnVpbGRlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9Tb21lQnVpbGRlci9idWlsZC8xMjMnKTsKIAogICAgICAgICAgICAgYnVpbGRlciA9IEJ1aWxk
ZXIuZmluZEJ5SWQoMik7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVPdGhlckJ1
aWxkZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1
aWxkKDEyMyksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjAyLDE0ICsyMDIs
MTQgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdHMsIHsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0cywgewogICAgICAgICAgICAg
ICAgICIxIjogeyJuYW1lIjogIlNvbWVUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVybCI6IG51
bGx9LAogICAgICAgICAgICAgICAgICIyIjogeyJuYW1lIjogIlNvbWVPdGhlclRlc3QiLCAicGFy
ZW50SWQiOiBudWxsLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjMiOiB7Im5hbWUi
OiAiQ2hpbGRUZXN0IiwgInBhcmVudElkIjogIjEiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAg
ICAgICAgIjQiOiB7Im5hbWUiOiAiR3JhbmRDaGlsZCIsICJwYXJlbnRJZCI6ICIzIiwgInVybCI6
IG51bGx9LAogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5tZXRyaWNzLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnQubWV0cmljcywgewogICAgICAgICAgICAgICAgICc1Jzoge25hbWU6ICdUaW1lJywgdGVz
dDogJzEnLCBhZ2dyZWdhdG9yOiBudWxsfSwKICAgICAgICAgICAgICAgICAnNic6IHtuYW1lOiAn
VGltZScsIHRlc3Q6ICcyJywgYWdncmVnYXRvcjogJ1RvdGFsJ30sCiAgICAgICAgICAgICAgICAg
JzcnOiB7bmFtZTogJ01hbGxvYycsIHRlc3Q6ICcyJywgYWdncmVnYXRvcjogJ1RvdGFsJ30sCkBA
IC0yNDQsNyArMjQ0LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQoaW9zR3JvdXApOwogICAgICAgICAgICAgYXNzZXJ0KG1hY0dy
b3VwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVu
ayBNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYXZlcmlja3Mu
bmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tz
Lmhhc1Rlc3Qoc29tZVRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVz
dChzb21lT3RoZXJUZXN0KSk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qo
Y2hpbGRUZXN0KSk7CkBAIC0yNTMsOSArMjUzLDkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhz
b21lT3RoZXJUZXN0VGltZSkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRy
aWMoc29tZU90aGVyVGVzdE1hbGxvYykpOwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5o
YXNNZXRyaWMoY2hpbGRUZXN0TWV0cmljKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2
ZXJpY2tzLmdyb3VwKCksIG1hY0dyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW9zOWlwaG9uZTVzLm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhvbmUgNXMn
KTsKICAgICAgICAgICAgIGFzc2VydChpb3M5aXBob25lNXMuaGFzVGVzdChzb21lVGVzdCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzVGVzdChzb21lT3RoZXJUZXN0KSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpA
QCAtMjY0LDYzICsyNjQsNjMgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVy
VGVzdFRpbWUpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhz
b21lT3RoZXJUZXN0TWFsbG9jKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5o
YXNNZXRyaWMoY2hpbGRUZXN0TWV0cmljKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9z
OWlwaG9uZTVzLmdyb3VwKCksIGlvc0dyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpb3M5aXBob25lNXMuZ3JvdXAoKSwgaW9zR3JvdXApOwogCiAgICAgICAgICAgICBjb25z
dCBtYWNQbGF0Zm9ybXMgPSBtYWNHcm91cC5wbGF0Zm9ybXMoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNQbGF0Zm9ybXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChtYWNQbGF0Zm9ybXNbMF0sIG1hdmVyaWNrcyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWFjUGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWFjUGxhdGZvcm1zWzBdLCBtYXZlcmlja3MpOwogCiAgICAgICAgICAgICBjb25zdCBp
b3NQbGF0Zm9ybXMgPSBpb3NHcm91cC5wbGF0Zm9ybXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpb3NQbGF0Zm9ybXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
b3NQbGF0Zm9ybXNbMF0sIGlvczlpcGhvbmU1cyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW9zUGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBpb3M5aXBob25lNXMpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzb21lVGVzdC5wYXJlbnRUZXN0KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzb21lVGVzdC5wYXRoKCksIFtzb21lVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQub2soIXNvbWVUZXN0LnBhcmVudFRlc3QoKSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0LnBhdGgoKSwgW3NvbWVUZXN0XSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIXNvbWVUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVU
ZXN0TWV0cmljXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5u
YW1lKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMu
YWdncmVnYXRvck5hbWUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRl
c3RNZXRyaWMubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZVRlc3RNZXRyaWMuY2hpbGRNZXRyaWNzKCksIGNoaWxkVGVzdC5tZXRyaWNzKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmZ1bGxOYW1lKCksICdTb21lVGVz
dCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubmFt
ZSgpLCAnU29tZU90aGVyVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhl
clRlc3QucGFyZW50VGVzdCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZU90aGVyVGVzdC5wYXRoKCksIFtzb21lT3RoZXJUZXN0XSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtz
b21lVGVzdE1ldHJpY10pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRl
c3RNZXRyaWMubmFtZSgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JOYW1lKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmNoaWxkTWV0cmljcygp
LCBjaGlsZFRlc3QubWV0cmljcygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lVGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRl
c3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhcmVu
dFRlc3QoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVP
dGhlclRlc3QucGF0aCgpLCBbc29tZU90aGVyVGVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0KCFz
b21lT3RoZXJUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLm5hbWUoKSwg
J1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3Mo
KVswXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZSA6IFRvdGFsJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uY2hpbGRN
ZXRyaWNzKCkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJU
ZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3Rh
bCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFd
Lm5hbWUoKSwgJ01hbGxvYycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRl
c3QubWV0cmljcygpWzFdLmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxsb2Mg
OiBUb3RhbCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmlj
cygpWzFdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3Qg
OiBNYWxsb2MgOiBUb3RhbCcpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0
Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVz
dC5wYXJlbnRUZXN0KCksIHNvbWVUZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKS5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0
cmljcygpWzBdLm5hbWUoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsw
XS5sYWJlbCgpLCAnVGltZSA6IFRvdGFsJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uY2hpbGRNZXRyaWNzKCkubGVuZ3RoLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsw
XS5mdWxsTmFtZSgpLCAnU29tZU90aGVyVGVzdCA6IFRpbWUgOiBUb3RhbCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLm5hbWUoKSwg
J01hbGxvYycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3Qu
bWV0cmljcygpWzFdLmFnZ3JlZ2F0b3JOYW1lKCksICdUb3RhbCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmxhYmVsKCksICdNYWxs
b2MgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRl
c3QubWV0cmljcygpWzFdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMV0uZnVsbE5hbWUoKSwg
J1NvbWVPdGhlclRlc3QgOiBNYWxsb2MgOiBUb3RhbCcpOworCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVzdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXJlbnRUZXN0KCksIHNvbWVUZXN0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVU
ZXN0LCBjaGlsZFRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghY2hpbGRUZXN0Lm9ubHlDb250
YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY2hpbGRU
ZXN0LmNoaWxkVGVzdHMoKSwgW2dyYW5kQ2hpbGRUZXN0XSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21l
VGVzdCBcdTIyMEIgQ2hpbGRUZXN0IDogVGltZScpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JhbmRDaGlsZFRlc3QubmFtZSgpLCAnR3JhbmRDaGlsZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3Qs
IGNoaWxkVGVzdCwgZ3JhbmRDaGlsZFRlc3RdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY2hpbGRUZXN0LmNoaWxkVGVzdHMoKSwgW2dyYW5kQ2hpbGRUZXN0XSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKClbMF0u
bGFiZWwoKSwgJ1RpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRl
c3QubWV0cmljcygpWzBdLmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IDog
VGltZScpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3Qu
bmFtZSgpLCAnR3JhbmRDaGlsZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
YW5kQ2hpbGRUZXN0LnBhcmVudFRlc3QoKSwgY2hpbGRUZXN0KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QucGF0aCgpLCBbc29tZVRlc3QsIGNoaWxk
VGVzdCwgZ3JhbmRDaGlsZFRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydChncmFuZENoaWxkVGVz
dC5vbmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVzdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5m
dWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6
IFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRl
c3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jh
bmRDaGlsZFRlc3QubWV0cmljcygpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JhbmRDaGlsZFRlc3QubWV0cmljcygpWzBd
LmZ1bGxOYW1lKCksICdTb21lVGVzdCBcdTIyMEIgQ2hpbGRUZXN0IFx1MjIwQiBHcmFuZENoaWxk
IDogVGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzc0LDU5ICszNzQsNTkgQEAg
ZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1
cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9y
Zy8xMjMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAn
V2ViS2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJl
dmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3NXZWJraXQxID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zV2Via2l0MS5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc1dlYmtpdDEub3duZXJJZCgpLCA5KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc1dlYmtpdDEudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJr
aXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS5u
YW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChvc1dlYmtpdDEub3duZXJJZCgpKSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3NXZWJraXQxLnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9y
Zy8xMjMnKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKIAog
ICAgICAgICAgICAgY29uc3Qgc2hhcmVkID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxNik7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2hhcmVkLm5hbWUoKSwgJ1NoYXJlZCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKIAogICAgICAg
ICAgICAgY29uc3Qgc29tZVRlc3QgPSBUZXN0LmZpbmRCeUlkKDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKIAogICAgICAgICAg
ICAgY29uc3Qgc29tZU90aGVyVGVzdCA9IFRlc3QuZmluZEJ5SWQoMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3RoZXJUZXN0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5uYW1lKCksICdTb21lT3Ro
ZXJUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGNoaWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQo
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY2hpbGRUZXN0Lm5hbWUoKSwgJ0NoaWxkVGVz
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdD
aGlsZFRlc3QnKTsKIAogICAgICAgICAgICAgY29uc3QgaW9zOWlwaG9uZTVzID0gUGxhdGZvcm0u
ZmluZEJ5SWQoMjMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5uYW1l
KCksICdpT1MgOSBpUGhvbmUgNXMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChp
b3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAKICAgICAgICAgICAgIGNv
bnN0IG1hdmVyaWNrcyA9IFBsYXRmb3JtLmZpbmRCeUlkKDQ2KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYXZlcmlja3MubmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwobWF2ZXJpY2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycp
OwogCiAgICAgICAgICAgICBjb25zdCBzaWVycmEgPSBQbGF0Zm9ybS5maW5kQnlJZCgxMDQpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNpZXJyYS5uYW1lKCksICdUcnVuayBTaWVycmEgTWFj
Qm9va1BybzExLDInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzaWVycmEubmFt
ZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwyJyk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMyk7CiAKICAgICAgICAgICAg
IGNvbnN0IG1hY29zVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJh
dGlvbihzb21lVGVzdCwgbWF2ZXJpY2tzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNv
c1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChtYWNvc1RyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5v
cmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RD
b25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1
cmF0aW9uKGNoaWxkVGVzdCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRp
b24oc29tZU90aGVyVGVzdCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRp
b24oY2hpbGRUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKIAogICAgICAgICAg
ICAgY29uc3QgaW9zVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJh
dGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpOwotICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9yZycp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNv
c1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpb3NUcmlnZ2Vy
YWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9yZycpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVz
dCwgaW9zOWlwaG9uZTVzKSwgaW9zVHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgaW9zOWlw
aG9uZTVzKSwgaW9zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlp
cGhvbmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhv
bmU1cyksIGlvc1RyaWdnZXJhYmxlKTsKIAogICAgICAgICAgICAgY29uc3QgbWFjVHJpZ2dlcmFi
bGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lVGVzdCwgc2llcnJh
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1lKCksICdtYWMt
YnVpbGQud2Via2l0Lm9yZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1hY1Ry
aWdnZXJhYmxlLm5hbWUoKSwgJ21hYy1idWlsZC53ZWJraXQub3JnJyk7CiAgICAgICAgICAgICBh
c3NlcnQobWFjVHJpZ2dlcmFibGUuYWNjZXB0ZWRUZXN0cygpLmhhcyhzb21lVGVzdCkpOwogCiAg
ICAgICAgICAgICBjb25zdCBncm91cHMgPSBtYWNUcmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBz
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKICAgICAg
ICAgICAgIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoZ3JvdXBzKTsKIAog
ICAgICAgICAgICAgY29uc3QgZW1wdHlDdXN0b21TZXQgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwpA
QCAtNDQ1LDM1ICs0NDUsMzUgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQuc2V0UmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYyMicpOwogICAgICAgICAgICAgY3Vzb21TZXRXaXRo
V2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQsICc4NjQ1Nicp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtcm9vdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uaXNIaWRkZW4o
KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3Vz
dG9tUm9vdHMoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZShncm91cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXN0b21T
ZXRXaXRoT1NYKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFj
Y2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNv
bVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cHNbMV0uaXNIaWRkZW4oKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRv
cmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMV0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFu
ZFdlYktpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2Nl
cHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7
Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFu
ZC1zaGFyZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uaXNIaWRkZW4o
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0
b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZShncm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3Rv
bVNldCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0
cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRB
bmRTaGFyZWQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNj
ZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uaXNIaWRkZW4oKSwgZmFsc2UpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZShncm91cHNbMF0ucmVwb3NpdG9yaWVzKCkpLCBbbWFjb3NdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0
cyhjdXN0b21TZXRXaXRoT1NYKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0KSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0
V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFu
ZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uaXNI
aWRkZW4oKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sx
XS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygp
KSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMV0uYWNjZXB0cyhlbXB0eUN1c3RvbVNldCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29t
U2V0V2l0aE9TWEFuZFdlYktpdCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJlZCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNv
bVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMl0ubmFtZSgpLCAnd2Via2l0LWFuZC1zaGFyZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZShncm91cHNbMl0ucmVwb3NpdG9yaWVzKCkpLCBbc2hhcmVkLCB3ZWJraXRdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhlbXB0eUN1c3RvbVNl
dCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNj
ZXB0cyhjdXN0b21TZXRXaXRoT1NYKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNv
bVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cHNbMl0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMK
aW5kZXggMzUyYjYxMmY3Njc2MTg1NWU3OGY1MzZiYjNhMTMwODk1NWFjYjFmNC4uMjZhZjNkMzAx
YzVkYTMzNDY2MjE5NDg3YjAzNDc3Y2EyMjRkY2NjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50
LXNldC10ZXN0cy5qcwpAQCAtMjQzLDEyICsyNDMsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3Vy
ZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJl
cG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBv
cnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAg
ICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1l
Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP21ldHJp
Yz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNS
ZXF1ZXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU2
LDEyICsyNTYsMTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRU
aW1lWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0
Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3Jt
SWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1Jl
cXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI2OSwxMiArMjY5LDEyIEBAIGRl
c2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01v
dW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVh
c3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWEmbWV0cmljPSR7cmVz
dWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRQbGF0Zm9ybScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjgyLDEyICsyODIs
MTIgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1l
dHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihg
L2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJp
Yz0ke3Jlc3VsdC5tZXRyaWNJZH1iYCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZE1l
dHJpYycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0ludmFsaWRNZXRyaWMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxNyw3ICsz
MTcsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1
cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPTQ2Jm1ldHJpYz01YCkudGhlbigocmVz
cG9uc2UpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwogICAgICAgICAgICAg
fSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyNiwzMSArMzI2LDMxIEBAIGRl
c2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01v
dW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVz
KGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0
cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewogICAgICAgICAgICAgY29uc3QgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVp
bGRUaW1lWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE9iamVjdC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5zb3J0KCksCiAgICAgICAgICAgICAgICAg
WydjbHVzdGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywKICAgICAgICAg
ICAgICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFwc2VkVGltZScsICdlbmRUaW1lJywgJ2Zv
cm1hdE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRUaW1lJywgJ3N0YXR1cyddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBbCiAg
ICAgICAgICAgICAgICAgJ2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3Nx
dWFyZVN1bScsICdtYXJrZWRPdXRsaWVyJywKICAgICAgICAgICAgICAgICAncmV2aXNpb25zJywg
J2NvbW1pdFRpbWUnLCAnYnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkVGFnJywgJ2J1aWxkZXIn
XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJl
cG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1l
KTsKICAgICAgICAgICAgIGFzc2VydCh0eXBlb2YocmVzcG9uc2VbJ2xhc3RNb2RpZmllZCddKSA9
PSAnbnVtYmVyJywgJ2xhc3RNb2RpZmllZCB0aW1lIHNob3VsZCBiZSBhIG51bWVyaWMnKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhyZXNwb25zZVsnY29uZmln
dXJhdGlvbnMnXSksIFsnY3VycmVudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQn
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3Vy
YXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxl
bmd0aCwgcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwg
eworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3NbMF0ubGVuZ3RoLCBy
ZXNwb25zZVsnZm9ybWF0TWFwJ10ubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7
CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3Vu
dDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAtMzY3LDcgKzM2Nyw3IEBAIGRlc2Ny
aWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50
YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwpAQCAtMzgzLDIwICszODMs
MjAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgY29uc3QgYnVpbGRlcnMgPSByZXN1bHRbMl07CiAgICAgICAgICAgICBjb25zdCBy
ZXNwb25zZSA9IHJlc3VsdFszXTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1bnMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZGVycy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRJ
ZCA9IHJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBidWlsZElkID0gYnVpbGRzWzBd
WydpZCddOwogICAgICAgICAgICAgY29uc3QgYnVpbGRlcklkID0gYnVpbGRlcnNbMF1bJ2lkJ107
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsn
Y3VycmVudCddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgbWVhc3VyZW1lbnQgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVu
dCddWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydm
b3JtYXRNYXAnXS5pbmRleE9mKCdpZCcpXSwgbWVhc3VyZW1lbnRJZCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1
aWxkJyldLCBidWlsZElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFty
ZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0
TWFwJ10uaW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdi
dWlsZCcpXSwgYnVpbGRJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobWVhc3Vy
ZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJ
ZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00MjgsOCArNDI4LDggQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3Qg
cmV2aXNpb25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9u
cyddWydXZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9u
QnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSdd
KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCdd
LCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjdXJy
ZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKICAgICAgICAg
ICAgICAgIG1lYW46IDEzLAogICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAg
ICAgICAgICAgICBzdW06IDY1LApAQCAtNDM5LDcgKzQzOSw3IEBAIGRlc2NyaWJlKCIvYXBpL21l
YXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6
IHJldmlzaW9uVGltZSwKICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogcmV2aXNpb25CdWlsZFRp
bWUsCiAgICAgICAgICAgICAgICBidWlsZFRhZzogJzEyNCcgfSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFd
KSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2Vb
J2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAgICAgICAgICAgICAgICBtZWFuOiAz
LAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgIHN1
bTogMTUsCkBAIC00NjYsMTYgKzQ2NiwxNiBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1z
ZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVtb3Rl
LmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1
bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOwogCiAgICAgICAgIGNv
bnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3Nb
MF0pLmJ1aWxkVGFnLCAxMjcpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNw
b25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgMTI4KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVu
dFJvd3NbMF0pLmJ1aWxkVGFnLCAnMTI3Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmJ1aWxkVGFn
LCAnMTI4Jyk7CiAgICAgICAgIGFzc2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBj
dXJyZW50Um93c1swXSkuY29tbWl0VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAgICAgICAg
IGFzc2VydChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSkuY29t
bWl0VGltZSA8IHJlc3BvbnNlLnN0YXJ0VGltZSk7CiAKICAgICAgICAgY29uc3QgYmFzZWxpbmVS
b3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107Ci0gICAgICAgIGFz
c2VydC5lcXVhbChiYXNlbGluZVJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3NbMF0pLmJ1aWxk
VGFnLCAxMzEpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9y
bWF0TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsIDEyOSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChiYXNlbGluZVJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNlbGluZVJvd3Nb
MF0pLmJ1aWxkVGFnLCAnMTMxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9y
bWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzFdKS5idWlsZFRhZywgJzEy
OScpOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGJ1aWxkIHRp
bWUgd2hlbiBjb21taXQgdGltZXMgYXJlIG1pc3NpbmciLCAoKSA9PiB7CkBAIC01MjIsOCArNTIy
LDggQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRy
aWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGN1cnJlbnRSb3dzID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2Jhc2VsaW5lJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3Vy
cmVudFJvd3NbMF0pLCB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJv
d3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAg
ICBtZWFuOiAzLAogICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAgICAg
ICAgICBzdW06IDE1LApAQCAtNTMzLDcgKzUzMyw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVt
ZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6ICtEYXRl
LlVUQygyMDE3LCAwLCAxOSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGltZTog
K0RhdGUuVVRDKDIwMTcsIDAsIDE5LCAxNSwgMjgsIDEpLAogICAgICAgICAgICAgICAgYnVpbGRU
YWc6ICcxMDAxJyB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3Bv
bnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLCB7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dz
WzFdKSwgewogICAgICAgICAgICAgICAgIG1lYW46IDcsCiAgICAgICAgICAgICAgICAgaXRlcmF0
aW9uQ291bnQ6IDUsCiAgICAgICAgICAgICAgICAgc3VtOiAzNSwKQEAgLTU2Miw5ICs1NjIsOSBA
QCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09O
V2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRm
b3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQn
XSwgMiwgJ3Nob3VsZCBoYXZlIHR3byBjbHVzdGVycycpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2
ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVp
bGRUYWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLAogICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRo
QW5jaWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoTmV3UmV2aXNpb25bMF1b
J2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC01ODAsMTAgKzU4MCwxMCBA
QCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09O
V2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRm
b3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNv
dW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0
d28gY2x1c3RlcnMnKTsKICAgICAgICAgICAgIGxldCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydj
b25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3Vy
cmVudFJvd3MubGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQn
KSwgW3JlcG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhC
dWlsZFRpbWVbMF1bJ2J1aWxkVGFnJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjdXJyZW50Um93cy5sZW5ndGgsIDIsICdzaG91bGQgY29udGFpbiB0d28gZGF0YSBwb2ludHMn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRUYWdzKHJlc3BvbnNl
LCAnY3VycmVudCcpLCBbcmVwb3J0V2l0aEFuY2llbnRSZXZpc2lvblswXVsnYnVpbGRUYWcnXSwg
cmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUYWcnXV0pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtNjAzLDE0ICs2MDMsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0
YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9
Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigobmV3UmVzdWx0
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAke2Nh
Y2hlUHJlZml4fS5qc29uYCkudGhlbigoY2FjaGVkUmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVBy
ZWZpeH0tJHtjYWNoZWRSZXN1bHRbJ3N0YXJ0VGltZSddfS5qc29uYCk7CiAgICAgICAgICAgICB9
KS50aGVuKChvbGRSZXN1bHQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBvbGRidWlsZFRh
Z3MgPSBidWlsZFRhZ3Mob2xkUmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGNv
bnN0IG5ld2J1aWxkVGFncyA9IGJ1aWxkVGFncyhuZXdSZXN1bHQsICdjdXJyZW50Jyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0KG9sZGJ1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1
c3RlciBzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQobmV3YnVpbGRUYWdzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVy
IHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5n
dGggLSAyKSwgbmV3YnVpbGRUYWdzLnNsaWNlKDAsIDIpLAorICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwob2xkYnVpbGRUYWdzLnNsaWNlKG9sZGJ1aWxkVGFncy5sZW5ndGgg
LSAyKSwgbmV3YnVpbGRUYWdzLnNsaWNlKDAsIDIpLAogICAgICAgICAgICAgICAgICAgICAnVHdv
IGNvbnNlcWN1dGl2ZSBjbHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRzJyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC02MjksOSArNjI5LDkgQEAgZGVzY3JpYmUo
Ii9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNv
bnN0IG1hbmlmZXN0ID0gTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CiAKICAg
ICAgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ01vdW50
YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTWV0cmljLmFsbCgpLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1ldHJpYy5hbGwo
KS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IG1ldHJpYyA9IE1ldHJpYy5hbGwo
KVswXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm0ubGFzdE1vZGlmaWVk
KG1ldHJpYyksIHByaW1hcnlDbHVzdGVyWydsYXN0TW9kaWZpZWQnXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmlt
YXJ5Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtNjczLDEwICs2NzMsMTAgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgIGl0KCJzaG91bGQgYWxsb3cgdG8gcmVwb3J0IGEg
YnVpbGQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRk
TW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0g
YXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2Uo
cmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNU
YXNrPTUwMCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtb
MSwgNCwgMywgMTIsIDUwLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNl
WydtZWFzdXJlbWVudHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgICAgICBb
JzEnLCAnOScsICcxMC44LjIgMTJDNjAnLCBudWxsLCAwXSwgWycyJywgJzExJywgJzE0MTk3Nycs
IG51bGwsIDEzNjAxNDA5MjA5MDBdXSwKICAgICAgICAgICAgIDEsIDEzNjIwNDYzMjMzODgsICcx
MjMnLCAxLCAxLCAnY3VycmVudCddXSk7CiAgICAgfSk7CkBAIC03MTEsMTcgKzcxMSwxNyBAQCBk
ZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNv
bnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CiAgICAgICAgIGF3YWl0IE1vY2tE
YXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNw
b25zZSA9IGF3YWl0IHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJl
c3BvbnNlKHJlcG9ydFdpdGhDb21taXRzTmVlZHNSb3VuZENvbW1pdFRpbWVBbmRCdWlsZFJlcXVl
c3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKICAg
ICAgICAgY29uc3QgcmF3V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3Rh
dHVzKGAvYXBpL2NvbW1pdHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1l
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRzWzBd
LnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3TWFj
T1NDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0cy9t
YWNPUy8xMC44LjIlMjAxMkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1NDb21t
aXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVk
TWFjT1NDb21taXRUaW1lKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9hbmFs
eXNpc1Rhc2s9NTAwJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydtZWFzdXJlbWVudHMn
XSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
cG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1MCwgWwogICAgICAgICAgICAg
WycxJywgJzknLCAnMTAuOC4yIDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVd
LCBbJzInLCAnMTEnLCAnMTQxOTc3JywgbnVsbCwgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lXV0s
CiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1cnJlbnQnXV0p
OwogICAgIH0pOwpAQCAtNzU3LDE0ICs3NTcsMTQgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1l
bnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lXSk7CiAK
ICAgICAgICAgY29uc3QgcmF3V2ViS2l0Q29tbWl0ID0gYXdhaXQgcmVtb3RlLmdldEpTT05XaXRo
U3RhdHVzKGAvYXBpL2NvbW1pdHMvV2ViS2l0LzE0MTk3N2ApOwotICAgICAgICBhc3NlcnQuZXF1
YWwocmF3V2ViS2l0Q29tbWl0LmNvbW1pdHNbMF0udGltZSwgZXhwZWN0ZWRXZWJLaXRDb21taXRU
aW1lKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJhd1dlYktpdENvbW1pdC5jb21taXRz
WzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CiAKICAgICAgICAgY29uc3QgcmF3
TWFjT1NDb21taXQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvY29tbWl0
cy9tYWNPUy8xMC44LjIlMjAxMkM2MGApOwotICAgICAgICBhc3NlcnQuZXF1YWwocmF3TWFjT1ND
b21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGltZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyYXdNYWNPU0NvbW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVj
dGVkTWFjT1NDb21taXRUaW1lKTsKIAogICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVy
eVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ0ZyYW1lUmF0ZScpOwogICAgICAg
ICBjb25zdCBwcmltYXJ5Q2x1c3RlciA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhg
L2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJp
Yz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChwcmltYXJ5
Q2x1c3Rlci5jb25maWd1cmF0aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2Us
IFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwcmltYXJ5Q2x1c3Rlci5jb25maWd1
cmF0aW9ucy5jdXJyZW50LCBbWzEsIDQsIDMsIDEyLCA1MCwgZmFsc2UsIFsKICAgICAgICAgICAg
IFsxLCAxLCAnMTAuOC4yIDEyQzYwJywgbnVsbCwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWVdLCBb
MiwgMiwgJzE0MTk3NycsIG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAg
ICAgICAgZXhwZWN0ZWRXZWJLaXRDb21taXRUaW1lLCAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywg
MV1dKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMzI0
NzMzOTYxODhmNjhjNzM5ZDc0OGFiZjhhODZmZWQ0YTQwZmZlMS4uYjRlZTcyNmYzNTUzMDJhYjE4
ZDZjNzM2Y2JiNDBjMzBjNGIxODU5YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMu
anMKQEAgLTc4LDE2ICs3OCwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVy
cm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5v
IHNsYXZlcyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQpLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
U2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJv
d3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtOTUsNyArOTUsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNs
YXZlRm9yUmVwb3J0KGVtcHR5UmVwb3J0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IGVtcHR5UmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J3JlcG9zaXRvcmllcycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF1bJ25hbWUnXSwgc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdWydyZXBvc2l0b3J5
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdWyduYW1lJ10sIHN1YnZlcnNpb25D
b21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTExNSw3ICsxMTUsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBp
bnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3Vi
dmVyc2lvbkNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1p
dHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKQEAgLTEyMywxNCArMTIz
LDE0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAg
ICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBd
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9u
J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmlu
ZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFb
J21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0
dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVk
RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcg
RGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21l
c3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29t
bWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFt
ZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2Nv
dW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMzgsMTAgKzEzOCwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29t
bWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3VidmVyc2lvbkludmFsaWRDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbicpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKICAgICAgICAgfSkudGhl
bigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xNDksMzIgKzE0OSwzMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBv
cnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0
dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Ud29Db21taXRzKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21t
aXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5s
ZW5ndGgsIDIpOwogCiAgICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3
b0NvbW1pdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBd
WydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0w
Mi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1b
J2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3ByZXZpb3VzX2Nv
bW1pdCddLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydu
YW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvcidd
WydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1b
J3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcy
MDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1swXVsncHJldmlvdXNfY29tbWl0J10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3In
XVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBd
WydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAKICAgICAg
ICAgICAgIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMV07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWRE
YXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWyd0
aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3Ry
aW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwg
cmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzFdWydwcmV2aW91c19jb21taXQnXSwgY29tbWl0c1swXVsnaWQn
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHRlcnNbMV1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbidd
LCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMV1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAw
OTo1NDo1Ni4wJykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1sxXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMV1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1b
J3ByZXZpb3VzX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzFdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9y
J11bJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1sx
XVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTgyLDEwICsxODIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25JbnZhbGlkUHJldmlvdXND
b21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFByZXZpb3VzQ29tbWl0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
RmFpbGVkVG9GaW5kUHJldmlvdXNDb21taXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjAwLDE4ICsyMDAsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjb21taXRz
ID0gcmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IHJlc3VsdFsxXTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMF1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1b
J25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9y
J11bJ2FjY291bnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNz
YWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNj
b3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIyOCwyMyArMjI4LDIzIEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgn
Y29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRl
cnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2lkJ10sIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgZmlyc3REYXRhWydtZXNzYWdl
J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBj
b21taXR0ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJz
WzBdWyduYW1lJ10sIGZpcnN0RGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCBmaXJzdERhdGFbJ2F1dGhvcidd
WydhY2NvdW50J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnaWQn
XSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0
RGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRz
WzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFbJ2F1dGhvcidd
WyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1b
J2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjU5LDEyICsyNTksMTIgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgnY29tbWl0dGVycycpOwogICAgICAgICB9KS50aGVuKChjb21taXR0ZXJzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgYXV0aG9yWyduYW1lJ10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgYXV0
aG9yWydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRl
cnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJz
WzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMiwxNSArMzAyLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc2FtZVJlcG9zaXRvcnlOYW1lSW5Pd25lZENvbW1pdEFu
ZE1ham9yQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHNhbWVSZXBvc2l0
b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1pdCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxl
Y3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnV2ViS2l0J30pOwogICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsK
ICAgICAgICAgICAgIGxldCBvc1dlYktpdCA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCB3
ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KG9zV2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBvc2l0b3J5Lm5hbWUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zV2ViS2l0LmlkLCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYktpdC5uYW1lLCB3ZWJraXRSZXBv
c2l0b3J5Lm5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9z
aXRvcnkub3duZXIsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQzLDcgKzM0
Myw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVy
c2lvbkNvbW1pdFdpdGhPd25lZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0
Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAg
ICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0
J30pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2Un
OiAnSmF2YVNjcmlwdENvcmUgY29tbWl0J30pLApAQCAtMzUxLDU0ICszNTEsNTQgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzog
IldlYktpdCJ9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMn
LCB7J25hbWUnOiAnSmF2YVNjcmlwdENvcmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCA2KTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0ID0gcmVzdWx0WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENv
bW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4Q29tbWl0
LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29tbWl0
ID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdCwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoanNjQ29tbWl0LCBudWxs
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3Qgb3N4UmVwb3NpdG9yeSA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5u
b3RTdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3Np
dG9yeSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh3ZWJraXRS
ZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs1
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs1XS5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjUmVwb3NpdG9yeSA9IHJlc3VsdFs1XVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5LCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0
b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQucmVwb3NpdG9y
eSwgd2Via2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjQ29t
bWl0LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXBvc2l0b3J5LCBvc3hSZXBv
c2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXQu
cmVwb3NpdG9yeSwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoanNjQ29tbWl0LnJlcG9zaXRvcnksIGpzY1JlcG9zaXRvcnkuaWQpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeFJlcG9zaXRvcnkub3duZXIsIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJl
cG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRv
cnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENv
bW1pdC5pZCwgJ293bmVkJzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSks
CiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293
bmVyJzogb3N4Q29tbWl0LmlkLCAnb3duZWQnOiBqc2NDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdv
d25lcid9KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBv
c2l0b3J5Jzogd2Via2l0UmVwb3NpdG9yeS5pZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBv
d25lckNvbW1pdEZvcldlYktpdENvbW1pdCA9IHJlc3VsdFswXVswXTsKLSAgICAgICAgICAgIGFz
c2VydC5ub3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdCwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51
bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdCA9ICByZXN1bHRbMV1bMF07Ci0g
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQsIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29t
bWl0LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEp
OwogICAgICAgICB9KTsKICAgICB9KQogCkBAIC00NDgsNyArNDQ4LDcgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChtdWx0aXBsZVN5c3RlbVZlcnNpb25Db21taXRz
V2l0aE93bmVkQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBtdWx0aXBs
ZVN5c3RlbVZlcnNpb25Db21taXRzV2l0aE93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RS
b3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkQzMid9KSwKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkM2Nyd9
KSwKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzog
J1dlYktpdCBDb21taXQnfSksCkBAIC00NTgsNDkgKzQ1OCw0OSBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAiV2ViS2l0In0p
LAogICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6
ICdKYXZhU2NyaXB0Q29yZSd9KV0pCiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5sZW5ndGgsIDgpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WzBdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQwID0g
cmVzdWx0WzBdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9zeENvbW1pdDAsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdDAsIG51bGwp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBvc3hDb21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG9zeENvbW1pdDEsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmlj
dEVxdWFsKG9zeENvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WzJdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WzJdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRDb21taXQgPSByZXN1bHRb
Ml1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh3ZWJraXRDb21taXQsIG51bGwpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBqc2NDb21taXQwID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKGpzY0NvbW1pdDAsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKGpzY0NvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WzRdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NDb21taXQxID0gcmVzdWx0WzRdWzBd
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzVdLmxlbmd0aCwgMSkKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKQogICAgICAgICAgICAgY29uc3Qgb3N4
UmVwb3NpdG9yeSA9IHJlc3VsdFs1XVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
c3hSZXBvc2l0b3J5LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0
b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hS
ZXBvc2l0b3J5LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hSZXBv
c2l0b3J5Lm93bmVyLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs2
XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzZdLmxl
bmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRbNl1b
MF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4
UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVw
b3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbN10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbN10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkg
PSByZXN1bHRbN11bMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5v
d25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQwLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9y
eS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnks
IHdlYmtpdFJlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1p
dDAucmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoanNjQ29tbWl0MS5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5
LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQwLnJlcG9zaXRv
cnksIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDEucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9zaXRvcnku
aWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDAucmVwb3NpdG9y
eSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNj
Q29tbWl0MS5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5Lmlk
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBv
c3hSZXBvc2l0b3J5LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQwLmlkLCAn
b3duZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hD
b21taXQxLmlkLCAnb3duZWQnOiB3ZWJraXRDb21taXQuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9
KSwKQEAgLTUwOCwyNSArNTA4LDI1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3
aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGRiLnNlbGVj
dFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1pdDEuaWQsICdvd25l
ZCc6IGpzY0NvbW1pdDEuaWR9LCB7J3NvcnRCeSc6ICdvd25lcid9KSwKICAgICAgICAgICAgICAg
ICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzogd2Via2l0UmVwb3NpdG9y
eS5pZH0pXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdC5sZW5ndGgsIDUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
WzBdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzBd
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvcldlYktpdENvbW1p
dDAgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21t
aXRGb3JXZWJLaXRDb21taXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RF
cXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDAsIG51bGwpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0WzFdLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBvd25lckNv
bW1pdEZvcldlYktpdENvbW1pdDEgPSByZXN1bHRbMV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvcldlYktpdENvbW1pdDEsIG51bGwp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzJdLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdDAgPSByZXN1bHRbMl1bMF07Ci0gICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1p
dDAsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzNdLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzNdLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCBvd25lckNvbW1pdEZvckpTQ0NvbW1pdDEgPSByZXN1bHRbM11b
MF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQx
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZv
ckpTQ0NvbW1pdDEsIG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzRd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzRdLmxl
bmd0aCwgMSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDgsMTggKzU0OCwxOCBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21t
aXRXaXRoRW1wdHlPd25lZENvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3lzdGVtVmVyc2lvbkNvbW1pdFdpdGhFbXB0eU93bmVkQ29tbWl0cyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFi
YXNlKCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29t
bWl0cycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1p
dF9vd25lcnNoaXBzJywgJ293bmVyJyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
CiAgICAgICAgICAgICBsZXQgY29tbWl0cyA9IHJlc3VsdFswXTsKICAgICAgICAgICAgIGxldCBy
ZXBvc2l0b3JpZXMgPSByZXN1bHRbMV07CiAgICAgICAgICAgICBsZXQgY29tbWl0X293bmVyc2hp
cHMgPSByZXN1bHRbMl07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9yeSwgcmVwb3NpdG9y
aWVzWzBdLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXNbMF0ubmFt
ZSwgJ09TWCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdF9vd25lcnNoaXBzLmxl
bmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ucmVwb3NpdG9y
eSwgcmVwb3NpdG9yaWVzWzBdLmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3JpZXNbMF0ubmFtZSwgJ09TWCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdF9vd25lcnNoaXBzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC01ODcsNyArNTg3LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0YW1wKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25Db21taXRBbmRPd25lZENv
bW1pdFdpdGhUaW1lc3RhbXApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hv
dWxkTm90Q29udGFpblRpbWVzdGFtcCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFt
cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpAQCAtNjk5LDExICs2OTksMTEgQEAgZGVz
Y3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7
CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBjb25zdCByZXN1bHQg
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJL
aXQvJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRzJ107Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnRl
c3RhYmlsaXR5LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0udGVzdGFi
aWxpdHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgs
IDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5
LCBudWxsKTsKIAogICAgICAgICByZXR1cm4gY29tbWl0czsKICAgICB9CkBAIC03MTIsNyArNzEy
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwg
ZnVuY3Rpb24gKCkgewogICAgIHsKICAgICAgICAgYXdhaXQgaW5pdGlhbFJlcG9ydENvbW1pdHMo
KTsKICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgY29tbWl0c1VwZGF0ZSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCBleHBlY3RlZFN0YXR1cyk7CiAgICAg
ICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL1dlYktpdC8nKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdFsnY29tbWl0cyddOwogICAg
IH0KQEAgLTcyMCw5ICs3MjAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CiAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFdp
dGhFeHBlY3RlZEZhaWx1cmUoY29tbWl0c1VwZGF0ZSwgZXhwZWN0ZWRGYWlsdXJlTmFtZSkKICAg
ICB7CiAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBzZXRVcFRlc3RzV2l0aEV4cGVjdGVk
U3RhdHVzKGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXS50ZXN0YWJpbGl0eSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFd
LnRlc3RhYmlsaXR5LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFi
aWxpdHksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0
YWJpbGl0eSwgbnVsbCk7CiAgICAgfQogCiAgICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggIk1pc3Np
bmdSZXZpc2lvbiIgaWYgY29tbWl0IHVwZGF0ZSBkb2VzIG5vdCBoYXZlIGNvbW1pdCByZXZpc2lv
biBzcGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7CkBAIC03NDYsMzIgKzc0NiwzMiBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAKICAgICAgICAgbGV0IGNv
bW1pdHMgPSBhd2FpdCBkYXRhYmFzZS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMF0ucmVwb3J0ZWQsIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzBdLnJlcG9ydGVkLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMV0ucmVwb3J0ZWQsIHRydWUpOwogCiAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1
ZXJ5KCdVUERBVEUgY29tbWl0cyBTRVQgY29tbWl0X3JlcG9ydGVkPWZhbHNlJyk7CiAgICAgICAg
IGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKIAogICAgICAgICBjb21taXRzID0gYXdhaXQgZGF0YWJhc2Uu
c2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdLnJl
cG9ydGVkLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnJlcG9ydGVk
LCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9ydGVk
LCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJlcG9ydGVk
LCBmYWxzZSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlIGNv
bW1pdHMgbWVzc2FnZSwgdGltZSwgb3JkZXIsIGF1dGhvciBhbmQgcHJldmlvdXMgY29tbWl0Iiwg
YXN5bmMgKCkgPT4gewogICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dp
dGhFeHBlY3RlZFN0YXR1cyhjb21taXRzVXBkYXRlLCAnT0snKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sw
XS50ZXN0YWJpbGl0eSwgJ0JyZWFrcyBidWlsZHMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMV0udGVzdGFiaWxpdHksICdDcmFzaGVzIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzFdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3NhZ2UnKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0uYXV0aG9yTmFtZSwgJ0NocmlzIER1bWV6Jyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLmF1dGhvck5hbWUsICdaYWxhbiBCdWp0YXMn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0ub3JkZXIsIDIxMDk0OCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLm9yZGVyLCAyMTA5NDkpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1swXS50aW1lLCAxNDg0ODg0MzU0NTc3KTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMV0udGltZSwgMTQ4NDg4NjIzMDY0NSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRzWzFdLnByZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksICdCcmVha3MgYnVpbGRzJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCAnQ3Jhc2hlcyBX
ZWJLaXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwg
J2Fub3RoZXIgbWVzc2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sx
XS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXRzWzBdLm9yZGVyKSwgMjEwOTQ4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbW1pdHNbMV0ub3JkZXIp
LCAyMTA5NDkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS50aW1lLCAx
NDg0ODg0MzU0NTc3KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGlt
ZSwgMTQ4NDg4NjIzMDY0NSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFd
LnByZXZpb3VzQ29tbWl0LCBjb21taXRzWzBdLmlkKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCBkOWEyY2VkNjcxODM4MGZh
YjllMGNkNWIwNTcwNDcyMTRiZDEzNGZhLi41YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEz
NzJmZjNmYjY5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC0xMDEsNyArMTAxLDcgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoInNob3VsZCByZWplY3Qg
ZXJyb3Igd2hlbiBidWlsZGVyIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1
aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCJ9XSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNz
aW5nQnVpbGRlck5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTEwOSwxOCArMTA5LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLCAi
YnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCJ9XSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzc2luZ0J1aWxkVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIs
ICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91
bmQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1
bnMnXSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAg
fSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMu
bGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0
aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzQsNTggKzEzNCw1OCBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJldmlz
aW9ucyI6IHt9fV07CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdC
dWlsZGVyTm90Rm91bmQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFp
bHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMn
KTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9ydHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvcnRzLmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3Vs
ZCByZWplY3QgcmVwb3J0IHdpdGggIk1pc21hdGNoaW5nQ29tbWl0VGltZSIgaWYgdGltZSBkaWZm
ZXJlbmNlIGlzIGxhcmdlciB0aGFuIDEgc2Vjb25kJywgYXN5bmMgKCkgPT4gewogICAgICAgICBh
d2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVz
cG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBbcmVwb3J0V2l0TWlzbWF0Y2hpbmdDb21taXRUaW1lKCldKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtl
bXB0eVJlcG9ydCgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdNaXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFRpbWUnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIG5vdCByZWplY3QgcmVwb3J0IGlmIHRoZSBjb21taXQgdGltZSBkaWZm
ZXJlbmNlIGlzIHdpdGhpbiAxIHNlY29uZCInLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0
IGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSk7CiAgICAgICAgIGxldCByZXNwb25z
ZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFtyZXBvcnRXaXRoT25lU2Vjb25kQ29tbWl0VGltZURpZmZlcmVuY2UoKV0pOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogCiAgICAgICAgIHJlc3Bv
bnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW2VtcHR5UmVwb3J0KCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3Jl
ZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVu
cyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3Jl
ZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vz
c2VkUnVucyddLCAxKTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQg
ZnJvbSBhIHZhbGlkIGJ1aWxkZXIiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVy
Rm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJl
cG9ydCgpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
cmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENv
bnRlbnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9
IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsKIAogICAgICAgICAgICAgZGVsZXRl
IHN1Ym1pdHRlZENvbnRlbnRbJ2J1aWxkZXJQYXNzd29yZCddOwogICAgICAgICAgICAgZGVsZXRl
IHN1Ym1pdHRlZENvbnRlbnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29u
dGVudFsndGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVu
dCwgc3VibWl0dGVkQ29udGVudCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTk3LDE4ICsxOTcsMTggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQocmVwb3J0KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3Jl
ZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3By
b2Nlc3NlZFJ1bnMnXSwgMSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAK
ICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnRbJ3NsYXZlUGFzc3dvcmQnXTsKICAgICAgICAgICAg
IGRlbGV0ZSByZXBvcnRbJ3Rlc3RzJ107CiAgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVu
dFsndGVzdHMnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwg
cmVwb3J0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc3RvcmVkQ29udGVu
dCwgcmVwb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxNiwxOSArMjE2LDE5IEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZFNsYXZlRm9yUmVwb3J0KGVtcHR5U2xhdmVSZXBvcnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW2VtcHR5U2xhdmVSZXBvcnQoKV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9y
ZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydw
cm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlTbGF2ZVJlcG9ydCgpOwogICAgICAgICAgICAg
Y29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVwb3J0c1swXVsnY29udGVudCddKTsK
IAogICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3NsYXZlUGFzc3dvcmQnXTsK
ICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50Wyd0ZXN0cyddOwogICAgICAgICAg
ICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRlbnQpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIzOCw5ICsyMzgsOSBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0
cycpOwogICAgICAgICB9KS50aGVuKChyZXBvcnRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcG9ydHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBK
U09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5h
bWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RvcmVkQ29udGVudFsnYnVp
bGRlck5hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CiAgICAgICAgICAgICBh
c3NlcnQoISgnYnVpbGRlclBhc3N3b3JkJyBpbiBzdG9yZWRDb250ZW50KSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtMjUxLDggKzI1MSw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZF9zbGF2ZXMnKTsK
ICAgICAgICAgfSkudGhlbigoc2xhdmVzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2xhdmVzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzWzBdWydu
YW1lJ10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzbGF2ZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzbGF2ZXNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjYyLDggKzI2Miw4IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZGVy
cycpOwogICAgICAgICB9KS50aGVuKChidWlsZGVycykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyc1swXVsnbmFtZSddLCBlbXB0eVJlcG9ydCgpWydi
dWlsZGVyTmFtZSddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI3Myw3ICsyNzMsNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RB
bGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZHNbMF1bJ3RhZyddLCAxMjMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10sICcxMjMnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTI4Myw3ICsyODMsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5idWlsZFRhZzsKICAg
ICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVw
b3J0XSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICB9KTsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3Ro
IGJ1aWxkIG51bWJlciBhbmQgYnVpbGQgdGFnIHdpdGggZGlmZmVyZW50IHZhbHVlcyIsIGFzeW5j
ICgpID0+IHsKQEAgLTI5MSw3ICsyOTEsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAg
IHJlcG9ydC5idWlsZE51bWJlciA9ICc0NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBv
cnRdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJO
dW1iZXJUYWdNaXNtYXRjaCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CiAgICAgfSkKIAogICAgIGl0
KCJzaG91bGQgYWNjZXB0IGlmIGEgcmVwb3J0IHNwZWNpZmllcyBib3RoIGJ1aWxkIG51bWJlciBh
bmQgYnVpbGQgdGFnIHdpdGggaWRlbnRpY2FsIHZhbHVlIiwgYXN5bmMgKCkgPT4gewpAQCAtMjk5
LDcgKzI5OSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgY29uc3QgcmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgcmVwb3J0LmJ1aWxkTnVt
YmVyID0gcmVwb3J0LmJ1aWxkVGFnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pCiAK
ICAgICBpdCgic2hvdWxkIGFkZCB0aGUgcGxhdGZvcm0iLCAoKSA9PiB7CkBAIC0zMDgsOCArMzA4
LDggQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2Vs
ZWN0QWxsKCdwbGF0Zm9ybXMnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFp
biBMaW9uJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjcsMTQgKzMyNywxNCBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvc2l0b3JpZXMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVz
dWx0WzFdOwogICAgICAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0
WzJdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJv
d1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSdd
KS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29t
bWl0c1JlbGF0aW9ucy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
Q29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRf
Y29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0
aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBd
WydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxh
dGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWls
ZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKIAogICAgICAg
ICAgICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OwogICAgICAgICAgICAgZm9yIChsZXQg
cmVwb3NpdG9yeSBvZiByZXBvc2l0b3JpZXMpCkBAIC0zNDQsOSArMzQ0LDkgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZm9yIChsZXQgY29tbWl0
IG9mIGNvbW1pdHMpCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93
W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OwogCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNP
UyddWydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0
MTk3NycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lv
blJvd1snV2ViS2l0J11bJ3RpbWUnXS50b1N0cmluZygpLAorICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24n
XSwgJzEwLjguMiAxMkM2MCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25S
b3dbJ1dlYktpdCddWyd0aW1lJ10udG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICBuZXcgRGF0
ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtMzYwLDE2ICszNjAsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNvbmRSZXBv
cnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRo
ZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzgyLDE2ICszODIsMTYgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJl
cG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRd
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4o
KGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIFtzZWNvbmRSZXBvcnRdKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRz
Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkcy5sZW5ndGgsIDIpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDE1LDE3ICs0MTUs
MTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1
cm4gYWRkQnVpbGRlckZvclJlcG9ydChmaXJzdFJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwog
ICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnTWlzbWF0Y2hpbmdDb21taXRSZXZpc2lvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5nQ29tbWl0UmV2aXNpb24n
KTsKICAgICAgICAgICAgIGFzc2VydChKU09OLnN0cmluZ2lmeShyZXNwb25zZSkuaW5kZXhPZign
MTQxOTc3JykgPj0gMCk7CiAgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9u
c2UpLmluZGV4T2YoJzE1MDAwMCcpID49IDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNDg3LDggKzQ4Nyw4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICBmdW5jdGlvbiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRB
Z2dyZWdhdG9ycyhyZXBvcnQpCiAgICAgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRp
bmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwg
ZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1
cmVTdG9yZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICAg
ICB9KTsKICAgICB9CkBAIC01MTEsNyArNTExLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5k
QWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCd0
ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh0ZXN0cy5tYXAoKHJvdykgPT4geyByZXR1cm4gcm93WyduYW1lJ107IH0pLnNv
cnQoKSwKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdHMubWFwKChyb3cp
ID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCiAgICAgICAgICAgICAgICAgWydD
U1MnLCAnRE9NJywgJ0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5
Tm9kZXMnLCAnVHJhdmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC01MjYsMTQgKzUyNiwxNCBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRy
aWNzW3Jvd1sndGVzdF9uYW1lJ11dID0gbmV3IEFycmF5OwogICAgICAgICAgICAgICAgIHRlc3RO
YW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1lJ11dLnB1c2goW3Jvd1snbWV0cmljX25hbWUnXSwg
cm93WydhZ2dyZWdhdG9yX25hbWUnXV0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxd
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00n
XS5zb3J0KCksIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11d
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15
QmVuY2htYXJrJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1Rp
bWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RO
YW1lVG9NZXRyaWNzWydNb2RpZnlOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwg
W1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWydhcHBsZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUn
LCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRv
TWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywg
J0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBb
WydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0Fy
aXRobWV0aWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFt
ZVRvTWV0cmljc1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVz
J10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snYXBwbGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0
Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTU0
Miw3ICs1NDIsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoYFNFTEVDVCAqIEZST00gdGVz
dHMsIHRlc3RfbWV0cmljcywgdGVzdF9jb25maWd1cmF0aW9ucwogICAgICAgICAgICAgV0hFUkUg
dGVzdF9pZCA9IG1ldHJpY190ZXN0IEFORCBtZXRyaWNfaWQgPSBjb25maWdfbWV0cmljCiAgICAg
ICAgICAgICBBTkQgdGVzdF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDJgLCBbdGVzdE5h
bWUsIG1ldHJpY05hbWVdKS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0LnJvd3NbMF07CiAgICAgICAgICAgICB9KTsKICAgICB9CkBAIC01NjUsMjAgKzU2
NSwyMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsK
ICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MDAsIHJlbGF0aXZlX3RpbWU6IG51
bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IG51bGws
IHZhbHVlOiA1MTAsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46
IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZhbHVlOiA1MjAsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51
bGwsIHZhbHVlOiA1MzAsIHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7CiAgICAgICAgICAgICBjb25z
dCBzdW0gPSA1MDAgKyA1MTAgKyA1MjAgKyA1MzA7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICog
NTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1
MDAgKiA1MDAgKyA1MTAgKiA1MTAgKyA1MjAgKiA1MjAgKyA1MzAgKiA1MzApOwogICAgICAgICAg
ICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0NTUycsICdUaW1lJyk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0g
cmVzdWx0LnJ1bjsKICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAg
ICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IDAsIHZhbHVlOiAxMDEsIHJlbGF0aXZl
X3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3Jv
dXA6IDAsIHZhbHVlOiAxMDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAg
IHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IDAsIHZhbHVlOiAxMDMsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9LApAQCAtNjAwLDkgKzYwMCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBzdW0gKz0gdmFsdWU7CiAgICAgICAgICAgICAg
ICAgc3F1YXJlU3VtICs9IHZhbHVlICogdmFsdWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25z
Lmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3Vt
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1
YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUn
XSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNjEzLDE1ICs2MTMsMTUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKICAg
ICAgICAgICAgIGNvbnN0IHJ1bklkID0gcmVzdWx0LnJ1blsnaWQnXTsKICAgICAgICAgICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWyg1MDAgKyAxMDApIC8gMiwgKDUxMCArIDExMCkgLyAyLCAo
NTIwICsgMTIwKSAvIDIsICg1MzAgKyAxMzApIC8gMl07Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQs
IG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCByZWxhdGl2
ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdy
b3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZh
bHVlOiBleHBlY3RlZFZhbHVlc1syXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgICAg
ICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVk
VmFsdWVzWzNdLCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3Vt
ID0gZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBz
dW0gKyB2YWx1ZTsgfSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2Nh
Y2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9u
IChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3Vs
dC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
WydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0s
IHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC02NDIsMTAgKzY0MiwxMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFs
dWUgKiBleHBlY3RlZFZhbHVlOwogICAgICAgICAgICAgICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5w
dXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6IE1hdGguZmxvb3IoaSAvIDUpLCB2YWx1
ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJ
dGVyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwg
c3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0
Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsn
c3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNzAzLDEwICs3MDMsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVl
OwogICAgICAgICAgICAgZXhwZWN0ZWRJdGVyYXRpb25zLnB1c2goe3J1bjogcnVuSWQsIG9yZGVy
OiBpLCBncm91cDogTWF0aC5mbG9vcihpIC8gMiksIHZhbHVlOiBleHBlY3RlZFZhbHVlLCByZWxh
dGl2ZV90aW1lOiBudWxsfSk7CiAgICAgICAgIH0KLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlv
bnMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAv
IHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
dW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydz
cXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxk
IHNraXAgc3VidGVzdHMgd2l0aG91dCBhbnkgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFz
eW5jICgpID0+IHsKQEAgLTczNywyNyArNzM3LDI3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0
Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOwog
CiAgICAgICAgIGxldCBydW4gPSBiZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3Jk
ZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVy
YXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAy
MikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
YmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwg
dmFsdWU6ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwg
b3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVf
dGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChi
ZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2
YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7
cnVuLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxh
dGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2ht
YXJrUmVzdWx0Lml0ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6
ICgoMyArIDEzKSArIDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwg
b3JkZXI6IDMsIGdyb3VwOiAxLCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVf
dGltZTogbnVsbH0pOwogCiAgICAgICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVy
YXRpb25zLnJlZHVjZSgodG90YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDApOwogICAg
ICAgICBjb25zdCBzcXVhcmVTdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2Uo
KHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8g
NCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUn
XSwgc3VtKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJl
bmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1f
Y2FjaGUnXSwgc3F1YXJlU3VtKTsKIAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3VsdCA9IGF3
YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0FTdWJUZXN0JywgJ1RpbWUnKTsK
ICAgICAgICAgcnVuID0gc29tZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVu
LCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMSwgcmVsYXRpdmVfdGltZTogbnVsbH0s
CiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMSwgZ3JvdXA6IG51bGwsIHZhbHVlOiAzMiwgcmVs
YXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc29t
ZVRlc3RSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIDMxLjUpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgNjMpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDMxICogMzEgKyAz
MiAqIDMyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsn
bWVhbl9jYWNoZSddLCAzMS41KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0
UmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVUZXN0UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAz
Mik7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHNraXAgc3VidGVzdHMgbWlzc2luZyB0aGUg
bWF0Y2hpbmcgbWV0cmljIGR1cmluZyBhZ2dyZWdhdGlvbiIsIGFzeW5jICgpID0+IHsKQEAgLTc5
MiwyNyArNzkyLDI3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgY29uc3QgYmVuY2htYXJrUmVzdWx0ID0gYXdhaXQgZmV0Y2hUZXN0UnVuSXRlcmF0aW9u
c0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOwogCiAgICAgICAgIGxldCBydW4g
PSBiZW5jaG1hcmtSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChi
ZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2
YWx1ZTogKCgxICsgMTEpICsgMjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBv
cmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90
aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0
ZXJhdGlvbnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSAr
IDIzKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAx
LCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3Ro
LCA0KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRl
cmF0aW9uc1swXSwge3J1biwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogKCgxICsgMTEpICsg
MjEpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzFdLCB7cnVuLCBvcmRlcjogMSwgZ3Jv
dXA6IDAsIHZhbHVlOiAoKDIgKyAxMikgKyAyMikgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlv
bnNbMl0sIHtydW4sIG9yZGVyOiAyLCBncm91cDogMSwgdmFsdWU6ICgoMyArIDEzKSArIDIzKSAv
IDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1szXSwge3J1biwgb3JkZXI6IDMsIGdyb3VwOiAx
LCB2YWx1ZTogKCg0ICsgMTQpICsgMjQpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwogCiAg
ICAgICAgIGNvbnN0IHN1bSA9IGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLnJlZHVjZSgodG90
YWwsIHJvdykgPT4gdG90YWwgKyByb3cudmFsdWUsIDApOwogICAgICAgICBjb25zdCBzcXVhcmVT
dW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRv
dGFsICsgcm93LnZhbHVlICogcm93LnZhbHVlLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJl
bmNobWFya1Jlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1
YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5b
J21lYW5fY2FjaGUnXSwgc3VtIC8gNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5j
aG1hcmtSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJlbmNobWFya1Jlc3VsdC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3Vt
KTsKIAogICAgICAgICBjb25zdCBzb21lVGVzdFJlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0
ZXJhdGlvbnNGb3JNZXRyaWMoJ0F1eGlsaWFyeVJlc3VsdCcsICdBbGxvY2F0aW9ucycpOwogICAg
ICAgICBydW4gPSBzb21lVGVzdFJlc3VsdC5ydW4uaWQ7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc29tZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNvbWVUZXN0UmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgIHtydW4sIG9y
ZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDMxICsgNDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAogICAgICAgICAgICAge3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIgKyA0
MiwgcmVsYXRpdmVfdGltZTogbnVsbH0sCiAgICAgICAgIF0pOwotICAgICAgICBhc3NlcnQuZXF1
YWwoc29tZVRlc3RSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sICgzMSArIDQxICsgMzIgKyA0Mikg
LyAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1blsnc3VtX2NhY2hl
J10sIDMxICsgNDEgKyAzMiArIDQyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVz
dWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBNYXRoLnBvdygzMSArIDQxLCAyKSArIE1hdGgu
cG93KDMyICsgNDIsIDIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0UmVz
dWx0LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSAr
IDQxICsgMzIgKyA0Mik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3Vs
dC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBv
dygzMiArIDQyLCAyKSk7CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBhIHJlcG9y
dCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG5vbi1tYXRjaGluZyBhZ2dyZWdhdG9ycyBp
biBhIHN1YnRlc3QiLCBhc3luYyAoKSA9PiB7CkBAIC04NDgsNyArODQ4LDcgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfX07CiAKICAgICAgICAg
Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdh
dG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQW1iaWdpb3VzQWdncmVnYXRvcnMpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRW
YWx1ZUluU3VidGVzdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnTm9NYXRjaGluZ0FnZ3JlZ2F0ZWRWYWx1ZUluU3VidGVzdCcpOwogICAgIH0pOwog
CiAgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpCkBAIC04OTIsMTYgKzg5
MiwxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2Ft
ZVN1YnRlc3ROYW1lKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3Rz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAg
bGV0IG5ld1JlcG9ydCA9IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKTsKICAgICAgICAgICAg
IG5ld1JlcG9ydC5idWlsZFRhZyA9ICIxMjUiOwogICAgICAgICAgICAgbmV3UmVwb3J0LmJ1aWxk
VGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtuZXdSZXBvcnRdKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAgICAgfSkudGhlbigodGVz
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC05MzAsMTcgKzkzMCwxNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9u
c0Zvck1ldHJpYygndGVzdDEnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA5KTsKICAgICAgICAgICAgIHJldHVybiBm
ZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdzdWl0ZScsICdDb21iaW5lZCcpOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3Vs
dC5ydW47Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2Fj
aGUnXSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDUpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC05NjIsMTMgKzk2MiwxMyBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdCcsICdGcmFtZVJhdGUnKTsKICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDMp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA0KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCAxMik7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDE2ICsgMjUgKyA5KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAx
NiArIDI1ICsgOSk7CiAKICAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAg
ICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA0LCByZWxh
dGl2ZV90aW1lOiAwfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdy
b3VwOiBudWxsLCB2YWx1ZTogNSwgcmVsYXRpdmVfdGltZTogMTAwfSwKICAgICAgICAgICAgICAg
ICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogMywgcmVsYXRpdmVf
dGltZTogMjA1fV0pOwpAQCAtMTAwNiw3ICsxMDA2LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBv
cnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3Jl
cG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGlt
ZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENvbmZpZykgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFty
ZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1syXV0pLnRoZW4oKCkgPT4gewpAQCAtMTAyMywx
NiArMTAyMywxNiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRl
c3RzWzBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50
VGVzdHNbMF1dKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgIH0pLnRoZW4o
KG9yaWdpbmFsQ29uZmlnKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVu
dFRlc3RzWzFdXSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChjb25maWcpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQob3JpZ2luYWxDb25maWdb
J2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAg
ICAgICAgIGFzc2VydChjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5j
ZW9mIERhdGUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdb
J2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9t
b2RpZmllZCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK29yaWdpbmFs
Q29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5z
X2xhc3RfbW9kaWZpZWQnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC0xMDY5LDcgKzEwNjksNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFi
YXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5n
QnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWlsZFJlcXVlc3Qp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTEwNzcsMjIgKzEwNzcsMjIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRh
YmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGlu
Z0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6ICcxMjMnfSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5z
ZWxlY3RSb3dzKCdwbGF0Zm9ybXMnLCB7bmFtZTogJ01vdW50YWluIExpb24nfSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFthbm90aGVyUmVwb3J0V2l0aFNhbWVCdWlsZFJlcXVlc3RdKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVxdWVzdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRv
VXBkYXRlQnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLnNlbGVjdFJvd3MoJ2J1aWxkcycsIHt0YWc6ICcxMjQnfSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0
aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDAp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RSb3dzKCdw
bGF0Zm9ybXMnLCB7bmFtZTogJ0xpb24nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktdGVzdC1ncm91cHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS10ZXN0LWdyb3Vwcy5qcwppbmRleCBjMDE5YTQyZGIxNzI0MTIxOTMyNTg4MjUw
ZWI5MzU5MDExMWQ5NGY5Li4xNjI5ZDRiYjBhZjFmZjRiMmQ2OTNjMWNhNzVkZjcwN2U4MDhiYmNh
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS10
ZXN0LWdyb3Vwcy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS10ZXN0LWdyb3Vwcy5qcwpAQCAtMTEsMzkgKzExLDM5IEBAIGRlc2NyaWJlKCcvYXBpL3Rl
c3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBz
L3JlYWR5LWZvci1ub3RpZmljYXRpb24nLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgZ2l2
ZSBhbiBlbXB0eSBsaXN0IGlmIHRoZXJlIGlzIG5vdCBleGlzdGluZyB0ZXN0IGdyb3VwIGF0IGFs
bCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5v
dGlmaWNhdGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAn
T0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0
cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1p
dFNldHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5j
b21taXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
dXBsb2FkZWRGaWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5v
dCBpbmNsdWRlIGEgdGVzdCBncm91cCB3aXRoICJjYW5jZWxlZCIgc3RhdGUgaW4gYXQgbGVhc3Qg
b25lIGJ1aWxkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBhd2FpdCBNb2Nr
RGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsnY29tcGxldGVkJywgJ2Nv
bXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY2FuY2VsZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBj
b250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3Qt
Z3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVw
bG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50
LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRl
bnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdyb3VwcyB3aXRoIHBlbmRpbmcgbm90aWZp
Y2F0aW9uJywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAn
Y29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVh
ZHktZm9yLW5vdGlmaWNhdGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQu
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnQudGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3Vw
ID0gY29udGVudC50ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5pZCwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAudGFzaywg
NTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVz
dCBncm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24sIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3
MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5pZCksIDYwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnRhc2sp
LCA1MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lLCAn
c29tZSB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLmhpZGRlbiwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5uZWVkc05vdGlmaWNhdGlvbiwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEn
LCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVz
dEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGhpZGRlbiB0ZXN0IGdyb3VwJywg
YXN5bmMgKCkgPT4gewpAQCAtNTEsMTIgKzUxLDEyIEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3Jv
dXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0Rh
dGEoZGF0YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29t
cGxldGVkJ10pOwogICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFs
eXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX2hpZGRlbiA9IFRSVUUgV0hFUkUgdGVzdGdy
b3VwX2lkID0gNjAwJyk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3Rp
ZmljYXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRT
ZXRzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29t
bWl0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVw
bG9hZGVkRmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qg
bGlzdCB0ZXN0IGdyb3VwcyB3aXRob3V0IG5lZWRzIG5vdGlmaWNhdGlvbiBmbGFnJywgYXN5bmMg
KCkgPT4gewpAQCAtNjQsMjQgKzY0LDI0IEBAIGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGF0
YWJhc2UsIFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVk
J10pOwogICAgICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoJ1VQREFURSBhbmFseXNpc190
ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX25lZWRzX25vdGlmaWNhdGlvbiA9IEZBTFNFIFdIRVJF
IHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1m
b3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0
dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJl
cXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
Y29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgbm90IGxpc3QgYSB0ZXN0IGdyb3VwIHRoYXQgaGFzIHNvbWUgaW5jb21wbGV0ZWQgYnVpbGQg
cmVxdWVzdHMnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYXRhYmFzZSA9IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tE
YXRhKGRhdGFiYXNlLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3J1
bm5pbmcnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRp
b24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywg
W10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVk
RmlsZXMsIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzOCwxOCArMTM4LDE4IEBA
IGRlc2NyaWJlKCcvYXBpL3Rlc3QtZ3JvdXBzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBs
ZXRlZCcsICdjb21wbGV0ZWQnLCAnZmFpbGVkJywgJ2NvbXBsZXRlZCddLCBmYWxzZSk7CiAgICAg
ICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNp
c190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVF
IFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9u
ZWVkLW1vcmUtcmVxdWVzdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9
IGNvbnRlbnQudGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuaWQsIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUw
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3Qg
Z3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQp
LCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91
cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
bmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3Jv
dXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubWF5TmVlZE1vcmVSZXF1
ZXN0cyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBb
JzcwMCcsJzcwMScsICc3MDInLCAnNzAzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0ZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLnBsYXRmb3Jt
KSwgNjUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAnNzAyJywgJzcwMyddKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMics
ICc0MDEnLCAnNDAyJ10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGxpc3Qg
YWxsIHRlc3QgZ3JvdXBzIG1heSBuZWVkIGFkZGl0aW9uYWwgYnVpbGQgcmVxdWVzdHMnLCBhc3lu
YyAoKSA9PiB7CkBAIC0xNTgsMzEgKzE1OCwzMSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vw
cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KS5xdWVyeSgnVVBEQVRFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIFNFVCB0ZXN0Z3JvdXBfbWF5X25l
ZWRfbW9yZV9yZXF1ZXN0cyA9IFRSVUUgV0hFUkUgdGVzdGdyb3VwX2lkID0gNjAwJyk7CiAgICAg
ICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFURSBhbmFseXNp
c190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVzdHMgPSBUUlVF
IFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMScpOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9u
ZWVkLW1vcmUtcmVxdWVzdHMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRl
c3RHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50LnRlc3RHcm91cHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgY29uc3Qgb25lVGVzdEdy
b3VwID0gY29udGVudC50ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9u
ZVRlc3RHcm91cC5pZCwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3Jv
dXAudGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAubmFt
ZSwgJ3NvbWUgdGVzdCBncm91cCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9uZVRlc3RH
cm91cC5hdXRob3IsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG9uZVRlc3RHcm91cC5pZCksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQob25lVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIW9uZVRlc3RHcm91cC5oaWRkZW4pOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKG9uZVRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBh
c3NlcnQub2sob25lVGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9uZVRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvbmVUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAn
NzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob25lVGVzdEdyb3Vw
LmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9uZVRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob25lVGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAn
NDAxJywgJzQwMiddKTsKIAogICAgICAgICAgICAgY29uc3QgYW5vdGhlclRlc3RHcm91cCA9IGNv
bnRlbnQudGVzdEdyb3Vwc1sxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVz
dEdyb3VwLmlkLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJUZXN0R3Jv
dXAudGFzaywgNTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3Vw
Lm5hbWUsICdhbm90aGVyIHRlc3QgZ3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChh
bm90aGVyVGVzdEdyb3VwLmF1dGhvciwgJ3dlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAuaWQpLCA2MDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAudGFzayksIDUw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1l
LCAnYW5vdGhlciB0ZXN0IGdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YW5vdGhlclRlc3RHcm91cC5hdXRob3IsICd3ZWJraXQnKTsKICAgICAgICAgICAgIGFzc2VydC5v
ayghYW5vdGhlclRlc3RHcm91cC5oaWRkZW4pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFhbm90
aGVyVGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKTsKICAgICAgICAgICAgIGFzc2VydC5vayhh
bm90aGVyVGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGFub3RoZXJUZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcxMCcsJzcxMScs
ICc3MTInLCAnNzEzJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChhbm90aGVyVGVz
dEdyb3VwLmNvbW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGFub3RoZXJUZXN0R3JvdXAucGxhdGZv
cm0pLCA2NSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMyddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRTZXRz
LCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dl
cmFibGUtdGVzdHMuanMKaW5kZXggZmZmMmFjZjFmYjYzOWFiM2U5OGEyYjFiN2IzZDQwNmRmMWFj
YzdlMS4uYmJmOTMzNjY1MGU1ZWE0MTU3ZGZmYTRkOTYyZWJiOTU5MDQ3ZTk0MCAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMzAsMTQgKzMwLDE0IEBAIGRl
c2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBp
dCgnc2hvdWxkIHJlamVjdCB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZycsICgpID0+IHsKICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHt9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xh
dmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qg
d2hlbiB0aGVyZSBhcmUgbm8gc2xhdmVzJywgKCkgPT4gewogICAgICAgICBjb25zdCB1cGRhdGUg
PSB7c2xhdmVOYW1lOiBlbXB0eVVwZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6IGVtcHR5
VXBkYXRlLnNsYXZlUGFzc3dvcmR9OwogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ1NsYXZlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC00OCw3ICs0OCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSB7c2xhdmVOYW1lOiBlbXB0
eVVwZGF0ZS5zbGF2ZU5hbWUsIHNsYXZlUGFzc3dvcmQ6ICdiYWRQYXNzd29yZCd9OwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01OCw3ICs1OCw3IEBAIGRlc2NyaWJlKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MywxMCArNzMs
MTAgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZW1wdHlVcGRh
dGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBk
Yi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAg
ICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04NywxMiArODcsMTIgQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc21hbGxVcGRhdGUpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAgfSkudGhlbigocm93cykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWyd0ZXN0J10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRp
b25zWzBdWyd0ZXN0J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ3BsYXRm
b3JtJ10sIHNtYWxsVXBkYXRlLmNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0
aW9uc1swXVsndGVzdCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBd
WydwbGF0Zm9ybSddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDgsNyArMTA4LDcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH07CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkQ29uZmlndXJhdGlvbkVudHJ5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3VyYXRpb25FbnRyeScpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTM3LDcgKzEzNyw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
dXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwcycpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZFJlcG9zaXRvcnlHcm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5R3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xNzMsNyArMTczLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgdXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9y
eUdyb3VwJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTg1LDcgKzE4NSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlEYXRh
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJlcG9zaXRvcnlEYXRhJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xOTcs
NyArMTk3LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBk
YXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdEdXBsaWNhdGVSZXBvc2l0b3J5Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlUmVwb3NpdG9yeScpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjIxLDE4ICsyMjEsMTggQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91
cCgpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAn
dGVzdCcpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJyldKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbY29uZmln
dXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb25maWd1cmF0aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10sIE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3Jt
J10sIE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0Rh
dGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJs
ZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMjUzLDggKzI1Myw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91
cHNdID0gaW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywg
cmVwb3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0
aWFsQ29uZmlndXJhdGlvbnMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAgICAgIH0pCiAg
ICAgfSk7CiAKQEAgLTI3NSw4ICsyNzUsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dl
cmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5
R3JvdXBzXSA9IGluaXRpYWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlv
bnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91
cHMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywg
aW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9
KQogICAgIH0pOwogCkBAIC0yOTAsMTQgKzI5MCwxNCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlf
Z3JvdXBzJykpLnRoZW4oKHJlcG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCBudWxsKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2Fw
aS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJykpLnRoZW4o
KHJlcG9zaXRvcnlHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWydkZXNjcmlwdGlvbiddLCAndGhpcyBncm91cCBpcyBh
d2Vzb21lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAg
aXMgYXdlc29tZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM5ICszNDQsMzkg
QEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLmFsbCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdXZWJL
aXQnKTsKICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxC
eU5hbWUoJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vw
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNb
MF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1
c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lz
dGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMo
KSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmRlc2NyaXB0aW9uKCks
ICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3Jp
ZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0u
YWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9u
bHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5y
ZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
TWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0
b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAgICBjb25z
dCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQt
d2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5k
ZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c1BhdGNo
Rm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0t
b25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNj
ZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCks
ICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRz
Q3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0
c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnko
bWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9u
bHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFd
LmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRz
UGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnko
bWFjb3MpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxV
cGRhdGUpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM5NSwyOSArMzk1LDI5IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9y
eV9ncm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmll
cycsICdyZXBvc2l0b3J5JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lz
dGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5
c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSdd
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJh
Z2JsZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlU
cmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5
R3JvdXBzOwogCiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVw
b3NpdG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sw
XVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlz
KHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQn
XV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKV0pOwogCiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVw
ZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25h
bWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9y
eScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
W3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxHcm91cHMpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3Jv
dXBzKTsKIAogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9z
aXRvcmllc0J5R3JvdXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChP
YmplY3Qua2V5cyhyZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lk
J11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVw
b3NpdG9yeUlkKCldKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVz
QnlHcm91cFtpbml0aWFsR3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9y
eUlkKCldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBv
c2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRpYWxHcm91cHNbMF1bJ2lkJ11dLCBbTW9j
a0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEuZ2l0V2Via2l0UmVwb3NpdG9yeUlk
KCldKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlH
cm91cFtpbml0aWFsR3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlk
KCldKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQzNiwxNyArNDM2LDE3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9y
eV9ncm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmll
cycsICdyZXBvc2l0b3J5JyldKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnc3lz
dGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5
c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sx
XVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSdd
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJh
Z2JsZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlU
cmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5
R3JvdXBzOwogCiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVw
b3NpdG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sw
XVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE9iamVjdC5rZXlz
KHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1swXVsnaWQn
XV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRSZXBvc2l0
b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKV0pOwogICAgICAgICAgICAgaW5pdGlhbFJlcG9zaXRvcmllcyA9IHJlcG9zaXRv
cmllczsKIAogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwpA
QCAtNDU1LDEzICs0NTUsMTMgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBbcmVwb3NpdG9yeUdyb3VwcywgcmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25s
eScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdn
ZXJhYmxlJ10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Vi
a2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJp
Z2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ21h
Yy1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsnbmFtZSdd
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBzWzBdWyd0cmln
Z2VyYWJsZSddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMs
IGluaXRpYWxSZXBvc2l0b3JpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXBvc2l0b3JpZXMsIGluaXRpYWxSZXBvc2l0b3JpZXMpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktdXBsb2FkLXJvb3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwppbmRleCBhOGIxOTFkNzVmYzFjODAxNjZi
YTM2ZTEzNTMzNWIwMTA2MTg4OWY4Li40OTgyZjA5OGJlODE3NjU5NTdmYTE1MjNjYjdmZGFhM2Q2
NzA3NWY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwpAQCAtMTIxLDcgKzEyMSw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCdz
aG91bGQgcmVqZWN0IHdoZW4gcm9vdCBmaWxlIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQt
cm9vdC8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdOb0ZpbGVTcGVjaWZpZWQnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBUZW1wb3JhcnlG
aWxlLm1ha2VUZW1wb3JhcnlGaWxlKCdzb21lLmRhdCcsICdzb21lIGNvbnRlbnQnKS50aGVuKChy
b290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIG1ha2VSZXBvcnQocm9vdEZpbGUpKTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZvdW5kJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTM5LDcgKzEzOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
bG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQuc2xh
dmVOYW1lOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZv
cm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnTWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LmJ1aWxkZXJOYW1lOwogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBp
L3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1
aWxkZXJOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZEJ1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0xNTksNyArMTU5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9v
dC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRhZycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRCdWlsZFRhZycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTcwLDcgKzE3MCw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJlcG9ydC5idWlsZE51bWJlciA9ICcxYWJjJzsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51bWJlcicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZE51
bWJlcicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTc5LDcgKzE3OSw3IEBAIGRlc2Ny
aWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgcmVw
b3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9
ICc0NTYnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0
Y2gnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1
aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBhY2Nl
cHQgaWYgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyBleGlzdHMgd2l0aCBzYW1lIHZh
bHVlJywgYXN5bmMgKCkgPT4gewpAQCAtMTg4LDM5ICsxODgsMzkgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAKICAg
ICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
UGVuZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAg
Y29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgIGNvbnN0IHJvb3RGaWxlID0gYXdhaXQgYWRkU2xhdmVBbmRDcmVhdGVSb290
RmlsZSgpOwogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWls
ZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9
IHJlcG9ydC5idWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7
CiAKICAgICBpdCgnc2hvdWxkIGNvbnRpbnVlIHdvcmtpbmcgd2l0aCBidWlsZCBudW1iZXIgaWYg
YnVpbGQgdGFnIGlzIG5vdCBwcmVzZW50JywgYXN5bmMgKCkgPT4gewpAQCAtMjI5LDQwICsyMjks
NDAgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NS
ZXBvc2l0b3J5SWQoKSk7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGNvbnN0IHJvb3RGaWxlID0gYXdhaXQg
YWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtl
UmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAg
IGRlbGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9ICcx
MjMnOwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KTsKIAogICAgIGl0KCdz
aG91bGQgcmVqZWN0IHdoZW4gYnVpbGQgdGltZSBpcyBtaXNzaW5nJywgKCkgPT4gewpAQCAtMjcx
LDcgKzI3MSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUaW1lOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290Lycs
IHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkVGltZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRC
dWlsZFRpbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MSw3ICsyODEsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXBvcnQuYnVpbGRUaW1lID0gJ1dlZCwgMTAgTWF5IDIwMTcgMDM6MDI6MzAgR01UJzsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91
cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWls
ZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yOTEs
NyArMjkxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZFJlcXVlc3Q7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZEJ1aWxkUmVxdWVzdCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAxLDcgKzMw
MSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHJlcG9ydC5idWlsZFJlcXVlc3QgPSAnYWJjJzsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCBy
ZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3QnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
QnVpbGRSZXF1ZXN0Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMDksNyArMzA5LDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9h
cGkvdXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSkpOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdFR5cGUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxOSw3ICszMTksNyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0
LnJlcG9zaXRvcnlMaXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMjksNyArMzI5LDcgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJlcG9z
aXRvcnlMaXN0ID0gJ2ErYic7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3Qn
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Nyw2NiArMzQ3LDY2IEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdy
b3VwID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgp
KTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAg
ICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAg
fSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VS
ZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbJ1dlYktpdCddKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxv
YWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxl
J107CiAgICAgICAgICAgICB1cGxvYWRlZFJvb3QgPSBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xl
dG9uKHVwbG9hZGVkUm9vdFJhd0RhdGEuaWQsIHVwbG9hZGVkUm9vdFJhd0RhdGEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAnc29tZS5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwg
J3NvbWUuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhi
dWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwog
CiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkQnVpbGRSZXF1
ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0
ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxs
Um9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBUZW1wb3JhcnlGaWxlLm1ha2VU
ZW1wb3JhcnlGaWxlKCdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcsICdKYXZhU2NyaXB0IENvbnRl
bnQgMCcpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29u
c3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFt7b3du
ZXJSZXBvc2l0b3J5V3JvbmdLZXk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2Ny
aXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5Rm9yUmVwb3NpdG9y
eScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRLZXlGb3JSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00
MjQsNjYgKzQyNCw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAo
KSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2gg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
ICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNj
LTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1q
c2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENy
ZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAg
ICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQo
KSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRh
ID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0g
VXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxv
YWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3Qu
ZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5p
ZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBn
cm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRl
c3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0
ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwog
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRl
ZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBs
b2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9v
dC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZp
bGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUs
IGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdDInLCBvd25lZFJl
cG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC01MDEsNzkgKzUwMSw3OSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Vi
a2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2
ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9h
cGkvdXBsb2FkLXJvb3QvJywgbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCkp
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxv
YWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAg
dXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RS
YXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAn
c29tZVVzZXInKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1
aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
IAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdCwgdXBsb2FkZWRS
b290KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNo
YXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAn
ODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01ODcsNyArNTg3LDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgcmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJyJhIic7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUxpc3QnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmVwb3NpdG9yeUxpc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYwMSw4ICs2MDEs
OCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAiQmFkUmVwb3NpdG9yeU5h
bWUiXSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9y
bURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmVwb3NpdG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydyZXBvc2l0b3J5TmFtZSddLCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFt
ZSddLCAnQmFkUmVwb3NpdG9yeU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYx
Niw4ICs2MTYsOCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJXZWJLaXQiLCAibWFjT1Mi
XSc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURh
dGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmVwb3NpdG9yeScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydy
ZXBvc2l0b3J5TmFtZSddLCAnbWFjT1MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydyZXBvc2l0b3J5TmFtZSddLCAnbWFjT1MnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYzNSwzNCArNjM1LDM0IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgdGVzdEdyb3Vw
ID0gZ3JvdXA7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7IAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAg
ICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJl
ZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hh
cmVkKSwgJzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFy
ZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgcmV0dXJuIGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAgICAgfSku
dGhlbigocm9vdEZpbGUpID0+IHsKQEAgLTY3MCw0NSArNjcwLDQ1IEBAIGRlc2NyaWJlKCcvYXBp
L3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0
b3J5TGlzdCA9ICdbIldlYktpdCIsICJTaGFyZWQiXSc7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1
cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAg
ICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJv
b3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigpLCAnc29tZVVzZXInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmF1dGhvcigp
LCAnc29tZVVzZXInKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxk
UmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgd2Via2l0UGF0Y2gpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
dXBsb2FkZWRSb290KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCB3ZWJraXRQYXRjaCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkUm9vdCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCB1
cGxvYWRlZFJvb3QpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAn
ODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC03MjcsODcgKzcyNyw4
NyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAg
ICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGlu
ZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwogICAgICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVu
YW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2Mt
NjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxl
KCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBy
ZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQn
XSk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURh
dGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2Vb
J3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxl
LmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdE
YXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwg
J3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290
LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsK
ICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBk
YXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5o
YXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCku
YWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9y
YXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2
YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAgICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVz
dC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0ph
dmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQt
cm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAg
ICAgIGNvbnN0IHVwbG9hZGVkUm9vdFJhd0RhdGEgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107
CiAgICAgICAgICAgICBqc2NSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxv
YWRlZFJvb3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29yZS1Sb290LmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ0ph
dmFTY3JpcHRDb3JlLVJvb3QuZGF0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cCwgdGVzdEdyb3VwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh1cGRh
dGVkQnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CiAKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaGFz
RmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1BlbmRpbmco
KSk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290LCBqc2NSb290XSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9v
dCwganNjUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKaW5kZXggYmVkYzU0
NzdkNTVhNGM3NDdiMjFkNzA5NDg1NTJlMzU3ZjQ2MmE5NC4uMDJlMWQ4OWZjYzFkMjJlYTY4NmFj
ZWQxNjAyMjkyMzIxZmRkZDhkMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCkBA
IC03LDE5ICs3LDE4IEBAIGdsb2JhbC5Gb3JtRGF0YSA9IHJlcXVpcmUoJ2Zvcm0tZGF0YScpOwog
CiBjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMn
KTsKIGNvbnN0IFRlbXBvcmFyeUZpbGUgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZW1wb3Jhcnkt
ZmlsZS5qcycpLlRlbXBvcmFyeUZpbGU7Citjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVp
cmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7
CiAKIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7Ci0gICAgdGhp
cy50aW1lb3V0KDUwMDApOwotICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7Ci0KKyAgICBwcmVwYXJl
U2VydmVyVGVzdCh0aGlzKTsKICAgICBUZW1wb3JhcnlGaWxlLmluamVjdCgpOwogCiAgICAgaXQo
J3Nob3VsZCByZXR1cm4gIkludmFsaWRBcmd1bWVudHMiIHdoZW4gbmVpdGhlciBwYXRoIG5vciBz
aGEyNTYgcXVlcnkgaXMgc2V0JywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUnKS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZhbGlk
QXJndW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3Rh
dHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvJyk7CiAgICAgICAgIH0p
LnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydz
dGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50WydzdGF0dXMnXSwgJ0ludmFsaWRBcmd1bWVudHMnKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTI3LDcgKzI2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLzEnKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTM1LDcgKzM0LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlL2ZvbycpLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAg
ICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCA0MDQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MDQpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNDcsNyArNDYsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2Vb
J3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHt1cGxvYWRlZEZpbGVbJ2lk
J119YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNjgs
MTMgKzY3LDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICBpdCgnc2hvdWxkIHJldHVybiAiTm90Rm91bmQiIHdoZW4gdGhlIHNwZWNpZmllZCBT
SEEyNTYgaXMgaW52YWxpZCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9YWJjJykudGhlbigo
Y29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cydd
LCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydz
dGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQoJ3No
b3VsZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZXJlIGlzIG5vIGZpbGUgbWF0Y2hpbmcgdGhl
IHNwZWNpZmllZCBTSEEyNTYgJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3VwbG9hZGVkLWZpbGUvP3NoYTI1Nj01MjU2ZWMxOGYx
MTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyku
dGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0
YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC04
Niw3ICs4NSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL3Vw
bG9hZGVkLWZpbGUvP3NoYTI1Nj0ke3VwbG9hZGVkRmlsZVsnc2hhMjU2J119YCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHVw
bG9hZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlLCByZXNwb25zZVsndXBsb2FkZWRGaWxlJ10p
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcsMTEgKzk2LDExIEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRG
aWxlJ107CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKLSAg
ICAgICAgICAgIHJldHVybiBkYi5jb25uZWN0KCkudGhlbigoKSA9PiBkYi5xdWVyeShgVVBEQVRF
IHVwbG9hZGVkX2ZpbGVzIFNFVCBmaWxlX2RlbGV0ZWRfYXQgPSBub3coKSBhdCB0aW1lIHpvbmUg
J3V0YydgKSk7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9m
aWxlcyBTRVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9JHt1cGxvYWRlZEZp
bGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RGb3VuZCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTExNywxNiArMTE2LDE2IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBoZWFk
ZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlz
KGhlYWRlcnMpLmluY2x1ZGVzKCdldGFnJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhl
YWRlcnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snZXRhZyddLCB1cGxvYWRlZEZpbGVbJ3NoYTI1NiddKTsK
IAogICAgICAgICAgICAgYXNzZXJ0KE9iamVjdC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdhY2Nl
cHQtcmFuZ2VzJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1y
YW5nZXMnXSwgJ2J5dGVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVy
c1snYWNjZXB0LXJhbmdlcyddLCAnYnl0ZXMnKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVj
dC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdjb250ZW50LWRpc3Bvc2l0aW9uJykpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXSwgYGF0dGFj
aG1lbnQ7IGZpbGVuYW1lKj11dGYtOCcnc29tZS5kYXRgKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBm
aWxlbmFtZSo9dXRmLTgnJ3NvbWUuZGF0YCk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qu
a2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnY29udGVudC1sZW5ndGgnKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSwgdXBsb2FkZWRGaWxlWydzaXpl
J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtbGVu
Z3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKIAogICAgICAgICAgICAgYXNzZXJ0KE9iamVj
dC5rZXlzKGhlYWRlcnMpLmluY2x1ZGVzKCdsYXN0LW1vZGlmaWVkJykpOwogICAgICAgICB9KTsK
QEAgLTE0NCw3ICsxNDMsNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgbGFzdE1vZGlmaWVkID0gcmVzcG9uc2UuaGVhZGVyc1snbGFz
dC1tb2RpZmllZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwg
bnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2UuaGVhZGVyc1snbGFzdC1tb2RpZmllZCddLCBsYXN0TW9kaWZpZWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3Qt
bW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1
Niw5ICsxNTUsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1
ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRl
cnM6IHsnUmFuZ2UnOiAnYnl0ZXM9NS0nfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA1LTExLzEy
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnY29u
dGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVu
dC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE3MCw5ICsxNjksOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwg
bnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9NC05J319KTsKICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5o
ZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAn
Ynl0ZXMgNC05LzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9u
c2VUZXh0LCAnIGNvbnRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFk
ZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA0LTkvMTInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICcgY29udGUnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE4NCw5ICsxODMsOSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRl
ZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VU
JywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTQnfX0pOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJl
c3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJh
bmdlJ10sICdieXRlcyA4LTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2UucmVzcG9uc2VUZXh0LCAndGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOC0xMS8xMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3RlbnQnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5OCw5ICsxOTcsOSBAQCBkZXNjcmliZSgnL2FwaS91
cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1g
LCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9LTEwMCd9fSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFk
ZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2Nv
bnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDAtMTEvMTInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDAtMTEv
MTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRl
eHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsy
MDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaWQgPSByZXNw
b25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAs
ICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVyczogeydSYW5nZSc6ICdieXRlcz0xMi0nfX0pCi0g
ICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3NlcnQuZXF1YWwoZXJyb3IsIDQxNikpOworICAgICAg
ICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCA0MTYpKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTIyMCw3ICsyMTksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewogICAgICAgICAgICAgY29uc3QgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVl
c3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsLCB7aGVhZGVy
czogeydSYW5nZSc6ICdieXRlcz0yLTEnfX0pCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4g
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKSwgKGVycm9yKSA9PiBhc3Nl
cnQuZXF1YWwoZXJyb3IsIDQxNikpOworICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2Vy
dChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LnN0
cmljdEVxdWFsKGVycm9yLCA0MTYpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIzMiwx
NSArMjMxLDE1IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBpZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2Fw
aS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9u
c2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRl
ZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRl
cnM6IHsnUmFuZ2UnOiAnYnl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVy
c1snbGFzdC1tb2RpZmllZCddfX0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewog
ICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwg
J2J5dGVzIDktMTAvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZS5yZXNwb25zZVRleHQsICdlbicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjUyLDE1
ICsyNTEsMTUgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBp
L3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25z
ZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVk
LWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICB7aGVhZGVy
czogeydSYW5nZSc6ICdieXRlcyA9IDktMTAnLCAnSWYtUmFuZ2UnOiByZXNwb25zZS5oZWFkZXJz
WydldGFnJ119fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAg
ICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0x
MC8xMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCwgJ2VuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzIsMTMgKzI3MSwxMyBA
QCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgaWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQt
ZmlsZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3Nv
bWUgY29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lk
fWAsICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHsnUmFuZ2UnOiAnYnl0ZXMg
PSA5LTEwJywgJ0lmLVJhbmdlJzogJ2Zvbyd9KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVz
cG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0z
MDMsNyArMzAyLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5kQnl0ZSAtIHN0YXJ0Qnl0ZSAr
IDE7IGkrKykgewogICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IHJlc3BvbnNlQnVmZmVy
W2ldOwogICAgICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYnVmZmVyW3N0YXJ0Qnl0ZSAr
IGldOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBgVGhl
IGJ5dGUgYXQgaW5kZXggJHtpfSBzaG91bGQgYmUgaWRlbnRpY2FsLiBFeHBlY3RlZCAke2V4cGVj
dGVkfSBidXQgZ290ICR7YWN0dWFsfWApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhY3R1YWwsIGV4cGVjdGVkLCBgVGhlIGJ5dGUgYXQgaW5kZXggJHtpfSBzaG91bGQgYmUg
aWRlbnRpY2FsLiBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTMxNSw4ICszMTQsOCBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtoZWFkZXJz
OiB7J1JhbmdlJzogYGJ5dGVzID0gJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX1gfSwgcmVzcG9uc2VI
YW5kbGVyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhl
YWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgYGJ5dGVzICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9LyR7
ZmlsZVNpemV9YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydj
b250ZW50LXJhbmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXpl
fWApOwogICAgICAgICAgICAgdmVyaWZ5QnVmZmVyKCk7CiAgICAgICAgIH0pOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcwppbmRleCAxNGU5NDU2ZDJlNjdhNWM3MTAwMTIwYjE1NDY0ODBjMjcxNmRlYmY0Li5iMTA3
NDlhMGQxZTkwMzhlMWZiMmU5MTM5MzRhNjNhYTIyNTBkZDVlIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwpAQCAtNzksNyAr
NzksNyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0UmV2
aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93ID0gYXdh
aXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0
Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAgIGNvbnN0
IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29u
ZmlnUm93WydpZCddfSk7CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsK
KyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBjb25zdCBj
b250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lz
LXRhc2snLCB7CiAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVu
c1swXVsnaWQnXSwKQEAgLTE0MCwyMyArMTQwLDIzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvYWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGF3YWl0IFByaXZp
bGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywgeydncm91cCc6IGluc2Vy
dGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogdHJ1ZX0pOwogCiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lk
J10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJl
cGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmluaXRpYWxS
ZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
bWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpKSwgMik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpLCAyKTsK
IAogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVx
dWVzdHMnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KTsKIAogICAgICAg
ICBjb25zdCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1
bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ucmVwZXRp
dGlvbkNvdW50KCksIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5p
bml0aWFsUmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
bWF5TmVlZE1vcmVSZXF1ZXN0cygpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHVwZGF0ZWRHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCkpLCA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0
aXRpb25Db3VudCgpKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwogICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBv
ZiB1cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RlZENvbW1pdFNldHMoKSkgewogICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0cyA9IHVwZGF0ZWRHcm91cHNbMF0ucmVxdWVzdHNGb3JDb21taXRT
ZXQoY29tbWl0U2V0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogICAgICAgICB9CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsK
IAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpKSwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChncm91cC5pbml0aWFsUmVwZXRp
dGlvbkNvdW50KCkpLCAyKTsKICAgICAgICAgYXdhaXQgZ3JvdXAudXBkYXRlSGlkZGVuRmxhZyh0
cnVlKTsKIAogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbm5vdEFkZFRvSGlkZGVuVGVz
dEdyb3VwJywgYXN5bmMgKCkgPT4gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRk
LWJ1aWxkLXJlcXVlc3RzJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSkp
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFz
ay10ZXN0cy5qcwppbmRleCA5OTZkMmRkMzJkNzZiYTU0NzUzZTYzOWZmOGFmOWIzNTZmMjc5N2Q4
Li4wZTY4NjFiN2VjNmJlYmU1NTJhNjRkODczZmU1NzY2YjVkMTE3NDJmIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMK
QEAgLTExMyw3ICsxMTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFs
eXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7fSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdNaXNzaW5nTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGVycm9yLCAnTWlzc2luZ05hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFs
eXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFt
ZTogJ2hpJywgZW5kUnVuOiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1
bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZp
bGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnSW52YWxpZEVuZFJ1bicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTM3LDcgKzEzNyw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1l
OiAnaGknLCBzdGFydFJ1bjogImZvbyIsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
SW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE0NSw3ICsx
NDUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdp
dGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3Rh
cnRSdW46IDEsIGVuZFJ1bjogImZvbyJ9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRFbmRS
dW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRFbmRS
dW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2
aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxMDAs
IGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0
UnVuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxp
ZFN0YXJ0UnVuJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0x
NjgsNyArMTY4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1l
OiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAxMDB9KS50aGVuKChjb250ZW50KSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlcnJvciwgJ0ludmFsaWRFbmRSdW4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC0xODAsNyArMTgwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4K
ICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5h
bHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMSwgZW5kUnVuOiAxfSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGltZVJhbmdlJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTkyLDcgKzE5Miw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2Vy
IHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46
IDEsIGVuZFJ1bjogMn0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUnVuQ29uZmln
TWlzbWF0Y2gnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdS
dW5Db25maWdNaXNtYXRjaCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtMjEyLDIwICsyMTIsMjAgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAg
fSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93
cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0
ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQn
XSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogICAgICAgICB9KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50
Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0pLnRoZW4oKHRhc2spID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2hpJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGFzay5uYW1lKCksICdoaScpOwogICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jl
c3VsdHMoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRm
b3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0
KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNDQsMjIg
KzI0NCwyMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
IHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25m
aWdSb3cpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMn
LCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRh
c2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRl
c3RSdW5zWzFdWydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsK
ICAgICAgICAgfSkudGhlbigodGFzaykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2submFtZSgpLCAnaGknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5h
bWUoKSwgJ2hpJyk7CiAgICAgICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAg
ICAgICAgICAgIGFzc2VydCghdGFzay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFu
Z2VUeXBlKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0o
KS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5NjAwOTEwMDApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2suZW5kVGltZSgpLCAxNDQ1OTY2ODYxMDAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwo
KSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5zdGFydFRp
bWUoKSwgMTQ0NTk2MDA5MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5lbmRUaW1lKCksIDE0NDU5NjY4NjEwMDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MjgwLDcgKzI4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4o
KGNvbmZpZ1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3Rf
cnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0
UnVucykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAg
ICAgICAgICAgIHN0YXJ0SWQgPSB0ZXN0UnVuc1swXVsnaWQnXTsKICAgICAgICAgICAgIGVuZElk
ID0gdGVzdFJ1bnNbMV1bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46
IHN0YXJ0SWQsIGVuZFJ1bjogZW5kSWR9KTsKQEAgLTI4OCwxMiArMjg4LDEyIEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZp
bGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IHN0YXJ0
SWQsIGVuZFJ1bjogZW5kSWR9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRHVwbGljYXRlQW5h
bHlzaXNUYXNrJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
RHVwbGljYXRlQW5hbHlzaXNUYXNrJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdhbmFseXNpc190YXNr
cycpOwogICAgICAgICB9KS50aGVuKCh0YXNrcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2tzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
a3MubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMxMiw3ICszMTIsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJv
d3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmln
OiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAg
ICAgICAgICAgICAgICAgbmFtZTogJ2hpJywKICAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVz
dFJ1bnNbMF1bJ2lkJ10sCkBAIC0zMzAsOCArMzMwLDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBm
dW4KICAgICAgICAgICAgIGZvciAobGV0IHN0cmF0ZWd5IG9mIHN0cmF0ZWdpZXMpCiAgICAgICAg
ICAgICAgICAgc3RyYXRlZ3lJZE1hcFtzdHJhdGVneVsnaWQnXV0gPSBzdHJhdGVneTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1snc2VnbWVudGF0aW9u
J11dWyduYW1lJ10sICJ0aW1lIHNlcmllcyBzZWdtZW50YXRpb24iKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3Rlc3RfcmFuZ2UnXV1bJ25hbWUnXSwg
InN0dWRlbnQncyB0LXRlc3QiKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdHJh
dGVneUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSddLCAidGltZSBzZXJpZXMg
c2VnbWVudGF0aW9uIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJ
ZE1hcFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3MgdC10ZXN0Iik7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDYsNyArMzQ2LDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5
TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBk
Yi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1l
dHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAg
Y29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmln
OiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0
aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwog
CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdl
YmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM3MSw3ICszNzEsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBw
cml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZp
bmRCeU5hbWUoJ3NvbWUgcGxhdGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdh
aXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0
MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAg
Y29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmln
OiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0
aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwog
CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAgIGNvbnN0IHdl
YmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTM4NywxOCArMzg3LDE4IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2Vy
IHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CiAK
ICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVu
dFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJt
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsK
ICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCghdGFz
ay5oYXNQZW5kaW5nUmVxdWVzdHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5i
dWdzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAog
ICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrLmlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDApOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDApOwogICAgIH0p
OwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYW4gYW5hbHlzaXMgdGFzayB3aXRoIHRlc3QgZ3Jv
dXAgd2hlbiBjb21taXQgc2V0IGxpc3QgYW5kIGEgcG9zaXRpdmUgcmVwZXRpdGlvbiBjb3VudCBp
cyBzcGVjaWZpZWQnLCBhc3luYyAoKSA9PiB7CkBAIC00MjYsNyArNDI2LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmls
ZWdlZCBhcGknLCBmdW4KICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRC
eUlkKHBsYXRmb3JtSWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxl
Y3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3Mo
KVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3Qg
dGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25m
aWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAg
ICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYy
Mid9fTsKICAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHty
ZXZpc2lvbjogJzE5MTYyMyd9fTsKQEAgLTQzNiwzOCArNDM2LDM4IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQg
YXBpJywgZnVuCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1
bjogdGVzdFJ1bnNbMV1bJ2lkJ119KTsKIAogICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5h
bHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2submFtZSgpLCAnY29uZmlybScpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0
cygpKTsKICAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2su
Zml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51
bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21l
IHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5s
YWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1
Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCks
IFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBw
bGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0
KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwog
ICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAg
ICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlk
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5p
ZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdn
ZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91
cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91
cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0o
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3Jt
KCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFz
ay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5h
bHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAgICBhc3NlcnQub2soIWJ1
aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVl
c3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00NzcsOCArNDc3LDggQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGkn
LCBmdW4KICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVlc3RzWzBdLmNv
bW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWlsZFJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gUmVwb3Np
dG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChmaXJzdENvbW1p
dFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcx
OTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnko
d2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVw
b3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogfSk7CiAKQEAgLTUwMCw3
ICs1MDAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
IHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBzb21lUGxh
dGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21lIHBsYXRmb3JtJyk7CiAgICAgICAgIGNv
bnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRp
b25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxh
dGZvcm0uaWQoKX0pOwogICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJv
d3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RSdW5zLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeVJv
dyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCdyZXBvc2l0b3JpZXMnLCB7bmFtZTogJ1dlYktp
dCd9KTsKICAgICAgICAgY29uc3Qgd2Via2l0SWQgPSB3ZWJraXRSZXBvc2l0b3J5Um93LmlkOwpA
QCAtNTQ4LDcgKzU0OCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGxldCBz
b21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKICAgICAgICAgY29u
c3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlv
bnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0
Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93
cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtb
d2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAgIGNvbnN0IGFub3RoZXJS
ZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CkBAIC01NTgs
MzggKzU1OCwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10
YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICAgICAgc3RhcnRS
dW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddfSk7CiAKICAg
ICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsn
dGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAg
ICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhh
c1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3Mo
KSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRh
c2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNr
LnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2su
aWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXAu
bmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdn
ZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxl
KCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlk
KTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXAoKSwg
dGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdy
b3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKIAotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNr
LnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOwogCi0gICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2su
aWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFz
a0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0
MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxkKCkpOwpAQCAtNTk5LDgg
KzU5OSw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sg
d2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGNvbnN0IGZpcnN0Q29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgY29uc3Qgc2Vj
b25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKICAgICAgICAgY29u
c3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0SWQpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJr
aXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5y
ZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCks
ICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMn
KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0
aCB0ZXN0IGdyb3VwIGFuZCByZXNwZWN0IHRoZSAibmVlZHNOb3RpZmljYXRpb24iIGZsYWcgaW4g
dGhlIGh0dHAgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKQEAgLTYyOCw3ICs2MjgsNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0u
ZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRi
LnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0
cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwogICAgICAgICBj
b25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6
IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAK
ICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAn
MTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElk
XToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNjM4LDM4ICs2MzgsMzggQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdl
ZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwg
ZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAog
ICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50
Wyd0YXNrSWQnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0n
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOwog
ICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKICAgICAgICAgYXNzZXJ0KHRhc2su
aGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVn
cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
dGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
ay5pZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5uYW1lKCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOwogICAgICAgICBhc3NlcnQub2sodGVzdEdyb3Vw
Lm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMu
bGVuZ3RoLCAyKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmln
Z2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJs
ZSgpLmlkKCkpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJ
ZCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCks
IHRlc3RHcm91cCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RH
cm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFz
ay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNr
LmlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rh
c2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVz
dDEpOwogCiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwog
ICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTY3OSw3
ICs2NzksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNr
IHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNl
Y29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNv
bnN0IHdlYmtpdFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Vi
a2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSku
cmV2aXNpb24oKSwgJzE5MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RD
b21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigp
LCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIz
Jyk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCmluZGV4IDA5Y2QzN2FiNDM2Y2IzYTdiYjdjYjhmODQ5YmNh
OWRlMjI3YzE0NDEuLmM4NGYzNDRhZmY2ZDFiYWNlMGQ0YmYyMDFhYjE0ZTQxN2U4MGEwZDcgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0
cy5qcwpAQCAtODMsNyArODMsNyBAQCBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwg
d2Via2l0UmV2aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgfSkudGhlbigoY29u
ZmlnUm93KSA9PiB7CiAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7
Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKICAgICB9KS50aGVuKCh0ZXN0UnVucykgPT4gewot
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKICAgICAgICAgICAg
IG5hbWU6IG5hbWUsCiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBA
IC0xMzcsNyArMTM3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAg
IH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxp
ZE5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRO
YW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
Jywge25hbWU6ICd0ZXN0JywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250ZW50KSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwg
J0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJ
bnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTUzLDcgKzE1Myw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVz
dC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6ICdmb28nLCBjb21taXRTZXRzOiBbWzFdXX0p
LnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBu
ZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNjEsNyArMTYxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVz
dC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVw
ZXRpdGlvbkNvdW50OiAxfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNl
dHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAxLCByZXBldGl0aW9uQ291bnQ6IDEsIGNvbW1pdFNldHM6
IHt9fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rl
c3QnLCB0YXNrOiAxLCByZXBldGl0aW9uQ291bnQ6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0Jzog
W119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE4NSw3ICsxODUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAx
LCByZXBldGl0aW9uQ291bnQ6ICdmb28nLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRo
ZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMTkzLDcgKzE5Myw3IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVy
biBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAn
dGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDogLTUsIGNvbW1pdFNldHM6IHsnV2ViS2l0
JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNvdW50Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmVwZXRpdGlvbkNv
dW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMDEsNyArMjAxLDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3Vw
Jywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2
ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNr
SWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMjAsNyArMjIwLDcgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29tbWl0U2V0czogeydX
ZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJv
cikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRDb21t
aXRTZXRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52
YWxpZENvbW1pdFNldHMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTIzMSw3ICsyMzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0
LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFz
a0lkLCByZXZpc2lvblNldHM6IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ319
LCB7fV19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNl
dHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
UmV2aXNpb25TZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC0yNDIsNyArMjQyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJ
ZCwgcmV2aXNpb25TZXRzOiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fV19
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXZpc2lvblNldHMnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNp
b25TZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yNTIs
NyArMjUyLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgY29t
bWl0U2V0czogeydGb28nOiBbXX19KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAg
IH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1Jl
cG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChl
cnJvciwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtMjYyLDcgKzI2Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3Qn
LCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogWycxJ119fSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjc0LDcgKzI3NCw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2
ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI4Niw3ICsyODYsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10
ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnQW1iaWd1b3VzUmV2aXNpb24n
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTI5OCw3ICsyOTgs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNl
dHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZv
dW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMTAsNyAr
MzEwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0
KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNp
b25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVXBsb2FkZWRG
aWxlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxp
ZFVwbG9hZGVkRmlsZScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMzIxLDcgKzMyMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNr
SWQsIHJldmlzaW9uU2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxp
ZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Is
ICdJbnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtMzMxLDcgKzMzMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNr
OiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ10sICdt
YWNPUyc6IFsnMTVBMjg0J119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZh
bGlkQ29tbWl0U2V0cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0zNDUsNyArMzQ1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXJyb3IsICdEdXBsaWNhdGVUZXN0R3JvdXBOYW1lJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzYyLDcgKzM2Miw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkT3duZXJSZXZpc2lvbicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3OCw3ICszNzgsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdE93bmVyc2hpcCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdE93bmVyc2hpcCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMzkzLDE3ICszOTMsMTcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIyJ30sIFttYWNvcy5pZCgpXToge3Jl
dmlzaW9uOiAnMTVBMjg0J30sIFtvd25lZEpTQy5pZCgpXToge3JldmlzaW9uOiAnb3duZWQtanNj
LTkxOTEnLCBvd25lclJldmlzaW9uOiAnMTkyNzM2J319XTsKICAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIHRhc2s6IHRhc2tJZCwgcmVwZXRpdGlvbkNvdW50OiAxLCByZXZpc2lvblNldHN9KTsKICAg
ICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b250ZW50WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBncm91cElkID0gY29udGVudFsn
dGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29u
c3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LmlkKCksIGdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgp
LCBncm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAg
ICAgICAgYXNzZXJ0KHJlcXVlc3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IXJlcXVlc3RzWzBdLmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0c1sxXS5p
c0J1aWxkKCkpOwpAQCAtNDE4LDE0ICs0MTgsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IG93
bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJ
ZCgpKTsKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3Nd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtp
dCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQt
anNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQt
anNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBb
b3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTkxOTEnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQ0MCwxNyAr
NDQwLDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1ttYWNvcy5pZCgpXToge3JldmlzaW9uOiAn
MTVBMjg0J30sIFtqc2MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJS
ZXZpc2lvbjogJzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNr
SWQsIHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElk
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChy
ZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1swXS5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAg
LTQ2NSwxMyArNDY1LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBj
b25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBtYWNvc10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdP
bmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25l
ZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy05MTkxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00ODIsMjggKzQ4MiwyOCBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElk
J107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAg
ICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1h
Y29zUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
JzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBv
c2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIzJyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3Jv
dXAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgp
LCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCksIHJl
cG9zaXRvcnlHcm91cCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5h
Y2NlcHRzKHNldDApKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFj
Y2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC01MjEsMjQgKzUyMSwyNCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJr
aXRdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRv
cmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMycpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0g
cmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICd3ZWJraXQtb25seScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlH
cm91cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3VwLm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cCwgcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAg
ICAgICAgICAgIH0pOwpAQCAtNTUzLDMzICs1NTMsMzMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBp
bnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwg
aW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVw
ZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5u
YW1lKCkgPT0gJ1dlYktpdCcpWzBdOwogICAgICAgICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVw
b3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09
ICdtYWNPUycpWzBdOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBd
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29t
bWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNl
dDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFj
b3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnku
c29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dl
YmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5
R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwLm5h
bWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVw
b3NpdG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10u
cmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtp
dCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5yZXBv
c2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91
cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLnJlcG9z
aXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwogICAgICAgICAgICAgICAgIGFzc2VydChy
ZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJl
cG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAgICAgICAgICAgIH0pOwpAQCAtNjAwLDI4
ICs2MDAsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50
Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9u
Q291bnQoKSwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlm
aWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA0KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRT
ZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRC
eU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQs
IG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAy
ZTQzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2Zk
MWEyOWM2MzNiYTU3ZTg3OTUzMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdP
bmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3Nd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzJjZWRhNDVkM2NkNjNjZGU1OGQwZGJmNTc2NzcxNGUwM2Q5MDJl
NDMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICc1NDcxYThkZGMx
ZjY2MTY2M2NjZmQxYTI5YzYzM2JhNTdlODc5NTMzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcp
OwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMCA9IHJlcXVlc3RzWzBd
LnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91
cCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
MC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAo
KSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMSA9IHJlcXVlc3RzWzFd
LnJlcG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXAxLCByZXBvc2l0b3J5R3JvdXAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMSwgcmVwb3NpdG9yeUdyb3VwMCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAg
ICB9KTsKQEAgLTY0MiwzMiArNjQyLDMyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRH
cm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91
cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVk
R3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25D
b3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vaygh
Z3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVx
dWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVl
c3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVz
KCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmll
cygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5y
ZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3VwMC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAo
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAu
bmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydCghcmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDEp
KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sx
XS5yZXBvc2l0b3J5R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3VwMS5uYW1lKCksICd3ZWJraXQtb25seScpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXAxLCByZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDEubmFt
ZSgpLCAnd2Via2l0LW9ubHknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3VwMSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAg
ICAgICAgICAgIGFzc2VydCghcmVwb3NpdG9yeUdyb3VwMS5hY2NlcHRzKHNldDApKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMS5hY2NlcHRzKHNldDEpKTsKICAgICAg
ICAgICAgIH0pOwpAQCAtNjkxLDI4ICs2OTEsMjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAgICAg
ICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQ
cmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29z
XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCks
IFtdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwg
bWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9v
dHMoKSwgW1VwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1
cGxvYWRlZEZpbGUpXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnko
d2Via2l0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRv
cnkobWFjb3MpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQo
KSwgc2V0MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNd
LmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbVXBsb2Fk
ZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZEZpbGVbJ2lkJ10sIHVwbG9hZGVkRmlsZSld
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFs
cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC03NDAsNTAgKzc0MCw1
MCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3Vw
SWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVk
c05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCks
IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRl
c3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNC
dWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVp
bGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNU
ZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rl
c3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVz
dCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3Qo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJd
LmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgp
LCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNl
dCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNl
dDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5j
b21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbNV0uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBv
c2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwo
c2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9h
ZGVkRmlsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9y
UmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKICAgICAgICAg
ICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTgwNSw2MCArODA1LDYwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250
ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQu
b2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRm
b3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVz
dHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0u
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1p
dFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21t
aXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29t
bWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9t
Um9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNv
cnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFtqc2Ms
IHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0
b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSht
YWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQo
KSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uY29t
bWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBv
c2l0b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSht
YWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAg
IGFzc2VydC5vayghc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRy
dWUpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwpAQCAtODgwLDYxICs4ODAsNjEgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVk
R3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVU
ZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxh
dGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwog
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCks
IGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlz
VGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
MV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0
IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEg
PSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9z
aXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVw
b3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
J293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZv
clJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAn
MTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgp
LCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNj
LCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNv
cyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2Mp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVw
b3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC05NjMsNjggKzk2Myw2OCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0g
Y29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmlu
ZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElk
KCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQ
bGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMF0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1sxXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOwor
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3Qo
KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sz
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzVdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJl
cXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3Rz
WzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNv
bW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5j
b21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
Y29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVd
LmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3Np
dG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkp
LCBbanNjLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMo
KSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1
aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29z
KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9y
UmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JS
ZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNj
LTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5jb21taXRT
ZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0u
Y29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQxLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOworCisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVw
b3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
JzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNC
dWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAg
ICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTEwNTcsNzcgKzEwNTcsNzcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9
IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElk
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0
LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwg
UGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsK
KworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0
KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5p
c1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNb
M10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSBy
ZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0
c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5j
b21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10u
Y29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRd
LmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9z
aXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygp
KSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJl
cG9zaXRvcmllcygpKSwgW2pzYywgb3duZWRKU0MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVl
KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBm
YWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkx
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVp
bGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwg
J2pzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ2pzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZv
clJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNl
dDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBb
b3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDEucmVwb3NpdG9yaWVzKCkpLCBbb3duZWRKU0MsIGpzYywgd2Via2l0LCBtYWNvc10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtd
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5w
YXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyks
IGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
b3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MjczNicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgdHJ1ZSk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAn
anNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShqc2MpLCBmYWxzZSk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxz
KHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMTU0LDQ1ICsxMTU0LDQ1IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
ICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRH
cm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZp
Y2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5m
aW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAudGVzdCgpLCBU
ZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAu
YnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sy
XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBj
b25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChz
ZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQx
LnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9z
aXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNd
LmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1s0XS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJl
cG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1
QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29z
KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQoIXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGVycm9yLCAnUGF0Y2hOb3RBY2NlcHRlZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTIzMCwyNCArMTIzMCwyNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQg
PSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywg
dGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChy
ZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCdd
LCB0cnVlKV0pOwotICAgICAgICBhc3NlcnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290
aGVyIHRhc2snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1l
KCksICdvdGhlciB0YXNrJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgIGFzc2VydC5vayhncm91cC5u
ZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWls
ZFJlcXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAg
ICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
ZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEu
Y3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKICAgICBpdCgn
c2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIG5lZWRzLW5vdGlmaWNh
dGlvbiBmbGFnIHVuc2V0JywgYXN5bmMgKCkgPT4gewpAQCAtMTI1OSwyNCArMTI1OSwyNCBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107
CiAKICAgICAgICAgY29uc3QgW2FuYWx5c2lzVGFzaywgdGVzdEdyb3Vwc10gPSBhd2FpdCBQcm9t
aXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1bHRbJ3Rhc2tJZCddKSwgVGVzdEdy
b3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKV0pOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3Rz
WzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10p
OwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRd
KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQw
LnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBjdXN0b20g
dGVzdCBncm91cCBmb3IgYW4gZXhpc3RpbmcgY3VzdG9tIGFuYWx5c2lzIHRhc2snLCAoKSA9PiB7
CkBAIC0xMjk2LDQzICsxMjk2LDQ0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge25hbWU6ICd0ZXN0
MicsIHRhc2s6IHJlc3VsdFsndGFza0lkJ10sIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRm
b3JtSWQoKSwgdGVzdCwgcmV2aXNpb25TZXRzLCByZXBldGl0aW9uQ291bnQ6IDJ9KTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBzZWNvbmRSZXN1bHQgPSByZXN1
bHQ7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RSZXN1bHRbJ3Rhc2tJZCddLCBzZWNv
bmRSZXN1bHRbJ3Rhc2tJZCddKTsKKyAgICAgICAgICAgIC8vIHBnIGZ1bnRpb25zIHdpbGwgcmV0
dXJuIGFsbCBkYXRhIGFzIHN0cmluZywgc28gd2UgbmVlZCBtYWtlIHN1cmUgdGhhdCB3ZSBjb21w
YXJlIGFzIGludAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGZpcnN0
UmVzdWx0Wyd0YXNrSWQnXSksIHBhcnNlSW50KHNlY29uZFJlc3VsdFsndGFza0lkJ10pKTsKICAg
ICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbQW5hbHlzaXNUYXNrLmZldGNoQnlJZChyZXN1
bHRbJ3Rhc2tJZCddKSwgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gcmVzdWx0OwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKICAgICAgICAg
ICAgIFRlc3RHcm91cC5zb3J0QnlOYW1lKHRlc3RHcm91cHMpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3Vwc1swXS5uYW1lKCksICd0ZXN0MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cHNbMF0ucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzBdLnJlcGV0aXRpb25Db3Vu
dCgpLCAxKTsKICAgICAgICAgICAgIGxldCByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMF0uYnVpbGRS
ZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAg
ICAgICAgICAgIGxldCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAg
ICBsZXQgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIzJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
WzFdLm5hbWUoKSwgJ3Rlc3QyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
c1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHNbMV0ubmFtZSgpLCAndGVzdDInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzWzFdLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKICAgICAgICAgICAgIHJlcXVlc3RzID0gdGVzdEdyb3Vwc1sxXS5idWlsZFJlcXVl
c3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAg
ICAgICAgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgc2V0MSA9
IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQxLmN1c3RvbVJv
b3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0
ZS1ydW4tc3RhdHVzLmpzCmluZGV4IDQzYjQwN2VjYTlkZDAyOWRhYWFiODQ2MzdhNmRjMTI1NjNk
ZjE1OTEuLmI1N2EwMjExZTY4N2Y5YTNjNzI3NGM3NzQ5YjZkNWUxZmZhYWRhMWEgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
dXBhdGUtcnVuLXN0YXR1cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMKQEAgLTM5LDEzICszOSwx
MyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2
aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVj
dEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9uX2Nv
dW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3Nb
MF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIGlkID0gcnVuUm93c1sw
XVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9r
ZW4oKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01MywxMCArNTMsMTAgQEAgZGVzY3Jp
YmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0
ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNo
ZSddLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJr
ZWRfb3V0bGllciddLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY1LDExICs2
NSwxMSBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRo
UmV2aXNpb25bMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgUmVtb3RlQVBJLmNsZWFyQ29va2ll
cygpOwpAQCAtNzcsNyArNzcsNyBAQCBkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1y
dW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAg
IH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxp
ZFRva2VuJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlk
VG9rZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTg1LDE4ICs4NSwxOCBAQCBkZXNj
cmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwg
ZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tl
bigpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBSZW1vdGVB
UEkucG9zdEpTT05XaXRoU3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMn
LCB7dG9rZW46ICdiYWQnfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTA1LDIzICsxMDUsMjMgQEAgZGVzY3JpYmUo
Ii9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVu
cycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4n
OiBydW5Sb3dzWzBdWydpZCddLCAnbWFya2VkT3V0bGllcic6IHRydWV9KTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMn
KTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dz
WzBdWydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm4g
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1zdGF0dXMnLCB7J3J1bic6IHJ1
blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVyJzogZmFsc2V9KTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsK
ICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBd
WydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1
blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3Vw
LXRlc3RzLmpzCmluZGV4IDAyMTE2ZWQ4ZDhiYmU5MjBkYmYxOGQ2MTdlOGY5NTkzMmM3ODM1OTku
LjIyZmQwZmVjNmUzNGIxOGJjMjFhOWRiZGE1YjlhMTVjMTQ2YTg1OTAgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRl
LXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtNzks
NyArNzksNyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmFseXNpc1Rhc2sobmFtZSwgd2Via2l0
UmV2aXNpb25zID0gWyIxOTE2MjIiLCAiMTkxNjIzIl0pCiAgICAgY29uc3QgY29uZmlnUm93ID0g
YXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0
ZXN0Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogcGxhdGZvcm0uaWQoKX0pOwogICAgIGNv
bnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzog
Y29uZmlnUm93WydpZCddfSk7CiAKLSAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAy
KTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICBjb25z
dCBjb250ZW50ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5
c2lzLXRhc2snLCB7CiAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0
UnVuc1swXVsnaWQnXSwKQEAgLTE2NSwyMCArMTY1LDIwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNl
cnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwg
dHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5uZWVkc05vdGlmaWNh
dGlvbigpLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVkc05v
dGlmaWNhdGlvbigpLCB0cnVlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRp
b25TZW50QXQoKSk7CiAKICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU2VudEF0ID0gbmV3IERh
dGU7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0
LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZpY2F0aW9uOiBmYWxz
ZSwgbm90aWZpY2F0aW9uU2VudEF0OiBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKX0p
OwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBk
YXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vw
c1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1
cGRhdGVkR3JvdXBzWzBdLm5vdGlmaWNhdGlvblNlbnRBdCgpLnRvSVNPU3RyaW5nKCksIG5vdGlm
aWNhdGlvblNlbnRBdC50b0lTT1N0cmluZygpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVw
ZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5ub3RpZmljYXRpb25TZW50QXQoKS50b0lT
T1N0cmluZygpLCBub3RpZmljYXRpb25TZW50QXQudG9JU09TdHJpbmcoKSk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBkYXRlICJuZWVkc19ub3RpZmljYXRpb24iIGZp
ZWxkIHRvIHRydWUnLCBhc3luYyAoKSA9PiB7CkBAIC0xOTAsMTggKzE5MCwxOCBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAg
ICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAg
ICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3Vs
dFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5l
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
bmVlZHNOb3RpZmljYXRpb24oKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFn
cm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAKICAgICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJ
ZCwgbmVlZHNOb3RpZmljYXRpb246IHRydWV9KTsKIAogICAgICAgICBjb25zdCB1cGRhdGVkR3Jv
dXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVl
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1
ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZp
Y2F0aW9uKCksIHRydWUpOwogICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5vdGlmaWNhdGlvblNl
bnRBdCgpKTsKICAgICB9KTsKIApAQCAtMjE0LDEwICsyMTQsMTAgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0
IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25z
dCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJ
ZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1h
eU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgICAgICBhc3NlcnQub2so
IWdyb3VwLm5vdGlmaWNhdGlvblNlbnRBdCgpKTsKIAogICAgIH0pOwpAQCAtMjMxLDIyICsyMzEs
MjIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3Vw
SWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2Up
OwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0
LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IHRy
dWV9KTsKIAogICAgICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRj
aEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1
cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3Jv
dXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAKICAg
ICAgICAgYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAn
LCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwgbWF5TmVlZE1vcmVSZXF1ZXN0czogZmFsc2V9KTsK
IAogICAgICAgICB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhy
ZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91
cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5
TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1
cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogICAgIH0pOwogCiAg
ICAgaXQoJ3Nob3VsZCBjbGVhciAibWF5X25lZWRfbW9yZV9yZXF1ZXN0cyIgd2hlbiBoaWRpbmcg
YSB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewpAQCAtMjU4LDIyICsyNTgsMjIgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAg
ICAgIGNvbnN0IGluc2VydGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAg
ICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1
bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2UpOwogCiAgICAgICAg
IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dy
b3VwOiBpbnNlcnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAogICAg
ICAgICBsZXQgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVz
dWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5l
ZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRh
dGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVk
R3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgdHJ1ZSk7CiAKICAgICAgICAgYXdhaXQg
UHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXRlc3QtZ3JvdXAnLCB7Z3JvdXA6IGlu
c2VydGVkR3JvdXBJZCwgaGlkZGVuOiB0cnVlfSk7CiAKICAgICAgICAgdXBkYXRlZEdyb3VwcyA9
IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFsc2Up
OwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRlbigpLCB0cnVl
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubWF5TmVlZE1vcmVS
ZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3Jv
dXBzWzBdLmlzSGlkZGVuKCksIHRydWUpOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMu
anMKaW5kZXggZTBmOGEyOGRmZTYxMzEyODlhOTI2MTY5ZDExODkxNjkwYmRmYWZiMC4uNDdlOTM4
YTIzMzQ5ODkyNzRhMWI5MGI3ZWFkNzE0OWE3ZDA5ODRkOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxvYWQtZmlsZS10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzCkBAIC0yNyw3ICsyNyw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHt9LCB7dXNlRm9y
bURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdOb0ZpbGVTcGVjaWZpZWQnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTM2LDcgKzM2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNl
Rm9ybURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFs
c2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVMaW1pdEV4
Y2VlZGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmls
ZVNpemVMaW1pdEV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CkBAIC01MSwxNSArNTEsMTUgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQt
ZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNl
Wyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9h
ZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxlLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZS5zaXplKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUuZmlsZW5hbWUpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5
MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUuc2hhMjU2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxl
LmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5z
aXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5zaXpl
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3Nv
bWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFt
ZSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3
YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC03OSwxNiArNzksMTYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIg
PSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0
QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmls
ZTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmlkLCB1cGxvYWRlZEZpbGUxLmlkKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVkRmlsZTEuc2l6
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRG
aWxlMS5maWxlbmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNp
b24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsICc1
MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNl
NmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9h
ZGVkRmlsZTEuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXBs
b2FkZWRGaWxlMSwgdXBsb2FkZWRGaWxlMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAxMDI0ICogMTAy
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXpl
KSwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5zaXplKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2
ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4
NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVw
bG9hZGVkRmlsZTEuc2hhMjU2KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEwOCwxNiAr
MTA4LDE2IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmls
ZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAn
aWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3
ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVwbG9hZGVkRmls
ZTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxvYWRl
ZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocm93
c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmls
ZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5h
bWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
ZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZi
ZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1Nik7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzksMjYgKzEzOSwyNiBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdXBs
b2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4o
KHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCh1cGxvYWRlZEZpbGUxLmlk
LCB1cGxvYWRlZEZpbGUyLmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxl
MS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5pZCwgdXBsb2FkZWRGaWxl
Mi5pZCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXBsb2FkZWRGaWxlMS5p
ZCwgdXBsb2FkZWRGaWxlMi5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uaWQs
IHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuaWQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzFdLmlkLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLmlkKSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1l
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIuZGF0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgdXBsb2FkZWRG
aWxlMi5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5m
aWxlbmFtZSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIuZmls
ZW5hbWUpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdElu
TUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXpl
LCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0u
c2l6ZSwgdXBsb2FkZWRGaWxlMi5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLnNpemUsIHJvd3NbMV0uc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVm
NzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5z
aGEyNTYsIHVwbG9hZGVkRmlsZTEuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMi5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSks
IHBhcnNlSW50KHVwbG9hZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVwbG9hZGVkRmlsZTIuc2l6
ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2l6ZSwgcm93c1sx
XS5zaXplKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1Niwg
JzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIx
Y2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1
NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUyLnNoYTI1Nik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHJvd3NbMV0uc2hhMjU2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmV4dGVuc2lvbiwgJy5kYXQnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCwxMiArMTcwLDEyIEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMn
LCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNpemUsIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLm1pbWUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5vdGhlci50YXIuZ3o1Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5leHRlbnNpb24sICcudGFyLmd6NScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQw
MjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBsaW1pdEluTUIgKiAx
MDI0ICogMTAyNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5taW1l
LCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjEx
NjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NSwxMyArMTk1LDEzIEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmls
ZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdLmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChy
b3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzFdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0u
ZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
Ml0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmls
ZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJv
d3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSkK
ICAgICB9KTsKIApAQCAtMjE3LDE0ICsyMTcsMTQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS91cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VG
b3JtRGF0YTogdHJ1ZX0pOwogICAgICAgICB9CiAgICAgICAgIGxldCByb3dzID0gYXdhaXQgZGIu
c2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5s
ZW5ndGgsIHNwbGl0Q291bnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5n
dGgsIHNwbGl0Q291bnQpOwogCiAgICAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IFRlbXBvcmFy
eUZpbGUubWFrZVRlbXBvcmFyeUZpbGVPZlNpemVJbk1CKCdsaW1pdC5kYXQnLCBsaW1pdEluTUIs
ICdhJyk7CiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1m
aWxlJywge25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pOwogICAgICAgICBy
b3dzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwocm93cy5sZW5ndGgsIHNwbGl0Q291bnQgKyAxKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50ICsgMSk7CiAgICAgICAgIGNvbnN0IGRl
bGV0ZWRGaWxlcyA9IHJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1snZGVsZXRlZF9hdCddKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGRlbGV0ZWRGaWxlcy5sZW5ndGgsIDE2KTsKICAgICB9KTsKIAogICAg
IGl0KCdzaG91bGQgbm90IHBydW5lIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQnLCBhc3lu
YyAoKSA9PiB7CkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91
cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9y
bURhdGE6IHRydWV9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnRmlsZVNpemVRdW90YUV4Y2Vl
ZGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnRmlsZVNp
emVRdW90YUV4Y2VlZGVkJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CkBAIC0zMTIsMTMgKzMxMiwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0
Y2gnKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5w
YXRjaCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gn
KTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQs
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUs
ICdvdGhlci5wYXRjaCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0u
ZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sy
XS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTM0NiwxMyArMzQ2LDEzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhl
bigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jvb3QudGFyLmd6Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1sxXS5kZWxldGVkX2F0LCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5vdGhlci5kYXQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5wYXRjaCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZGVsZXRlZF9hdCwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ3Jvb3Qu
dGFyLmd6Jyk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93c1sxXS5kZWxl
dGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzJdLmZp
bGVuYW1lLCAnYW5vdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzJdLmRlbGV0ZWRfYXQsIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzgy
LDcgKzM4Miw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
dXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJl
IHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJh
dGlvbnMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcwppbmRleCA1OGI1MTEzMTE5YmY2MTBjNDdlMjg0N2ZhMDcz
MDdlMWU1YWYyZjZmLi4xOWI5YzExZmYwY2YzYzRhZjNjOTI0M2E5MDMxOTQyOTYzZjM3NDUzIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwpAQCAtNTYsNyArNTYsNyBA
QCBhc3luYyBmdW5jdGlvbiBhc3NlcnRUaHJvd3MoZXhwZWN0ZWRFcnJvciwgdGVzdEZ1bmN0aW9u
KQogICAgICAgICAgICAgYXdhaXQgdGVzdEZ1bmN0aW9uKCkKICAgICB9IGNhdGNoKGVycm9yKSB7
CiAgICAgICAgIHRocm93bkV4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgZXhwZWN0ZWRFcnJvcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
ZXhwZWN0ZWRFcnJvcik7CiAgICAgfQogICAgIGFzc2VydC5vayh0aHJvd25FeGNlcHRpb24pOwog
fQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNv
dXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwppbmRleCA3Yjg0YjI0YmZlNmE4ODM3
ZWVjNzQyN2M4NzYwZTRiMjAxZGRiMGM3Li4yNjJiMmZkNGUxNzIwYjYzNTY2OGI2NmUwZDhlYjg3
NWQwODYwODlmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZW1wb3JhcnktZmlsZS5qcwpAQCAtMTIsNyAr
MTIsNyBAQCBjbGFzcyBUZW1wb3JhcnlGaWxlIHsKICAgICAgICAgbGV0IG1lZ2FieXRlU3RyaW5n
ID0gY2hhcmFjdGVyVG9GaWxsOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKysp
CiAgICAgICAgICAgICBtZWdhYnl0ZVN0cmluZyA9IG1lZ2FieXRlU3RyaW5nICsgbWVnYWJ5dGVT
dHJpbmc7Ci0gICAgICAgIGFzc2VydC5lcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEwMjQg
KiAxMDI0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lZ2FieXRlU3RyaW5nLmxlbmd0
aCwgMTAyNCAqIDEwMjQpOwogCiAgICAgICAgIGxldCBjb250ZW50ID0gJyc7CiAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgc2l6ZUluTUI7IGkrKykKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxk
Ym90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IDYwNGRhNzM0ZGEwY2UzYjBjZWMwYjA5NWFm
ZjkwMTVjZGQ5NzcxZDkuLjQ1MGYwYzNhODMzNmY1NGRmZjJkZmY4YzAxOTY4ZDkwNGVlZWY2MDYg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
YnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAt
MTEsOCArMTEsOCBAQCBjb25zdCBNb2NrTG9nZ2VyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9j
ay1sb2dnZXIuanMnKS5Nb2NrTG9nZ2VyOwogCiBmdW5jdGlvbiBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShyZXF1ZXN0LCBtZXRob2QsIHVybCwgY29udGVudCkKIHsKLSAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1
cmwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5yZXNv
bHZlKGNvbnRlbnQpOwogfQogCkBAIC00MCw0NSArNDAsNDUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29t
cGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1
aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5k
YXRhLCB7J2lkJzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6Ci0gICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjEx
IDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogNzAyLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2Utc29tZS1idWlsZGVyLTEnfX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5k
YXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAn
cGFyYW1zJzoKKyAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAu
MTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHsnYnVpbGRzJzogW01v
Y2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9y
VHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIo
KS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwg
J2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTk3LDM4ICs5NywzOCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1
aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2
ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5m
ZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVC
dWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDcsNzAgKzE0Nyw3MCBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAn
NzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAn
NzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAg
ICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
cmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogOTk5fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRl
ciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCks
IG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmln
Z2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzQ5LDYyICsz
NDksNjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1
ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVx
dWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNv
bHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw3MCArNDIzLDcwIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5p
bmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LmRhdGEsIHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAx
N30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVp
bGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSks
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3lu
Y0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEy
NCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2No
ZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9i
dWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTUwNSw1
MCArNTA1LDUwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxk
UmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRo
VHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01
NzAsODYgKzU3MCw4NiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RC
dWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MTAn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MTAn
LCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAg
ICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxk
ZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNv
bHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1aWxkUmVxdWVzdElkOiA3MTAsIGJ1aWxk
Ym90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWlsZHMnIDog
W01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNl
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwg
J2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEy
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5m
ZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWls
ZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEw
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygp
LCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEx
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTY3MSw5
MSArNjcxLDkxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
e30pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7
J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7
J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVB
Mjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnJlc29sdmUoJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzExJywg
J2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhv
ZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21l
LWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3
ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzExJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMSwgYnVp
bGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVpbGRib3RCdWlsZFJlcXVlc3RJ
ZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s5XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZShNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBi
dWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAn
cnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwg
J3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
Iy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTc3Niw2MCArNzc2LDYwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBy
ZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywg
J21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAgICAgeyd3ayc6
ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAw
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2
ZSwgMTApKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIHJlcXVlc3Rz
WzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRi
b3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRl
cnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
MCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtODU0LDI3ICs4NTQsMjcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
cmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMiksCiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwog
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAnUE9T
VCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5k
YXRhLCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAn
cGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAn
MTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScs
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSwKICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAxLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
NF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiks
CiAgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21p
c2U7CkBAIC04ODMsMjAgKzg4MywyMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1
ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSwKICAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRh
KHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSwge30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpLAogICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CkBAIC05MTgsNTggKzkxOCw1OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3
MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3
MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAg
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2No
ZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJl
cXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTk4OCw0MiArOTg4LDQyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNl
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1
aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzKCksICdmYWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygp
LCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTEwNDUsMjMgKzEwNDUsMjMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcxMCcsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwg
eydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1
QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3Jj
ZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgfSk7CkBAIC0xMDc5LDcxICsxMDc5
LDcxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRS
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1
aWxkcyc6IFtNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0p
LCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAg
ICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNj
ZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWls
ZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBh
bm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBy
ZXVzZSB0aGUgcm9vdHMgZnJvbSBhIGNvbXBsZXRlZCBidWlsZCByZXF1ZXN0IHdpdGggdGhlIHNh
bWUgY29tbWl0IHNldCcsIGFzeW5jICgpID0+IHsKQEAgLTExNTgsNzggKzExNTgsNzggQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRS
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5v
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5lcXVhbHNJZ25v
cmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFjb21t
aXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxk
RGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9j
a1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFt
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIGRlZmVyIHNjaGVkdWxpbmcgYSBidWlsZCByZXF1ZXN0IGlm
IHRoZXJlIGlzIGEgInJ1bm5pbmciIGJ1aWxkIHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBzZXQs
IGJ1dCBzaG91bGQgc2NoZWR1bGUgdGhlIGJ1aWxkIHJlcXVlc3QgaWYgInJ1bm5pbmciIGJ1aWxk
IHJlcXVlc3Qgd2l0aCBzYW1lIGNvbW1pdCBzZXQgZmFpbHMgbGF0ZXIgb24nLCBhc3luYyAoKSA9
PiB7CkBAIC0xMjQ0LDExNCArMTI0NCwxMTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsK
ICAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAw
KTsKICAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIGxldCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckNv
bW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBh
c3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0KSk7
CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1pdFNl
dCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogODAxfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAg
ICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVz
dC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRj
aEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAg
YnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBh
bm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdmYWls
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDEyMykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBzZWNvbmRTeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQnOiA5
MDAsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3Jj
ZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLmRhdGEsIHsnaWQnOiAnOTAwJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2sn
OiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICd3ay1wYXRjaCc6ICdodHRwOi8vbG9j
YWxob3N0OjgxODAvYXBpL3VwbG9hZGVkLWZpbGUvMTAwLnR4dCcsCiAgICAgICAgICAgICAgICAg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnOTAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUt
YnVpbGRlci0yJ319KTsKICAgICAgICAgfSk7CkBAIC0xMzY4LDc4ICsxMzY4LDc4IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OwogICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
ICAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3Jp
bmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0
U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAw
fSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDkwMCwgYnVpbGRlcklkOiAzfSldfSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAKICAgICAgICAgICAgIGF3YWl0IHN5bmNQ
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFi
bGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigp
LnRyaWdnZXJhYmxlTmFtZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsKICAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVy
cy8zL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8zL2J1aWxkcy8xMjQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBub3QgdXBkYXRlIGJ1aWxkIHJlcXVlc3RzIGZyb20gYW5vdGhlciB0cmlnZ2VyYWJs
ZScsIGFzeW5jICgpID0+IHsKQEAgLTE1MzQsMjIgKzE1MzQsMjIgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1h
bmlmZXN0LmZldGNoKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAgICAgICAgICAgICAgICAgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5hbGwoKVswXTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCAnYnVpbGQtd2Via2l0
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUo
KSwgJ2J1aWxkLXdlYmtpdCcpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgdGVzdCA9IFRlc3Qu
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBw
bGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmln
dXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0
Zm9ybSksIG51bGwpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFi
bGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBz
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1zdm4n
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3Jp
ZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29z
XSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5
bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzID0gewpAQCAtMTU4NCwyMiArMTU4NCwyMiBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1
ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7
CiAKICAgICAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5k
QnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKICAgICAgICAgICAgICAgICBsZXQgdHJp
Z2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0
Zm9ybSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwg
J2J1aWxkLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmln
Z2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0
IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFi
bGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5u
YW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3Rz
KCksIHRydWUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgp
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0
ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
c1swXS5kZXNjcmlwdGlvbigpLCAnQ3VzdG9tIFJvb3RzJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3Rv
bVJvb3RzKCksIHRydWUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFj
b3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2Vw
dHNDdXN0b21Sb290cygpLCB0cnVlKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSBbIF07CkBAIC0xNjExLDEzICsxNjEx
LDEzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJs
ZVByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxs
KCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dl
cmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBU
cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgpWzBd
LnJlcG9zaXRvcnlHcm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFt
ZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
MF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChncm91
cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CiAgICAgICAgICAgICB9KQog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE2MzIsMTIgKzE2MzIsMTIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBnZXRC
dWlsZGVyTmFtZVRvSURNYXBQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5nZXRCdWlsZGVy
TmFtZVRvSURNYXAoKTsKICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgZ2V0QnVp
bGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxk
ZXIiXSwgMSkKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFw
WyJzb21lLWJ1aWxkZXItMSJdLCAyKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRlciAyIl0sIDMpCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0s
IDUpCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsiYW5v
dGhlciB0ZXN0ZXIiXSwgNikKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIiXSwgMSkKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lLWJ1aWxkZXItMSJdLCAyKQor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNv
bWUgYnVpbGRlciAyIl0sIDMpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQorICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0sIDUpCisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsiYW5v
dGhlciB0ZXN0ZXIiXSwgNikKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
b3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwppbmRleCA3YjJlNTE3YzMx
ZjA1NTlhMTIxM2MxMTJjNDlkNGFhZGJkMjY3MWQzLi5lMzEzM2NhNGQwZTZhYmU1YmE3NWIyODFi
YjdhYTBiNWMzYWM4NjFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3Rz
LmpzCkBAIC0xMTAsMTMgKzExMCwxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5j
dGlvbigpIHsKICAgICBkZXNjcmliZSgnT1NCdWlsZGVyRmV0Y2hlci5fY29tcHV0ZU9yZGVyJywg
KCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGNhbGN1bGF0ZSB0aGUgcmlnaHQgb3JkZXIgZm9y
IGEgZ2l2ZW4gdmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBmZXRj
aGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChm
ZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2RDMyJyksIDE2MDMwMDMyMDApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2MDMw
MzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcign
MTZkMzIxJyksIDE2MDMwMzIxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIu
X2NvbXB1dGVPcmRlcignMTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIDE2
RDMyJyksIDE2MDMwMDMyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZldGNoZXIuX2Nv
bXB1dGVPcmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJ1NpZXJyYTE2RDMy
JyksIDE2MDMwMDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIu
X2NvbXB1dGVPcmRlcignMTZEMzIxJyksIDE2MDMwMzIxMDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTZkMzIxJyksIDE2MDMwMzIxMDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcign
MTZEMzIxeicpLCAxNjAzMDMyMTI2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
ZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMVonKSwgMTYwMzAzMjEyNik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCcxMC4xMi4zIDE2RDMy
JyksIDE2MDMwMDMyMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZldGNoZXIu
X2NvbXB1dGVPcmRlcignMTAuMTIuMyBTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhc3NlcnRpb24gZXJyb3Igd2hlbiBn
aXZlbiBhIGludmFsaWQgcmV2aXNpb24nLCAoKSA9PiB7CkBAIC0xNDEsMTMgKzE0MSwxMyBAQCBk
ZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0
IGZldGNoQ29tbWl0c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRz
KFsnbGlzdCcsICdidWlsZDEnXSwgJ15cXC4qJCcpOwogCiAgICAgICAgICAgICBhd2FpdCB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnBy
b2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxk
MSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChN
b2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10p
OwogCiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFJlc3VsdHMgPSB7YWxsUmV2aXNpb25zOiBb
IjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRzV2l0aFRlc3RhYmlsaXR5OiB7
fX07CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNv
bHZlKCcxNkQzMjFcbjE2RTMyMXpcblxuMTZGMzIxJyk7CiAgICAgICAgICAgICBjb25zdCBidWls
ZEluZm8gPSBhd2FpdCBmZXRjaENvbW1pdHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChleHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGV4cGVjdGVkUmVzdWx0cywgYnVpbGRJbmZvKTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgY29tbWFuZCBvdXRwdXQgYXMgSlNPTiBm
b3JtYXQnLCBhc3luYyAoKSA9PiB7CkBAIC0xNTcsMTMgKzE1NywxMyBAQCBkZXNjcmliZSgnT1NC
dWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGZldGNoQ29tbWl0
c1Byb21pc2UgPSBmZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzKFsnbGlzdCcsICdi
dWlsZDEnXSk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZv
Y2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYnVpbGQxJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CiAKICAgICAgICAgICAgIGNvbnN0
IG91dHB1dE9iamVjdCA9IHthbGxSZXZpc2lvbnM6IFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZG
MzIxIl0sIGNvbW1pdHNXaXRoVGVzdGFiaWxpdHk6IHsiMTZEMzIxIjogIlBhbmljIn19OwogICAg
ICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09O
LnN0cmluZ2lmeShvdXRwdXRPYmplY3QpKTsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkSW5mbyA9
IGF3YWl0IGZldGNoQ29tbWl0c1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG91dHB1dE9iamVjdCwgYnVpbGRJbmZvKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwob3V0cHV0T2JqZWN0LCBidWlsZEluZm8pOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTczLDkgKzE3Myw5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAg
ICBjb25zdCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBNb2Nr
U3VicHJvY2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBmZXRjaGVy
Ll9jb21taXRzV2l0aGluUmFuZ2UoWyIxNkQzMjEiLCAiMTZFMzIxeiIsICIxNkYzMjEiXSwgIk9T
WCIsIDE2MDQwMDAwMDAsIDE2MDYwMDAwMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1sw
XSwge3JlcG9zaXRvcnk6ICdPU1gnLCBvcmRlcjogMTYwNDAzMjEyNiwgcmV2aXNpb246ICcxNkUz
MjF6J30pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzFdLCB7cmVwb3Np
dG9yeTogJ09TWCcsIG9yZGVyOiAxNjA1MDMyMTAwLCByZXZpc2lvbjogJzE2RjMyMSd9KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NY
Jywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBv
cmRlcjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CiAKICAgICAgICAgfSk7CiAK
QEAgLTE4Myw4ICsxODMsOCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAg
ICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9j
a1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0Y2hl
ci5fY29tbWl0c1dpdGhpblJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sICJP
U1giLCAxNjA0MDAwMDAwLCAxNjA1MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNb
MF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZF
MzIxeid9KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBv
c2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NiwyNCArMTk2LDI0IEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRD
b21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1p
dCwgYW5vdGhlck9TWENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10p
OwogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1
YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQz
MiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAg
ICAgIE1vY2tTdWJwcm9jZXNzLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tT
dWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJw
cm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jl
dmlzaW9uJywgJ1NpZXJyYTE2RTMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzIn
XSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzBdWydyZXBv
c2l0b3J5J10sIG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbiddKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29tbWl0
cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRzWzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3JlcG9zaXRvcnkn
XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHNbMV1bJ3JldmlzaW9uJ10s
IGFub3RoZXJPU1hDb21taXRbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10sIGFub3RoZXJvd25lZENvbW1pdFdp
dGhXZWJLaXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmxl
bmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMF1b
J3JlcG9zaXRvcnknXSwgb3N4Q29tbWl0WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXZpc2lvbiddLCBvc3hDb21taXRbJ3Jl
dmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0
c1swXVsnb3duZWRDb21taXRzJ10sIG93bmVkQ29tbWl0V2l0aFdlYktpdCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNbMV1bJ3JlcG9zaXRvcnknXSwgYW5vdGhl
ck9TWENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0c1sxXVsncmV2aXNpb24nXSwgYW5vdGhlck9TWENvbW1pdFsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzFdWydv
d25lZENvbW1pdHMnXSwgYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTIyNCwxNSArMjI0LDE1IEBAIGRlc2NyaWJlKCdPU0J1
aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21t
aXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdF0s
IFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJldHVy
biB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQz
MiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3Mu
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAgICAg
IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlamVjdCgnRmFpbGVkIGdldHRpbmcgb3du
ZWQtY29tbWl0Jyk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9t
aXNlLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQp
ID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvcl9vdXRwdXQsICdGYWlsZWQgZ2V0dGluZyBv
d25lZC1jb21taXQnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVy
cm9yX291dHB1dCwgJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwogICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjQ1LDE1ICsyNDUsMTUg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBj
b25zdCBhZGRvd25lZENvbW1pdFByb21pc2UgPSBmZXRjaGVyLl9hZGRPd25lZENvbW1pdHNGb3JC
dWlsZChbb3N4Q29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nXSkKIAog
ICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9j
ZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jldmlz
aW9uJywgJ1NpZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7
CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgn
eyJXZWJLaXQiOnsiUmFuZG9tS2V5IjogIlJhbmRvbVZhbHVlIn19Jyk7CiAKICAgICAgICAgICAg
ICAgICByZXR1cm4gYWRkb3duZWRDb21taXRQcm9taXNlLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAg
ICAgICAgICAgICAgIH0sIChlcnJvcl9vdXRwdXQpID0+IHsKICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0KGVycm9yX291dHB1dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvcl9vdXRwdXQubmFtZSwgJ0Fzc2VydGlvbkVycm9yIFtFUlJfQVNTRVJUSU9OXScpOworICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3Jfb3V0cHV0Lm5hbWUsICdB
c3NlcnRpb25FcnJvcicpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pCkBAIC0yOTAsNDAgKzI5MCw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXIn
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9P
U1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10s
IDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHBhcnNlSW50KHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddKSksIDE2MDMwMDY4MDApOwogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFz
dC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAg
fSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0
MDAzMzA3KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52
b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2ZldGNo
QXZhaWxhYmxlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0
aW9uUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRz
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmEx
NkQ2OFxuU2llcnJhMTZENjlcbicpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZE
NjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
bnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJhMTZF
MzNcblNpZXJyYTE2RTMzaFxuU2llcnJhMTZFMzQnKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktp
dCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10p
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
YW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewpAQCAtMzMxLDI5ICszMzEsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZmV0Y2hSZXBvcnRBbmRVcGRh
dGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWls
ZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAg
ICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RDY4XG5TaWVy
cmExNkQ2OVxuJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0
QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0
JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNv
bW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJh
MTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0
cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmExNkUzM1xuU2llcnJh
MTZFMzNoXG5TaWVycmExNkUzNCcpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZF
MzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRp
b24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdl
YktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKIAogICAgICAgICAgICAgICAg
IHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKQEAgLTM3MCwzNCArMzcwLDM0IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0
Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMz
aCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSBy
ZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRv
cnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3Np
dG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NS
ZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jl
cG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeVswXVsnb3duZXIn
XSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2
RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMw
OCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMzaC5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4
KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVw
b3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFsw
XVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAx
NjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAw
MDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQyMyw0MCArNDIzLDQwIEBAIGRlc2Ny
aWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0x
NjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICAgICAgY29uc3Qg
d2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRp
b24oKTsKICAgICAgICAgICAgICAgICBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRj
aGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpT
T04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3In
LCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2Nh
dGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4
eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShy
ZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vz
cy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNo
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24o
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRD
b21taXRXaXRoV2ViS2l0QW5kSmF2YVNjcmlwdENvcmUpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CkBAIC00NjQsMjkgKzQ2NCwyOSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgICBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1Byb21p
c2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBp
bnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvcklu
dm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlz
dCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CiAg
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25l
ZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nl
c3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0u
cmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29t
bWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gnXSk7CiAgICAgICAgICAgICAg
ICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21t
aXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5v
dGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCdd
KTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkc1By
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUwMywzNCArNTAzLDM0IEBA
IGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
IGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICAgICAgY29u
c3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydv
d25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9z
aXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNj
UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OVsw
XVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9y
eSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFsw
XVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1b
J29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0
MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1
NSw0MSArNTU1LDQxIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewog
CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRv
PTE2MDMwOTk5MDAnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogICAgICAg
ICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAn
KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAgIGNv
bnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRV
cGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgYXdhaXQgTW9j
a1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogCi0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQp
KTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9j
YXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04u
c3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIGF3YWl0IE1vY2tT
dWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1p
dCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgaW52
b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShhbm90aGVyb3duZWRDb21taXRXaXRo
V2ViS2l0KSk7CiAgICAgICAgICAgICBhd2FpdCAgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdEFuZEphdmFTY3JpcHRDb3JlKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7
CiAKICAgICAgICAgICAgIGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKIApAQCAt
NjAxLDQzICs2MDEsNDMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSBhd2FpdCBkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkUzM2gnfSk7CiAgICAgICAgICAgICBj
b25zdCBvc3hDb21taXQxNkUzNCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3Jl
dmlzaW9uJzogJ1NpZXJyYTE2RTM0J30pOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVw
b3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddLCAxNjAzMDA2
ODAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsndGVzdGFi
aWxpdHknXSwgIlBhbmljIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZENjgubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hD
b21taXQxNkQ2OFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjhbMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OFswXVsndGVz
dGFiaWxpdHknXSwgIlBhbmljIik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQVSIpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRv
cnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENv
bW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Rlc3RhYmlsaXR5J10sICJTcGluIENQVSIp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzEubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ29yZGVy
J10sIDE2MDQwMDMxMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMx
WzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzMVswXVsn
b3JkZXInXSksIDE2MDQwMDMxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RTMxWzBdWyd0ZXN0YWJpbGl0eSddLCAiV2ViS2l0IGNyYXNoZXMiKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddLCAx
NjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUz
M2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSksIDE2MDQwMDMzMDgpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAx
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10s
IDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2
RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0
MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAK
ICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAz
MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAg
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgcmVwb3J0IGNvbW1pdHMgd2l0aG91dCBvd25lZC1jb21taXRzIGlmICJvd25lZENv
bW1pdENvbW1hbmQiIGlzIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnJywgYXN5bmMgKCkgPT4gewpA
QCAtNjU5LDI1ICs2NTksMjUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzog
MTAsICdyZXZpc2lvbic6ICdTaWVycmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVw
b3J0ZWQnOiB0cnVlfSldKTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVk
P2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMw
MDY4MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
MzAwNjgwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAw
MDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsK
IAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnBy
b2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0
QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsK
ICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4
eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2ll
cnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRG
b3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwg
b3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUo
SlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0
ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNlOwpAQCAtNjk0LDMwICs2OTQsMzAg
QEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBj
b25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jl
cG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBd
WydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUz
M2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUz
NFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
LCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9t
PTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0
MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9ydCBjb21taXRzIHdp
dGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFuZ2UnLCBhc3luYyAoKSA9PiB7CkBAIC03MzgsMjUg
KzczOCwyNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3Jldmlz
aW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6IHRy
dWV9KV0pOwogCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAz
MDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsK
IAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2
MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAg
ICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZv
ckludm9jYXRpb24oKTsKICAgICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJv
bWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKIAogICAgICAgICAg
ICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcydd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZv
Y2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRp
b24oKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShyZXN1bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBm
ZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC03NzMsMzAgKzc3MywzMCBAQCBkZXNjcmli
ZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENv
bW1pdDE2RTMzaCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUz
NCA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0
b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5s
ZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRv
cnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0
b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2
OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10p
LCAxNjAzMDA2OTAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMz
aC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFsw
XVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZFMzNoWzBdWydvcmRlciddLCAxNjA0MDAzMzA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTMzaFswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
NFswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZFMzRbMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RTM0WzBdWydvcmRl
ciddKSwgMTYwNDAwMzQwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zy
b209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5
MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAw
NjkwMCk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAw
MCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzQwMCk7CiAgICAg
ICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXBkYXRlIGNvbW1pdHMgd2l0aGluIHNwZWNp
ZmllZCByZXZpc2lvbiByYW5nZScsIGFzeW5jICgpID0+IHsKQEAgLTgxNywyOSArODE3LDI5IEBA
IGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2ll
cnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7CiAK
ICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89
MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11b
MF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAg
ICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9u
J10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAgICAgICAgICAgICBjb25zdCB3
YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0
Y2hlci5fZmV0Y2hBdmFpbGFibGVCdWlsZHMoKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZv
ckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAgICAgICAgIGF3
YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAx
NkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAg
ICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9y
U2llcnJhRSkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaEF2YWlsYWJsZUJ1
aWxkc1Byb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LmNvbW1pdHNUb1Vw
ZGF0ZS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5j
b21taXRzVG9VcGRhdGUubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCB1c2UgImxhc3QtcmVwb3J0ZWQiIG9yZGVyICsgMSBhcyAibWluT3JkZXIiJywgYXN5bmMg
KCkgPT4gewpAQCAtODUzLDE1ICs4NTMsMTUgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3Jl
cG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RDEwMCcsICdvcmRlcic6IDE2MDMw
MTAwMDAsICdyZXBvcnRlZCc6IHRydWV9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0
LXJlcG9ydGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDEwMDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZEMTAwJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRp
b25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIGNvbnN0IGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRV
cGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVp
bGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lm
eShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRj
aEFuZFJlcG9ydFByb21pc2U7CkBAIC04NzYsMTkgKzg3NiwxOSBAQCBkZXNjcmliZSgnT1NCdWls
ZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDY5
ID0gcmVzdWx0c1syXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMGEgPSByZXN1
bHRzWzNdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5n
dGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0
aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5n
dGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3Ro
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5n
dGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAwYS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGFbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEw
MGFbMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQxMDBhWzBdWydvcmRl
ciddKSwgMTYwMzAxMDAwMSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zy
b209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAx
MDAwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMGEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2
MDMwMTAwMDEpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHVzZSBtaW5SZXZp
c2lvbiBpbiB0aGUgY29uZmlnIGlmIHRoZXJlIGlzIG5vIGNvbW1pdCcsIGFzeW5jICgpID0+IHsK
QEAgLTkwMSwxMyArOTAxLDEzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzog
MTAsICduYW1lJzogJ09TWCd9KTsKIAogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAxMDAwMCZ0bz0xNjAzMDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDApOwogCiAgICAgICAgICAgICBj
b25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52
b2NhdGlvbigpOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hSZXBvcnRBbmRVcGRhdGVQcm9taXNl
ID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgYXdh
aXQgd2FpdEZvckludm9jYXRpb25Qcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBb
J2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9u
c1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVycmFEKSk7CiAKICAgICAg
ICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTky
NCwyMyArOTI0LDIzIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZEMTAwID0gcmVzdWx0c1szXTsKICAgICAgICAg
ICAgIGNvbnN0IG9zeENvbW1pdDE2RDEwMSA9IHJlc3VsdHNbNF07CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQxNkQxMDAubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkQxMDBbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsnb3JkZXInXSwgMTYwMzAxMDAwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAwWzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChvc3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAwKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydvcmRlciddLCAxNjAzMDEw
MTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDEubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQxMDFb
MF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSksIDE2MDMwMTAxMDApOwogCiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAmdG89MTYwMzA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkQxMDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RDEwMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAxMDEwMCk7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgc3RvcCByZXBvcnRpbmcgaWYgYW55IGN1c3RvbSBjb21tYW5kIGZh
aWxzJywgKCkgPT4gewpAQCAtOTYzLDYwICs5NjMsNjAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRj
aGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddLCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMz
MDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgICAgICBmZXRjaEFuZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5k
VXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9u
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZE
eHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10p
OwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
cmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nl
c3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5
J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbics
ICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5pbnZvY2F0
aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2
RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcydd
KTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9j
ZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkUzM2gnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlv
bigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAn
Zm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293
bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZWplY3QoJ0NvbW1hbmQgZmFpbGVkJyk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZldGNoQW5kUmVwb3J0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsK
ICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXJyb3Jfb3V0cHV0LCAnQ29tbWFuZCBmYWlsZWQnKTsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1dCwgJ0NvbW1hbmQgZmFpbGVkJyk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
T1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
LCAxNjAzMDA2ODAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pCiAgICAgfSkKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3lu
Yy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpp
bmRleCA3MWExZDUzOWViNjJmZWYyYWViN2NlMGMxOTY0MGIxNjRjMmZjZjEwLi42OWE5MWY1ZTYx
MTMwNmVhZGI4ZjIxMjdiODhkMDVkZWFiOTViMTBiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24t
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29s
cy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNDUsOCArMTQ1LDggQEAg
Y29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMgPSB7CiAKIGZ1bmN0aW9uIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3QsIG1ldGhvZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQogewotICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKLSAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdC51cmwsIHVybCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3QubWV0aG9k
LCBtZXRob2QpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKICAg
ICByZXF1ZXN0LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7CiB9CiAKQEAgLTI2NSwyMyArMjY1
LDIzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNlY29u
ZFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdhbm90aGVyIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IGZpcnN0VGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsK
ICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklk
OiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIHRlc3RlcicpLCBidWlsZFJlcXVlc3RJ
ZDogc2Vjb25kVGVzdEdyb3VwRmlyc3RCdWlsZFJlcXVlc3R9KSwKQEAgLTI5Miw0NSArMjkyLDQ1
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzFdOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2
Jyk7CiAKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGFub3RoZXJU
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzQ0LDM2ICszNDQsMzYgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgY29uc3QgdGFza0lk
ID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgbGV0IHdlYmtp
dFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIGxldCBvdGhlckJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGxldCBvdGhlckNvbW1pdFNldCA9
IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CkBAIC0zODEsMzIgKzM4MSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwog
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1Qn
LCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAg
IHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRl
ZC1maWxlLzEuZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVp
bGRzJ319KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9
KSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAg
ICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJl
cjogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdCdWlsZGluZyBXZWJLaXQn
fSkpOwpAQCAtNDE1LDM5ICs0MTUsMzkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKQEAg
LTQ1NiwyNiArNDU2LDI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlw
dGlvbjogJ0NvbXBpbGluZyBXVEYnfSkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2Nr
RGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEs
IGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBpbGlu
ZyBXVEYnfSkpOwpAQCAtNDg0LDgwICs0ODQsODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
Zmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcgV1RGJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdU
RicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgYXdhaXQgdXBsb2FkUm9v
dChidWlsZFJlcXVlc3QuaWQoKSwgZmlyc3RCdWlsZE51bWJlcik7CisgICAgICAgIGF3YWl0IHVw
bG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCBmaXJzdEJ1aWxkTnVtYmVyKTsK
IAogICAgICAgICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwog
CiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBm
aXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxp
bmcgV1RGJyk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQ
YXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNz
ZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAg
ICAgICAgbGV0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlw
dGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKQEAgLTU2NiwzMiArNTY2LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJl
cn0pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAg
ICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVp
bGRzJywgJ09LJyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwg
eydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
MicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVp
bGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7
CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC02MDMs
ODMgKzYwMyw4MyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAog
ICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgdGVzdEdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2Nr
RGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIp
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmly
c3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwogICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgp
LCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgIG90aGVyQnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgIGF3YWl0IHVwbG9hZFJv
b3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgYXdhaXQgdXBsb2FkUm9v
dChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKIAogICAgICAgICB0ZXN0
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogCi0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91cCA9
IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVy
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZp
cnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290
LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNj
cmlwdGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAg
ICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxl
bmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
V2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0p
OwogICAgIH0pOwogCkBAIC02OTQsMzQgKzY5NCwzNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAg
ICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAg
Y29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRj
aC5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTcyOSwzMiArNzI5
LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAg
eyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVk
LWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWls
ZHMnfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtNzYzLDc2ICs3NjMsNzYgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAg
ICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRh
dCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAx
MjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4o
KHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAg
ICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtODQxLDMyICs4NDEsMzIgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hl
ZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjIn
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEw
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAg
LTg3OCw4MCArODc4LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywg
MTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAg
ICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
b3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAg
ICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7Cisg
ICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0
ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0
Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5k
YXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05
NjcsMzQgKzk2NywzNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0
ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2gg
PSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKQEAgLTEwMDIsMzIgKzEwMDIsMzIgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMics
ICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxk
cycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9ybS1u
YW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
SWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVl
c3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAt
MTAzNiw3NiArMTAzNiw3NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJC
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJD
b21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qo
YnVpbGRSZXF1ZXN0LmlkKCksIDEyMyk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChw
YXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAg
ICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAn
cGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0xMTE0
LDMyICsxMTE0LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwK
ICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tE
YXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0p
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywg
J2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAg
ICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNj
aGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVp
bGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAt
MTE1MSw4MCArMTE1MSw4MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2gu
ZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAg
ICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOwor
ICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3Qu
aWQoKSksIDEyNCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigo
dGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAg
ICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJr
aXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtp
dFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQu
ZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MTI0MSwyMiArMTI0MSwyMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CiAgICAgICAgICAgICB0YXNrSWQg
PSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0
LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdCgxLCA0NSk7CkBAIC0xMjY1LDM5
ICsxMjY1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKIAogICAgICAgICAgICAgY29uc3Qg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CiAgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAg
ICAgICAgICBjb25zdCByb290cyA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290Rmls
ZXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb290cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBm
aXJzdFJvb3QgPSByb290c1swXTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm9vdHNb
MF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0NS5kYXQnKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJC
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlclJvb3RzID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwogICAgICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6
IFsKQEAgLTEzMDcsMTMgKzEzMDcsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMnLCAnT0sn
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6
ICczJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAg
ICAgICAgICAgICAgIHsndGVzdCc6ICdzb21lLXRlc3QnLCAnd2snOiAnMTkxNjIyJywgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnMycsJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywgJ3Jv
b3RzJzogSlNPTi5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1dKX19KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCBbCiAgICAgICAgICAg
ICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJ
REZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiAzfSksCiAgICAgICAgICAg
ICBdKTsKQEAgLTEzMjEsNyArMTMyMSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7
fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAg
ICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTEzNDMsMzYgKzEzNDMsMzYgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRl
VGVzdEdyb3VwV2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewog
ICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0Lmlk
KCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdC5pZCgpKSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwog
ICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTEz
ODMsMTMgKzEzODMsMTMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7
CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTE0
MDEsMjQgKzE0MDEsMjQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vwcykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTAwMikpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMDAyKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTE0MzIsNDkgKzE0MzIsNDkgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3Vw
V2l0aFBhdGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAg
ICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgp
KSwgMSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ290aGVyIGJ1
aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiAzMTJ9KSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInLCAyKSwKQEAgLTE0ODMsMjggKzE0ODMsMjggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxZXVzdHMgPSB0ZXN0R3JvdXBz
WzBdLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3RzWzBd
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMF0uaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzTGFi
ZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNb
MF0uc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnb3RoZXIgYnVpbGRlcicsIDMxMikp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uYnVpbGRJZCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0
YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ290aGVyIGJ1
aWxkZXInLCAzMTIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1
c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1
c3RzWzFdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMV0u
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMV0uc3Rh
dHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
ZXVzdHNbMV0uc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxZXVzdHNbMV0uYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcWV1c3RzWzFdLmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFzc2VydFRlc3RCdWlsZEhh
c0ZhaWxlZChyZXF1ZXN0KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFzc2VydCgh
cmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQoYnVpbGRSZXFldXN0c1syXSk7CkBA
IC0xNTI0LDM2ICsxNTI0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
QEAgLTE1NjEsMzIgKzE1NjEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywg
J09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsn
aWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoK
ICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBg
eyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2
YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBi
dWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVp
bGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KSk7CkBAIC0xNTk1LDg1ICsxNTk1LDg1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vw
c1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0Mg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1
ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAg
ICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpLnRoZW4oKCkg
PT4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTog
J1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0x
MFQwMjo1NDowOS42NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUlu
dChidWlsZFJlcXVlc3QuaWQoKSksIDEyMykudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNlSW50
KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93
bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42
NjYnKSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdy
b3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAg
ICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KTsKICAgICAgICAgICAgIGFzc2VydChqc2NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3QsIGpzY1Jvb3RdKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKQEAgLTE2ODIsMzIgKzE2ODIsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicsIDIpLAogICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxk
ZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVx
dWVzdElkOiAxfSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAy
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycs
ICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7
J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6
CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcy
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzog
YHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6Ikph
dmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xNzE5
LDk1ICsxNzE5LDk1IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29u
c3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAg
ICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3Qob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93
bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42
NjYnKSk7CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxk
UmVxdWVzdC5pZCgpKSwgMTI0KS50aGVuKCgpID0+IHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJC
dWlsZFJlcXVlc3QuaWQoKSksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25l
ZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2
JykpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91
cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAg
ICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7
CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAg
ICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldl
YmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBv
dGhlckpTQ1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJKU0NSb290
LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwgb3RoZXJK
U0NSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTgyNCwzNiArMTgyNCwzNiBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRhc2tJ
ZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAg
ICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVk
SlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJC
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJD
b21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyks
IG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xODYxLDMyICsxODYxLDMyIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6
ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6
Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZp
c2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6
IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJ
ZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzld
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEw
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRl
cklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwpAQCAtMTg5
NSwxMjYgKzE4OTUsMTI2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRS
b290KGJ1aWxkUmVxdWVzdC5pZCgpLCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJv
b3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAg
Y29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVw
b3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAg
IGNvbnN0IHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7Ci0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJl
cXVlc3QuaWQoKSwgMTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3Np
dG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKKyAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwg
MTIzLCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFT
Y3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAg
ICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpT
Q1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoKG93bmVkSlNDKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJr
aXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0yMDIzLDMyICsyMDIz
LDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBp
L3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsn
d2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6
ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNp
b24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVy
UmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEx
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsK
ICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMjA2MCwxNDEgKzIwNjAsMTQxIEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAg
Y29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVw
b3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7
CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNj
Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
anNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290
LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVl
c3QuaWQoKSwgMTI0KTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90
aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3du
ZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlk
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAg
ICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290
XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJD
b21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJr
aXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwotICAgICAgICAgICAgcmV0dXJuIHVwbG9h
ZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dl
YktpdCcsIG93bmVkUmVwb3NpdG9yeTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQw
Mjo1NDowOS42NjYnKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90
aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywg
b3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5
LjY2NicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RH
cm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9v
dCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAg
ICAgICAgY29uc3QganNjUm9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
Qyk7CiAgICAgICAgICAgICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5k
YXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCks
ICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qg
b3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
cldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgICAgICBjb25z
dCBvdGhlckpTQ1Jvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
Qyk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJKU0NSb290IGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckpTQ1Jvb3QuZmlsZW5hbWUoKSwg
J3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJKU0NS
b290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdCwgb3Ro
ZXJKU0NSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2Fzc2VydC1vdmVycmlkZS5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9hc3NlcnQtb3ZlcnJpZGUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk5
Mzc1OTc5NDlkYTdmOGY4NGM4ZDI2MDIwYmQzZjE5OThjYmYyZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9hc3NlcnQtb3ZlcnJpZGUuanMKQEAg
LTAsMCArMSw4IEBACitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKKworZnVuY3Rp
b24gbWFrZUNvbnNvbGVBc3NlcnRUaHJvdygpIAoreworICAgIGNvbnNvbGUuYXNzZXJ0ID0gYXNz
ZXJ0Lm9rOworfQorCittb2R1bGUuZXhwb3J0cy5tYWtlQ29uc29sZUFzc2VydFRocm93ID0gbWFr
ZUNvbnNvbGVBc3NlcnRUaHJvdzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwpp
bmRleCAzMGJkMjVmMGFjZDAxN2U0NWY4YTgwODFmY2VlMWI4ZDA5N2Y2ODgxLi41MmNiMWVjMjQz
YjlmMTY1ZGY3ZGM3ZDY5MGU0MDdhMDgwOWVlODRhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTEyLDcgKzEyLDcg
QEAgY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKIAogICAgIGluaXRpYWxpemUoc3luY2VyLCBy
YXdEYXRhKQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwg
cmF3RGF0YVsnYnVpbGRlcmlkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoc3luY2VyLmJ1aWxkZXJJRCgpKSwgcGFyc2VJbnQocmF3RGF0YVsnYnVpbGRlcmlkJ10pKTsK
IAogICAgICAgICB0aGlzLl9zeW5jZXIgPSBzeW5jZXI7CiAgICAgICAgIHRoaXMuX2J1aWxkYm90
QnVpbGRSZXF1ZXN0SWQgPSByYXdEYXRhWydidWlsZHJlcXVlc3RpZCddOwpAQCAtNDEsNyArNDEs
NyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxkRW50cnkgewogCiAgICAgYnVpbGRSZXF1ZXN0U3RhdHVz
SWZVcGRhdGVJc05lZWRlZChyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3QuaWQoKSwgdGhpcy5fYnVpbGRSZXF1ZXN0SWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdC5pZCgpLCB0aGlzLl9idWlsZFJlcXVlc3RJZCk7CiAgICAgICAgIGlmICgh
cmVxdWVzdCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICBpZiAodGhpcy5pc1Bl
bmRpbmcoKSkgewpAQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAg
ICAgICAgbGV0IHByb3BlcnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KG5l
d1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCk7CiAKICAgICAgICAgYXNzZXJ0KHByb3BlcnRpZXNb
J2ZvcmNlc2NoZWR1bGVyJ10sIGBmb3JjZXNjaGVkdWxlciB3YXMgbm90IHNwZWNpZmllZCBpbiBi
dWlsZGJvdCBwcm9wZXJ0aWVzIGZvciBidWlsZCByZXF1ZXN0ICR7bmV3UmVxdWVzdC5pZCgpfSBv
biBwbGF0Zm9ybSAiJHtuZXdSZXF1ZXN0LnBsYXRmb3JtKCkubmFtZSgpfSIgZm9yIGJ1aWxkZXIg
IiR7dGhpcy5idWlsZGVyTmFtZSgpfSJgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKCF0aGlzLl9z
bGF2ZVByb3BlcnR5TmFtZSwgIXNsYXZlTmFtZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCghdGhpcy5fc2xhdmVQcm9wZXJ0eU5hbWUsICFzbGF2ZU5hbWUpOwogICAgICAgICBpZiAodGhp
cy5fc2xhdmVQcm9wZXJ0eU5hbWUpCiAgICAgICAgICAgICBwcm9wZXJ0aWVzW3RoaXMuX3NsYXZl
UHJvcGVydHlOYW1lXSA9IHNsYXZlTmFtZTsKIApAQCAtMzM3LDcgKzMzNyw3IEBAIGNsYXNzIEJ1
aWxkYm90U3luY2VyIHsKIAogICAgICAgICBhc3NlcnQoY29uZmlnLmJ1aWxkUmVxdWVzdEFyZ3Vt
ZW50LCAnYnVpbGRSZXF1ZXN0QXJndW1lbnQgbXVzdCBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBw
cm9wZXJ0eSB1c2VkIHRvIHN0b3JlIHRoZSBidWlsZCByZXF1ZXN0IElEJyk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHR5cGVvZihjb25maWcucmVwb3NpdG9yeUdyb3VwcyksICdvYmplY3QnLCAn
cmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUg
dG8gaXRzIGRlZmluaXRpb24nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihj
b25maWcucmVwb3NpdG9yeUdyb3VwcyksICdvYmplY3QnLCAncmVwb3NpdG9yeUdyb3VwcyBtdXN0
IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24nKTsK
IAogICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0ge307CiAgICAgICAgIGZvciAoY29u
c3QgbmFtZSBpbiBjb25maWcucmVwb3NpdG9yeUdyb3VwcykKQEAgLTQxNiw3ICs0MTYsNyBAQCBj
bGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICBzdGF0aWMgX3BhcnNlUmVwb3NpdG9yeUdyb3Vw
KG5hbWUsIGdyb3VwKQogICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC5y
ZXBvc2l0b3JpZXMpLCAnb2JqZWN0JywKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVv
Zihncm91cC5yZXBvc2l0b3JpZXMpLCAnb2JqZWN0JywKICAgICAgICAgICAgIGBSZXBvc2l0b3J5
IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0
b3JpZXNgKTsKICAgICAgICAgYXNzZXJ0KCEoJ2Rlc2NyaXB0aW9uJyBpbiBncm91cCkgfHwgdHlw
ZW9mKGdyb3VwWydkZXNjcmlwdGlvbiddKSA9PSAnc3RyaW5nJywKICAgICAgICAgICAgIGBSZXBv
c2l0b3J5IGdyb3VwICIke25hbWV9IiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb25gKTsKQEAg
LTQzMSw3ICs0MzEsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBjb25z
dCByZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUocmVwb3NpdG9yeU5h
bWUpOwogICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnksIGAiJHtyZXBvc2l0b3J5TmFtZX0i
IGlzIG5vdCBhIHZhbGlkIHJlcG9zaXRvcnkgbmFtZWApOwogICAgICAgICAgICAgcmVwb3NpdG9y
eUJ5TmFtZVtyZXBvc2l0b3J5TmFtZV0gPSByZXBvc2l0b3J5OwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHR5cGVvZihvcHRpb25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNw
ZWNpZmllcyBhIG5vbi1kaWN0aW9uYXJ5IHZhbHVlYCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodHlwZW9mKG9wdGlvbnMpLCAnb2JqZWN0JywgYCIke3JlcG9zaXRvcnlOYW1lfSIg
c3BlY2lmaWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWVgKTsKICAgICAgICAgICAgIGFzc2VydChb
dW5kZWZpbmVkLCB0cnVlLCBmYWxzZV0uaW5jbHVkZXMob3B0aW9ucy5hY2NlcHRzUGF0Y2gpLAog
ICAgICAgICAgICAgICAgIGAiJHtyZXBvc2l0b3J5TmFtZX0iIGNvbnRhaW5zIGludmFsaWQgYWNj
ZXB0c1BhdGNoIHZhbHVlOiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuYWNjZXB0c1BhdGNoKX1g
KTsKICAgICAgICAgICAgIGlmIChvcHRpb25zLmFjY2VwdHNQYXRjaCkKQEAgLTQ0MSw3ICs0NDEs
NyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0KICAgICAgICAgYXNzZXJ0KHBh
cnNlZFJlcG9zaXRvcnlMaXN0Lmxlbmd0aCwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRv
ZXMgbm90IHNwZWNpZnkgYW55IHJlcG9zaXRvcnlgKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwo
dHlwZW9mKGdyb3VwLnRlc3RQcm9wZXJ0aWVzKSwgJ29iamVjdCcsIGBSZXBvc2l0b3J5IGdyb3Vw
ICIke25hbWV9IiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZh
bGlkIHR5cGVgKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihncm91cC50ZXN0
UHJvcGVydGllcyksICdvYmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lm
aWVzIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7CiAKICAg
ICAgICAgY29uc3QgcmVzb2x2ZVJlcG9zaXRvcnkgPSAocmVwb3NpdG9yeU5hbWUpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlO
YW1lXTsKQEAgLTQ3MCw3ICs0NzAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAg
IH0pOwogICAgICAgICBhc3NlcnQoIWdyb3VwLmFjY2VwdHNSb290cyA9PSAhc3BlY2lmaWVzUm9v
dHMsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgYWNjZXB0cyByb290
cyBidXQgZG9lcyBub3Qgc3BlY2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllc2ApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9y
aWVzLnNpemUsCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZWRSZXBvc2l0b3J5TGlz
dC5sZW5ndGgsIHRlc3RSZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgIGBSZXBvc2l0b3J5
IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxp
c3RlZCBpbiB0ZXN0aW5nYCk7CiAKICAgICAgICAgbGV0IGJ1aWxkUHJvcGVydGllc1RlbXBsYXRl
ID0gbnVsbDsKQEAgLTUwNCw3ICs1MDQsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAg
ICAgICAgICBhc3NlcnQocGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplIHx8IGhhc093
bmVkUmV2aXNpb25zLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3BlY2lmaWVzIHRoZSBw
cm9wZXJ0aWVzIGZvciBidWlsZGluZyBidXQgZG9lcyBub3QgYWNjZXB0IGFueSBwYXRjaGVzIG9y
IG5lZWQgdG8gYnVpbGQgb3duZWQgY29tcG9uZW50c2ApOwogICAgICAgICAgICAgZm9yIChjb25z
dCByZXBvc2l0b3J5IG9mIHBhdGNoUmVwb3NpdG9yaWVzKQogICAgICAgICAgICAgICAgIGFzc2Vy
dChyZXZpc2lvblJlcG9zaXRvcmllcy5oYXMocmVwb3NpdG9yeSksIGBSZXBvc2l0b3J5IGdyb3Vw
ICIke25hbWV9IiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgIiR7cmVwb3NpdG9yeS5uYW1lKCl9IiBi
dXQgZG9lcyBub3Qgc3BlY2lmeSBhIHJldmlzaW9uYCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocGF0Y2hBY2NlcHRpbmdSZXBvc2l0b3J5TGlzdC5zaXplLCBwYXRjaFJlcG9zaXRvcmllcy5z
aXplLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhdGNoQWNjZXB0aW5nUmVwb3Np
dG9yeUxpc3Quc2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKICAgICAgICAgICAgICAgICBg
UmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9z
aXRvcmllcyBsaXN0ZWQgaW4gYnVpbGRpbmcgYSBwYXRjaGApOwogICAgICAgICB9CiAKQEAgLTU2
NCwxMiArNTY0LDEyIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgICAgICAgICAgc3dp
dGNoIChuYW1lKSB7CiAgICAgICAgICAgICBjYXNlICdwcm9wZXJ0aWVzJzogLy8gRmFsbHRocm91
Z2gKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcs
ICdCdWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnknKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHZhbHVlKSwgJ29iamVjdCcsICdCdWlsZCBw
cm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnknKTsKICAgICAgICAgICAgICAgICBpZiAo
IWNvbmZpZ1sncHJvcGVydGllcyddKQogICAgICAgICAgICAgICAgICAgICBjb25maWdbJ3Byb3Bl
cnRpZXMnXSA9IHt9OwogICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjb25maWdb
J3Byb3BlcnRpZXMnXTsKICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdmFsdWUp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSks
ICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVydGllcyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0
cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5cGVvZih2YWx1ZSl9ImApOworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0cmluZycsIGBC
dWlsZCBwcm9wZXJ0aWVzICIke25hbWV9IiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9m
IHR5cGUgIiR7dHlwZW9mKHZhbHVlKX0iYCk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRp
ZXNbbmFtZV0gPSB2YWx1ZVtuYW1lXTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CkBAIC01ODAsNyArNTgwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAg
ICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlLnNsaWNlKCk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdidWlsZGVyJzogLy8gRmFsbHRocm91Z2gKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25h
bWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlwZWApOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0eXBlb2YodmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9m
IHN0cmluZyB0eXBlYCk7CiAgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdidWlsZGVySUQnOgpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdn
ZXJhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRy
aWdnZXJhYmxlLmpzCmluZGV4IDQwZGUwYTU2OTdjODdjZWIwOTgzNTg3MmQ3ZTJlMDg1MzM5YmIz
YzMuLjI5YzFlNTA4Y2ZlZDY1NjRjNWMyMzlmMDYwNTk4NGU4ZTQxOTZmMzIgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dl
cmFibGUuanMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFz
c2VydCh0cmlnZ2VyYWJsZSBpbnN0YW5jZW9mIFRyaWdnZXJhYmxlLCAnTXVzdCBzcGVjaWZ5IGEg
dmFsaWQgdHJpZ2dlcmFibGUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJs
ZS5uYW1lKCksIHRoaXMuX25hbWUsICdNdXN0IHNwZWNpZnkgdGhlIHRyaWdnZXJhYmxlIG9mIHRo
aXMgc3luY2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUu
bmFtZSgpLCB0aGlzLl9uYW1lLCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlz
IHN5bmNlcicpOwogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdC5y
ZXBvc2l0b3J5R3JvdXAoKTsKICAgICAgICAgICAgIGlmICghcmVwb3NpdG9yeUdyb3VwKSB7CiAg
ICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKGBCdWlsZCByZXF1ZXN0ICR7cmVxdWVz
dC5pZCgpfSBkb2VzIG5vdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSBncm91cC4gU3VjaCBhIGJ1aWxk
IHJlcXVlc3QgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC5gKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKaW5kZXggYWNmMDQ5
ZDM4OGZjNjc3YWZhMDg0ODg4MDYxNWRhNjFjYzFjZWUzOS4uMjY0MjU1MmRlY2YzMDFmYWE1NDA0
NDQ3ZDhkOTNkZDQwYzRhNzA1OCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanMKQEAgLTEsNCArMSw2IEBACisndXNlIHN0
cmljdCc7CiAKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogY29uc3QgTWFya3Vw
RG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogICAgIGNvbnN0cnVjdG9yKCkK
ICAgICB7CkBAIC0yNyw3ICsyOSw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3IGNsYXNz
IE1hcmt1cERvY3VtZW50IHsKIAogICAgIF9pZEZvckNsb25lKG9yaWdpbmFsKQogICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQob3JpZ2luYWwgaW5zdGFuY2VvZiBNYXJrdXBOb2RlKTsKKyAg
ICAgICAgYXNzZXJ0Lm9rKG9yaWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CiAgICAgICAg
IHJldHVybiB0aGlzLl9ub2RlSWQrKzsKICAgICB9CiAKQEAgLTM4LDcgKzQwLDcgQEAgY29uc3Qg
TWFya3VwRG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogCiAgICAgbWFya3Vw
KG5vZGUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChub2RlIGluc3RhbmNlb2YgTWFy
a3VwTm9kZSk7CisgICAgICAgIGFzc2VydC5vayhub2RlIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7
CiAgICAgICAgIHJldHVybiBub2RlLl9tYXJrdXAoKTsKICAgICB9CiAKQEAgLTU2LDcgKzU4LDcg
QEAgY29uc3QgTWFya3VwRG9jdW1lbnQgPSBuZXcgY2xhc3MgTWFya3VwRG9jdW1lbnQgewogY2xh
c3MgTWFya3VwTm9kZSB7CiAgICAgY29uc3RydWN0b3IoaWQpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydCh0eXBlb2YoaWQpID09ICdudW1iZXInKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHR5
cGVvZihpZCkgPT0gJ251bWJlcicpOwogICAgICAgICB0aGlzLl9pZCA9IGlkOwogICAgICAgICB0
aGlzLl9wYXJlbnROb2RlID0gbnVsbDsKICAgICB9CkBAIC03Myw5ICs3NSw5IEBAIGNsYXNzIE1h
cmt1cE5vZGUgewogCiAgICAgX2Nsb25lTm9kZURhdGEoY2xvbmVkTm9kZSkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZihjbG9uZWROb2RlLl9pZCkgPT0gJ251bWJlcicpOwot
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGNsb25lZE5vZGUuX3BhcmVudE5vZGUgPT0gbnVsbCk7CisgICAg
ICAgIGFzc2VydC5vayh0eXBlb2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKKyAgICAg
ICAgYXNzZXJ0Lm9rKHRoaXMuX2lkICE9IGNsb25lZE5vZGUuX2lkKTsKKyAgICAgICAgYXNzZXJ0
Lm9rKGNsb25lZE5vZGUuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAgICAgfQogCiAgICAgcmVtb3Zl
KCkKQEAgLTExMyw3ICsxMTUsNyBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMgTWFy
a3VwTm9kZSB7CiAgICAgICAgIGlmIChjaGlsZC5fcGFyZW50Tm9kZSkKICAgICAgICAgICAgIGNo
aWxkLnJlbW92ZSgpOwogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNoaWxkLl9wYXJlbnROb2Rl
ID09IG51bGwpOworICAgICAgICBhc3NlcnQub2soY2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7
CiAgICAgICAgIHRoaXMuX2NoaWxkTm9kZXMucHVzaChjaGlsZCk7CiAgICAgICAgIGNoaWxkLl9w
YXJlbnROb2RlID0gdGhpczsKICAgICB9CkBAIC0xMjMsNyArMTI1LDcgQEAgY2xhc3MgTWFya3Vw
UGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewogICAgICAgICBpZiAoY2hpbGQuX3BhcmVu
dE5vZGUgIT0gdGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29uc3QgaW5kZXgg
PSB0aGlzLl9jaGlsZE5vZGVzLmluZGV4T2YoY2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChpbmRleCA+PSAwKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0
aGlzLl9jaGlsZE5vZGVzLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgIGNoaWxkLl9wYXJlbnRO
b2RlID0gbnVsbDsKICAgICB9CkBAIC0xNDIsMTAgKzE0NCwxMCBAQCBjbGFzcyBNYXJrdXBQYXJl
bnROb2RlIGV4dGVuZHMgTWFya3VwTm9kZSB7CiAKICAgICAgICAgaWYgKG5ld0NoaWxkLl9wYXJl
bnROb2RlKQogICAgICAgICAgICAgbmV3Q2hpbGQucmVtb3ZlKCk7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KG5ld0NoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQub2so
bmV3Q2hpbGQuX3BhcmVudE5vZGUgPT0gbnVsbCk7CiAKICAgICAgICAgY29uc3QgaW5kZXggPSB0
aGlzLl9jaGlsZE5vZGVzLmluZGV4T2Yob2xkQ2hpbGQpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChpbmRleCA+PSAwKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGluZGV4ID49IDApOwogICAgICAgICB0
aGlzLl9jaGlsZE5vZGVzLnNwbGljZShpbmRleCwgMSwgbmV3Q2hpbGQpOwogICAgICAgICBvbGRD
aGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7CiAgICAgICAgIG5ld0NoaWxkLl9wYXJlbnROb2RlID0g
dGhpczsKQEAgLTE1NSw4ICsxNTcsOCBAQCBjbGFzcyBNYXJrdXBQYXJlbnROb2RlIGV4dGVuZHMg
TWFya3VwTm9kZSB7CiBjbGFzcyBNYXJrdXBDb250ZW50Um9vdCBleHRlbmRzIE1hcmt1cFBhcmVu
dE5vZGUgewogICAgIGNvbnN0cnVjdG9yKGlkLCBob3N0KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoaG9zdCBpbnN0YW5jZW9mIE1hcmt1cEVsZW1lbnQpOwotICAgICAgICBjb25zb2xl
LmFzc2VydChob3N0Ll9jb250ZW50Um9vdCA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhv
c3QgaW5zdGFuY2VvZiBNYXJrdXBFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKGhvc3QuX2Nv
bnRlbnRSb290ID09IG51bGwpOwogICAgICAgICBzdXBlcihpZCk7CiAgICAgICAgIHRoaXMuX2hv
c3RFbGVtZW50ID0gbnVsbDsKICAgICAgICAgaG9zdC5fY29udGVudFJvb3QgPSB0aGlzOwpAQCAt
MTc1LDcgKzE3Nyw3IEBAIGNsYXNzIE1hcmt1cEVsZW1lbnQgZXh0ZW5kcyBNYXJrdXBQYXJlbnRO
b2RlIHsKICAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSkKICAgICB7CiAgICAgICAgIHN1cGVyKGlk
KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mKG5hbWUpID09ICdzdHJpbmcnKTsKKyAg
ICAgICAgYXNzZXJ0Lm9rKHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwogICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gbmV3IE1hcDsKICAgICAg
ICAgdGhpcy5fdmFsdWUgPSBudWxsOwpAQCAtMzY0LDcgKzM2Niw3IEBAIGNsYXNzIE1hcmt1cENv
bXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKICAgICAgICAgc3VwZXIo
KTsKICAgICAgICAgdGhpcy5fbmFtZSA9IGNvbXBvbmVudHNCeUNsYXNzLmdldChuZXcudGFyZ2V0
KTsKICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFt
ZSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbXBvbmVudCwgYENvbXBvbmVudCAiJHt0aGlz
Ll9uYW1lfSIgaGFzIG5vdCBiZWVuIGRlZmluZWRgKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGNvbXBv
bmVudCwgYENvbXBvbmVudCAiJHt0aGlzLl9uYW1lfSIgaGFzIG5vdCBiZWVuIGRlZmluZWRgKTsK
ICAgICAgICAgdGhpcy5fY29tcG9uZW50SWQgPSBjb21wb25lbnQuaWQ7CiAgICAgICAgIHRoaXMu
X2VsZW1lbnQgPSBudWxsOwogICAgICAgICB0aGlzLl9jb250ZW50Um9vdCA9IG51bGw7CkBAIC00
MTIsNyArNDE0LDcgQEAgY2xhc3MgTWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNv
bXBvbmVudEJhc2UgewogCiAgICAgc3RhdGljIHJ1blJlbmRlckxvb3AoKQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoIWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAg
IGFzc2VydC5vayghY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKICAgICAgICAgZG8gewog
ICAgICAgICAgICAgY29uc3QgY3VycmVudFNldCA9IFsuLi5jb21wb25lbnRzVG9SZW5kZXJdOwog
ICAgICAgICAgICAgY29tcG9uZW50c1RvUmVuZGVyLmNsZWFyKCk7CkBAIC00MjksMTQgKzQzMSwx
NCBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFz
ZSB7CiAKICAgICByZW5kZXJSZXBsYWNlKHBhcmVudE5vZGUsIGNvbnRlbnQpCiAgICAgewotICAg
ICAgICBjb25zb2xlLmFzc2VydChjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQYXJl
bnROb2RlKTsKKyAgICAgICAgYXNzZXJ0Lm9rKGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9
PSB0aGlzKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHBhcmVudE5vZGUgaW5zdGFuY2VvZiBNYXJrdXBQ
YXJlbnROb2RlKTsKICAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAg
ICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICAgTWFya3VwQ29tcG9uZW50QmFzZS5fYWRk
Q29udGVudFRvRWxlbWVudChwYXJlbnROb2RlLCBjb250ZW50KTsKIAogICAgICAgICAgICAgY29u
c3QgY29tcG9uZW50ID0gY29tcG9uZW50c01hcC5nZXQodGhpcy5fbmFtZSk7Ci0gICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChjb21wb25lbnQpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbXBv
bmVudCk7CiAgICAgICAgICAgICB0aGlzLl9hcHBseVN0eWxlT3ZlcnJpZGVzKHBhcmVudE5vZGUs
IGNvbXBvbmVudC5zdHlsZU92ZXJyaWRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ5Myw3ICs0
OTUsNyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29tbW9uQ29tcG9uZW50
QmFzZSB7CiAKICAgICBzdGF0aWMgcmVzZXQoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoIWN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CisgICAgICAgIGFzc2VydC5vayghY3Vy
cmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KTsKICAgICAgICAgTWFya3VwRG9jdW1lbnQucmVzZXQo
KTsKICAgICAgICAgY29tcG9uZW50c01hcC5jbGVhcigpOwogICAgICAgICBjb21wb25lbnRzQnlD
bGFzcy5jbGVhcigpOwpAQCAtNTY3LDkgKzU2OSw5IEBAIGNsYXNzIE1hcmt1cENvbXBvbmVudEJh
c2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsKIAogICAgIHN0YXRpYyBkZWZpbmVFbGVt
ZW50KG5hbWUsIGNvbXBvbmVudENsYXNzKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
IWNvbXBvbmVudHNNYXAuZ2V0KG5hbWUpLCBgVGhlIGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFs
cmVhZHkgYmVlbiBkZWZpbmVkYCk7CisgICAgICAgIGFzc2VydC5vayghY29tcG9uZW50c01hcC5n
ZXQobmFtZSksIGBUaGUgY29tcG9uZW50ICIke25hbWV9IiBoYXMgYWxyZWFkeSBiZWVuIGRlZmlu
ZWRgKTsKICAgICAgICAgY29uc3QgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcyA9IGNvbXBvbmVu
dHNCeUNsYXNzLmdldChjb21wb25lbnRDbGFzcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFl
eGlzdGluZ0NvbXBvbmVudEZvckNsYXNzLCBleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzCisgICAg
ICAgIGFzc2VydC5vayghZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25l
bnRGb3JDbGFzcwogICAgICAgICAgICAgPyBgVGhlIGNvbXBvbmVudCBjbGFzcyAiJHtleGlzdGlu
Z0NvbXBvbmVudEZvckNsYXNzfSIgaGFzIGFscmVhZHkgYmVlbiB1c2VkIHRvIGRlZmluZSBhbm90
aGVyIGNvbXBvbmVudCAiJHtleGlzdGluZ0NvbXBvbmVudEZvckNsYXNzLm5hbWV9ImAgOiAnJyk7
CiAgICAgICAgIGNvbXBvbmVudHNNYXAuc2V0KG5hbWUsIHsKICAgICAgICAgICAgIGNsYXNzOiBj
b21wb25lbnRDbGFzcywKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL29zLWJ1aWxkLWZldGNoZXIuanMKaW5kZXggOTkzNDA3OWQ2YjNhYTQ5ZDg3ZWU0M2RhNTk1
MWE3ZGMxMDJjMDlmYy4uMmQ2ZjUwYTk1NzMwZGNkNjZjNDc0NTgzMWJiOGViN2ViN2YyM2E2YiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxkLWZl
dGNoZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL29zLWJ1aWxk
LWZldGNoZXIuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBjbGFzcyBPU0J1aWxkRmV0Y2hlciB7CiAg
ICAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgR290ICR7T2JqZWN0LmtleXMoKG93bmVk
Q29tbWl0cykpLmxlbmd0aH0gb3duZWQgY29tbWl0cyBmb3IgIiR7Y29tbWl0WydyZXZpc2lvbidd
fSJgKTsKICAgICAgICAgICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5TmFtZSBpbiBvd25lZENv
bW1pdHMpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3duZWRDb21taXQgPSBvd25lZENv
bW1pdHNbcmVwb3NpdG9yeU5hbWVdOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE9iamVjdC5rZXlzKG93bmVkQ29tbWl0KSwgWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhvd25lZENvbW1pdCks
IFsncmV2aXNpb24nXSk7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2Yob3duZWRD
b21taXRbJ3JldmlzaW9uJ10pID09ICdzdHJpbmcnKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgY29tbWl0Wydvd25lZENvbW1pdHMnXSA9IG93bmVkQ29tbWl0czsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCmluZGV4IGFmNmFhMzY4ZWY1
MGJiODc4MzE3NjdmNmFiNzU2MzFjMjgxZGUwYzcuLjQ3NzM3NjY2MDY2MGI4MDZkNDExMTk5MjA3
Zjk0MjhkY2E0NDcyNjAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9yZW1vdGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3Jl
bW90ZS5qcwpAQCAtMzEsMTQgKzMxLDE0IEBAIGNsYXNzIE5vZGVSZW1vdGVBUEkgZXh0ZW5kcyBD
b21tb25SZW1vdGVBUEkgewogICAgIGNvbmZpZ3VyZShzZXJ2ZXIpCiAgICAgewogICAgICAgICBh
c3NlcnQoc2VydmVyLnNjaGVtZSA9PT0gJ2h0dHAnIHx8IHNlcnZlci5zY2hlbWUgPT09ICdodHRw
cycpOwotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycs
ICdob3N0IHNob3VsZCBiZSBhIHN0cmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dHlwZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycsICdob3N0IHNob3VsZCBiZSBhIHN0cmluZycp
OwogICAgICAgICBhc3NlcnQoIXNlcnZlci5wb3J0IHx8IHR5cGVvZihzZXJ2ZXIucG9ydCkgPT0g
J251bWJlcicsICdwb3J0IHNob3VsZCBiZSBhIG51bWJlcicpOwogCiAgICAgICAgIGxldCBhdXRo
ID0gbnVsbDsKICAgICAgICAgaWYgKHNlcnZlci5hdXRoKSB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodHlwZW9mKHNlcnZlci5hdXRoKSwgJ29iamVjdCcsICdhdXRoIHNob3VsZCBiZSBhIGRp
Y3Rpb25hcnkgd2l0aCB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXMga2V5cycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC51c2VybmFtZSksICdzdHJpbmcnLCAn
YXV0aCBzaG91bGQgY29udGFpbiBhIHN0cmluZyB1c2VybmFtZScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aC5wYXNzd29yZCksICdzdHJpbmcnLCAnYXV0aCBz
aG91bGQgY29udGFpbiBhIHN0cmluZyBwYXNzd29yZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUg
YSBkaWN0aW9uYXJ5IHdpdGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAn
c3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAn
c3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4gYSBzdHJpbmcgcGFzc3dvcmQnKTsKICAgICAg
ICAgICAgIGF1dGggPSB7CiAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHNlcnZlci5hdXRoLnVz
ZXJuYW1lLAogICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBzZXJ2ZXIuYXV0aC5wYXNzd29yZCwK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCmluZGV4
IDZhMTFkYmM2N2ZmNjM1NjIyYTM4ZTc3MTg5NGU5Mjg1YTM3NTc3MDcuLjRiZWJhYmQ1YWE3MjE0
NTNkZTdkZTczNzk3NDlmODgwYTE3NGM1MWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwpAQCAtNyw2ICs3LDggQEAgZnVuY3Rpb24gaW1wb3J0
RnJvbVYzKGZpbGUsIG5hbWUpCiAgICAgZ2xvYmFsW25hbWVdID0gcmVxdWlyZShtb2RlbHNEaXJl
Y3RvcnkgKyBmaWxlKVtuYW1lXTsKIH0KIAorcmVxdWlyZSgnLi9hc3NlcnQtb3ZlcnJpZGUuanMn
KS5tYWtlQ29uc29sZUFzc2VydFRocm93KCk7CisKIGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEt
bW9kZWwuanMnLCAnRGF0YU1vZGVsT2JqZWN0Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9kYXRh
LW1vZGVsLmpzJywgJ0xhYmVsZWRPYmplY3QnKTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LXNldC10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1zZXQtdGVzdHMuanMKaW5kZXggYTI2NmE4
MGZiOTU1ZWUxYjkyMGM5ZGVlNzk2MTZiNTQzZTA3Y2RmYy4uMzg5M2E1MmVhYjdjZTcwNjA0Nzhm
NDk4MTI3YTMxNTkzNjEyMDIzZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvY29tbWl0LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9jb21taXQtc2V0LXRlc3RzLmpzCkBAIC0yMiwxMCArMjIsOCBAQCBm
dW5jdGlvbiBjcmVhdGVSb290KGRlbGV0ZWRBdCkKIHsKICAgICBjb25zdCBkYXRhID0geydjcmVh
dGVkQXQnOiBuZXcgRGF0ZSgnMjAxNy0wNS0wMVQyMTowMzoyN1onKSwgJ2ZpbGVuYW1lJzogJ3Jv
b3QuZGF0JywgJ2V4dGVuc2lvbic6ICcuZGF0JywgJ2F1dGhvcic6ICdzb21lIHVzZXInLAogICAg
ICAgICBzaXplOiAxNjQ1MjIzNCwgc2hhMjU2OiAnMDNlZWQ3YTg0OTRhYjg3OTRjNDRiN2Q0MzA4
ZTU1NDQ4ZmM1NmY0ZDZjMTc1ODA5YmE5NjhmNzhmNjU2ZDU4ZCd9OwotICAgIGlmIChkZWxldGVk
QXQpIHsKLSAgICAgICAgY29uc29sZS5sb2coZGVsZXRlZEF0KTsKKyAgICBpZiAoZGVsZXRlZEF0
KQogICAgICAgICBkYXRhWydkZWxldGVkQXQnXSA9IGRlbGV0ZWRBdDsKLSAgICB9CiAgICAgcmV0
dXJuIFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24oNDU2LCBkYXRhKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422465</attachid>
            <date>2021-03-05 19:08:00 -0800</date>
            <delta_ts>2021-03-06 06:32:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222463-20210305190757.patch</filename>
            <type>text/plain</type>
            <size>876069</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTA0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlYzQ3NzhiMjM4ZjZlYmI1ZDM5NjMzZWQzZDQ3ODUyNjU0ODI5YzZkLi40MjVmMjNkNmQ5
ZmQ5N2NjZmYzZWRkMWZlNjM0M2QwMzNjYWIyZTg3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAyMS0wMy0wNSAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisgICAgICAgIAorICAgICAgICBNYWtlIHNlcnZlciB0ZXN0IHJ1biB3
aXRoIG5ldyBub2RlIHZlcnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjQ2MworCisgICAgICAgIENoYW5nZSBhc3NlcnQuZXF1YWwgdG8gYXNz
ZXJ0LnN0cmljdEVxdWFsIHNpbmNlIG5vZGUgZGVwcmVjYXRlZCB0aGlzIEFQSQorICAgICAgICBB
ZGQgYSBuZXcgZnVuY3Rpb24gY29uc29sZS5hc3NlcnQgdG8gbWFrZSBzdXJlIGl0IHdpbGwgdGhy
b3cgYW4gZXJyb3IKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qczoKKyAgICAgICAgKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTCk6CisgICAgICAgIChSZXBvc2l0b3J5
KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzOgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzOgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6CisgICAgICAg
IChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6Cisg
ICAgICAgIChhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZCk6CisgICAgICAgIChyZXR1
cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVu
KToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzOgorICAgICAg
ICAocmV0dXJuLlRlc3RTZXJ2ZXIucmVtb3RlQVBJLmdldEpTT04uc3RyaW5nX2FwcGVhcmVkX2hl
cmUudGhlbik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVz
dHMuanM6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5q
czoKKyAgICAgICAgKGVtcHR5UmVwb3J0LnRoZW4pOgorICAgICAgICAoYXN5bmMgaW5pdGlhbFJl
cG9ydENvbW1pdHMpOgorICAgICAgICAoYXN5bmMgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1
cyk6CisgICAgICAgIChhc3luYyB0ZXN0V2l0aEV4cGVjdGVkRmFpbHVyZSk6CisgICAgICAgICog
c2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanM6CisgICAgICAgIChlbXB0eVJlcG9ydC50
aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXRlc3QtZ3JvdXBzLmpzOgorICAgICAg
ICAqIHNlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzOgorICAgICAg
ICAodXBkYXRlLnRoZW4pOgorICAgICAgICAodGhlbi5yZXNwb25zZS5kYi5zZWxlY3RBbGwuc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICh0aGVuLmRiLnNlbGVjdEFsbC5zdHJp
bmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHRoZW4uTWFuaWZlc3QuZmV0Y2gudGhl
bik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanM6CisgICAgICAg
IChyZXR1cm4uVGVzdFNlcnZlci5yZW1vdGVBUEkuZ2V0SlNPTi5zdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxk
LXJlcXVlc3RzLXRlc3RzLmpzOgorICAgICAgICAoYXN5bmMgY3JlYXRlQW5hbHlzaXNUYXNrKToK
KyAgICAgICAgKGNvbnN0LmNvbW1pdFNldC5vZi51cGRhdGVkR3JvdXBzLjAucmVxdWVzdGVkQ29t
bWl0U2V0cyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1h
bmFseXNpcy10YXNrLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qczoKKyAgICAgICAgKGNyZWF0ZUFuYWx5c2lz
VGFzayk6CisgICAgICAgIChyZXR1cm4uY3JlYXRlQW5hbHlzaXNUYXNrLnN0cmluZ19hcHBlYXJl
ZF9oZXJlLnRoZW4pOgorICAgICAgICAocmV0dXJuLmFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
ay5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9o
ZXJlLnRoZW4pOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1y
dW4tc3RhdHVzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRh
dGUtdGVzdC1ncm91cC10ZXN0cy5qczoKKyAgICAgICAgKGFzeW5jIGNyZWF0ZUFuYWx5c2lzVGFz
ayk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRl
c3RzLmpzOgorICAgICAgICAoVGVzdFNlcnZlci50ZXN0Q29uZmlnLnVwbG9hZEZpbGVMaW1pdElu
TUIuMS50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zLmpzOgorICAgICAgICAoYXN5bmMgYXNzZXJ0VGhyb3dzKToKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzOgorICAgICAgICAoVGVtcG9yYXJ5
RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZU9mU2l6ZUluTUIpOgorICAgICAgICAqIHNlcnZlci10ZXN0
cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qczoKKyAgICAgICAgKGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKToKKyAgICAgICAgKHRoZW4ucmVmZXRjaE1hbmlmZXN0LnRoZW4pOgor
ICAgICAgICAoZ2V0QnVpbGRlck5hbWVUb0lETWFwUHJvbWlzZS50aGVuKToKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qczoKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczoKKyAg
ICAgICAgKGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KToKKyAgICAgICAgKiB0b29scy9qcy9hc3Nl
cnQtb3ZlcnJpZGUuanM6IEFkZGVkLgorICAgICAgICAobWFrZUNvbnNvbGVBc3NlcnRUaHJvdyk6
CisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzOgorICAgICAgICAoQnVpbGRi
b3RCdWlsZEVudHJ5LnByb3RvdHlwZS5pbml0aWFsaXplKToKKyAgICAgICAgKEJ1aWxkYm90QnVp
bGRFbnRyeS5wcm90b3R5cGUuYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRhdGVJc05lZWRlZCk6Cisg
ICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkpOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJv
dG90eXBlLnNjaGVkdWxlUmVxdWVzdCk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyk6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fcGFyc2VSZXBvc2l0b3J5R3JvdXApOgor
ICAgICAgICAoQnVpbGRib3RTeW5jZXIuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcpOgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIpOgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJh
YmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuX3ZhbGlkYXRl
UmVxdWVzdHMpOgorICAgICAgICAqIHRvb2xzL2pzL21hcmt1cC1jb21wb25lbnQuanM6CisgICAg
ICAgIChjb25zdC5NYXJrdXBEb2N1bWVudC5uZXcuTWFya3VwRG9jdW1lbnQucHJvdG90eXBlLl9p
ZEZvckNsb25lKToKKyAgICAgICAgKGNvbnN0Lk1hcmt1cERvY3VtZW50Lm5ldy5NYXJrdXBEb2N1
bWVudC5wcm90b3R5cGUubWFya3VwKToKKyAgICAgICAgKiB0b29scy9qcy9vcy1idWlsZC1mZXRj
aGVyLmpzOgorICAgICAgICAocHJvdG90eXBlLl9hZGRPd25lZENvbW1pdHNGb3JCdWlsZCk6Cisg
ICAgICAgICogdG9vbHMvanMvcmVtb3RlLmpzOgorICAgICAgICAoTm9kZVJlbW90ZUFQSS5wcm90
b3R5cGUuY29uZmlndXJlKToKKyAgICAgICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAg
ICAgICogdW5pdC10ZXN0cy9jb21taXQtc2V0LXRlc3RzLmpzOgorCiAyMDIxLTAyLTE4ICBEZXdl
aSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IGEg
c3luY2luZyBzY3JpcHQgbWF5IHRyeSB0byByZXVzZSBhIGRlbGV0ZSByb290LgpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnku
anMKaW5kZXggOTMxOTg5OWRkY2Y2MDI3NTlkMDI0ODA5MDM1OTU3ZmUwNjNmMWE0Yi4uMzVkZDM1
ZTRiZWMzNjA1MGMzNmE0NTFjMDI2ODNjODdmZmE1OGE4YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCkBAIC02
MCw3ICs2MCw3IEBAIGNsYXNzIFJlcG9zaXRvcnkgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5u
YW1lKCkgPCBiLm5hbWUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBhLmlkKCkgLSBiLmlk
KCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGIuX2JsYW1lVXJsKSAvLyBhID4gYgogICAgICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRm
b3Jtcy10ZXN0cy5qcwppbmRleCAxMTJiMDkxNWZmOGY5OTQyNWVlNjg0NjUzYzI5NTQyYTQ3OTk5
YmM0Li4zYmRlZGVjN2I5YzJjMWJmN2Y0YTM5MGM2Yjc4Y2JkYzc3MjMwZTMzIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWlu
LXBsYXRmb3Jtcy10ZXN0cy5qcwpAQCAtNDUsMTkgKzQ1LDE5IEBAIGRlc2NyaWJlKCIvYWRtaW4v
cGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgncGxhdGZvcm1zJywgJ25hbWUnKTsKICAgICAgICAgfSkudGhlbigocGxhdGZvcm1zKSA9PiB7
CiAgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5rIE1v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRQbGF0Zm9y
bXNbMF1bJ25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9sZFBsYXRmb3Jtc1sxXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFBsYXRmb3Jtc1syXVsnbmFtZSddLCAnVHJ1bmsgTW91
bnRhaW4gTGlvbicpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZFBsYXRmb3Jtc1sxXVsnaWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkUGxhdGZvcm1zWzJdWydp
ZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNl
bGVjdEFsbCgncGxhdGZvcm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1BsYXRmb3JtcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1BsYXRmb3Jtcy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1sw
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jtc1sxXSwgb2xkUGxh
dGZvcm1zWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdQbGF0Zm9ybXMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobmV3UGxhdGZv
cm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC02OSwxNSArNjksMTUgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsK
ICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBvbGRUZXN0UnVucyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9s
ZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10s
ICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
Ml1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMV1bJ3J1bl9z
dW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RS
dW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKICAgICAgICAgICAg
ICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9p
ZCddLCAnZGVzdGluYXRpb24nOiBvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1faWQnXX0pOwpAQCAt
ODUsMjAgKzg1LDIwIEBAIGRlc2NyaWJlKCIvYWRtaW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgbmV3VGVzdFJ1bnMgPSByZXN1
bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVucy5sZW5ndGgsIDQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5faWQnXSwgb2xk
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sxXVsn
cnVuX2lkJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydwbGF0
Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMl1bJ3J1
bl9pZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzNdWydydW5f
aWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3BsYXRmb3Jt
X25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3J1bl9jb25maWcnXSwgbmV3VGVzdFJ1bnNbM11bJ3J1
bl9jb25maWcnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sw
XVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNr
cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5f
c3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RS
dW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCddKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1
bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRm
b3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0
UnVuc1szXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rl
c3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUn
XSwgMjQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5ld1Rlc3RSdW5zWzFdWydy
dW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmlnJ10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTE0LDEzICsxMTQsMTMgQEAgZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9y
bXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JD
b25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgb2xkQ29uZmlncyA9
IHJlc3VsdC5yb3dzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9u
YW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10s
IHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENv
bmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9sZENvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJl
cG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9s
ZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSdd
LCAnY3VycmVudCcpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9w
bGF0Zm9ybXMucGhwJywKICAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6
IG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZENvbmZpZ3Nb
MV1bJ3BsYXRmb3JtX2lkJ119KTsKQEAgLTEyOCwxMyArMTI4LDEzIEBAIGRlc2NyaWJlKCIvYWRt
aW4vcGxhdGZvcm1zIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5
KHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c1syXVsncGxh
dGZvcm0nXV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IG5ld0NvbmZpZ3MgPSByZXN1bHQucm93czsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdDb25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmln
c1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRl
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5cGUn
XSwgJ2Jhc2VsaW5lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsn
cGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1
cnJlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsncGxh
dGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5
cGUnXSwgJ2Jhc2VsaW5lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29u
Zmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChuZXdDb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAn
RnJhbWVSYXRlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV3Q29uZmlnc1sx
XVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVw
cm9jZXNzLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwppbmRleCAyZmY1M2NiZjg4YWMy
NGIwZTkyMTZiMGE3MmU0ZTM3MDkyMjdhODgxLi5iMDhhZjlmZGY5YzZiNDMwNTAyOTBkYzc1YTIz
NDVhNzI2NTFmOGU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpz
CkBAIC00OCwxMCArNDgsMTAgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVS
ZXBvcnRXaXRoUmV2aXNpb25zKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ1dl
YktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVwb3NpdG9yaWVzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXRSZXBzaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXS5vd25lciA9PSAxID8gcmVwb3Np
dG9yaWVzWzFdLmlkIDogcmVwb3NpdG9yaWVzWzBdLmlkOwogICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzIxMzIxNCcsICdyZXBvc2l0b3J5
Jzogd2Via2l0UmVwc2l0b3J5SWR9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBA
IC02NSwyNyArNjUsMjcgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBv
cnRbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0pOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkcyA9IHJlc3VsdFsw
XTsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRbMV07Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzWzBdWyd0YWcnXSwgMTk4Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsndGFnJ10s
ICcxOTg2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgcmVwb3J0SWQgPSByZXBvcnRzWzBdWydpZCddOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX3RhZyddLCAxOTg2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzWzBdWydidWlsZF90YWcnXSwgJzE5ODYnKTsK
ICAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9i
dWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9
KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVu
Z3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAw
KTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKGAvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JHtyZXBvcnRJZH1gKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdi
dWlsZHMnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRzWzBdWyd0YWcnXSwgMTk4Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzWzBd
Wyd0YWcnXSwgJzE5ODYnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTk1LDEwICs5NSwx
MCBAQCBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFswXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9u
c2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgb3JpZ2luYWxSZXByb3QgPSByZXBvcnRzWzBdOwogICAg
ICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdVUERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxk
ID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpA
QCAtMTA2LDE0ICsxMDYsMTQgQEAgZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBj
b25zdCBuZXdQb3J0ID0gcmVwb3J0c1swXTsKICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Wydj
b21taXR0ZWRfYXQnXSA9IG51bGw7CiAgICAgICAgICAgICBuZXdQb3J0Wydjb21taXR0ZWRfYXQn
XSA9IG51bGw7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3JpZ2luYWxSZXByb3RbJ2J1
aWxkJ10sIG5ld1BvcnRbJ2J1aWxkJ10pOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKG9yaWdpbmFsUmVwcm90WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKICAgICAgICAg
ICAgIG9yaWdpbmFsUmVwcm90WydidWlsZCddID0gbnVsbDsKICAgICAgICAgICAgIG5ld1BvcnRb
J2J1aWxkJ10gPSBudWxsOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvcmlnaW5hbFJl
cHJvdCwgbmV3UG9ydCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG9yaWdp
bmFsUmVwcm90LCBuZXdQb3J0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVl
c3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggODNmYmU1OTdmZTc5YTNhMWJmODA1MGFjODM3
N2JkZDg2NDc0NGU2Ni4uY2RlNWVkZjJiYjFmMjdkNWQzOTcxNWNiMzZhZWY2MGNiZTUxMmIwOSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVp
bGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTEzLDcgKzEzLDcgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hv
dWxkIHJldHVybiAiVHJpZ2dlcmFibGVOb3RGb3VuZCIgd2hlbiB0aGUgZGF0YWJhc2UgaXMgZW1w
dHknLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JykudGhlbigoY29udGVudCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnVHJpZ2dlcmFi
bGVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0
YXR1cyddLCAnVHJpZ2dlcmFibGVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMjEsMTEgKzIxLDExIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVp
bGRfdHJpZ2dlcmFibGVzJywge25hbWU6ICdidWlsZC13ZWJraXQnfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2J1
aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0
KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywg
J3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ10sIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMywzNiArMzMsMzYgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBN
b2NrRGF0YS5hZGRUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
ICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21t
aXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwg
WydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBs
b2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sCiAgICAgICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25l
cjogIjkzMTE2IiwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsx
XS5pZCwgNDA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzFdLmlkKSwgNDA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCiAgICAgICAgICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAg
ICAgICAgICAge2NvbW1pdDogJzIwMTcnLCBjb21taXRPd25lcjogIjk2MzM2IiwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1pdE93bmVyOiBu
dWxsLCBpZDogODc4MzIsIHJlcG9zaXRvcnk6ICc5JywgcmV2aXNpb246ICcxMC4xMSAxNUEyODQn
LCB0aW1lOiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dHMnXVsxXSwge2NvbW1pdE93bmVyOiBudWxsLCBpZDogOTMxMTYsIHJlcG9zaXRvcnk6ICcxMScs
IHJldmlzaW9uOiAnMTkxNjIyJywgdGltZTogMTQ0NTk0NTgxNjg3OH0pCi0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXSwge2NvbW1pdE93bmVyOiAnOTMx
MTYnLCBpZDogJzE3OTcnLCByZXBvc2l0b3J5OiAnMjEzJywgcmV2aXNpb246ICdvd25lZC1qc2Mt
NjE2MScsIHRpbWU6IDE0NTY5NjA3OTUzMDB9KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRzJ11bM10sIHtjb21taXRPd25lcjogbnVsbCwgaWQ6IDk2MzM2LCBy
ZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9
KQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtj
b21taXRPd25lcjogJzk2MzM2JywgaWQ6IDIwMTcsIHJlcG9zaXRvcnk6ICcyMTMnLCByZXZpc2lv
bjogJ293bmVkLWpzYy05MTkxJywgdGltZTogMTQ2MjIzMDgzNzEwMH0pCisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXSwge2NvbW1p
dE93bmVyOiBudWxsLCBpZDogJzg3ODMyJywgcmVwb3NpdG9yeTogJzknLCByZXZpc2lvbjogJzEw
LjExIDE1QTI4NCcsIHRpbWU6IDB9KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudFsnY29tbWl0cyddWzFdLCB7Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTMxMTYn
LCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IDE0NDU5NDU4MTY4
Nzh9KQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRz
J11bMl0sIHtjb21taXRPd25lcjogJzkzMTE2JywgaWQ6ICcxNzk3JywgcmVwb3NpdG9yeTogJzIx
MycsIHJldmlzaW9uOiAnb3duZWQtanNjLTYxNjEnLCB0aW1lOiAxNDU2OTYwNzk1MzAwfSkKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzNdLCB7
Y29tbWl0T3duZXI6IG51bGwsIGlkOiAnOTYzMzYnLCByZXBvc2l0b3J5OiAnMTEnLCByZXZpc2lv
bjogJzE5MjczNicsIHRpbWU6IDE0NDgyMjUzMjU2NTB9KQorICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bNF0sIHtjb21taXRPd25lcjogJzk2MzM2
JywgaWQ6ICcyMDE3JywgcmVwb3NpdG9yeTogJzIxMycsIHJldmlzaW9uOiAnb3duZWQtanNjLTkx
OTEnLCB0aW1lOiAxNDYyMjMwODM3MTAwfSkKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOwogICAgICAgICAg
ICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdWydjcmVhdGVkQXQnXSA9IDA7CiAgICAgICAg
ICAgICBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV1bJ2NyZWF0ZWRBdCddID0gMDsKICAgICAg
ICAgICAgIGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXVsnY3JlYXRlZEF0J10gPSAwOwogICAg
ICAgICAgICAgY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdWydjcmVhdGVkQXQnXSA9IDA7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXSwg
e2lkOiAnNzA0JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0b3J5
R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6ICc5
MDAnLCBvcmRlcjogJzAnLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywgc3Rh
dHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRBdDog
MH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0sIHtpZDogJzcwNScsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVw
b3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdy
b3VwOiAnOTAwJywgb3JkZXI6ICcxJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVzOiAncGVuZGlu
ZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVh
dGVkQXQ6IDB9KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzJdLCB7aWQ6ICc3MDYnLCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAw
MCcsIHJlcG9zaXRvcnlHcm91cDogJzIwMDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScs
IHRlc3RHcm91cDogJzkwMCcsIG9yZGVyOiAnMicsIGNvbW1pdFNldDogJzQwMycsIHN0YXR1czog
J3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlwdGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVs
bCwgY3JlYXRlZEF0OiAwfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVszXSwge2lkOiAnNzA3JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJs
ZTogJzEwMDAnLCByZXBvc2l0b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3Jt
OiAnNjUnLCB0ZXN0R3JvdXA6ICc5MDAnLCBvcmRlcjogJzMnLCBjb21taXRTZXQ6ICc0MDQnLCBz
dGF0dXM6ICdwZW5kaW5nJywgc3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVp
bGQ6IG51bGwsIGNyZWF0ZWRBdDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0sIHtpZDogJzcwNCcsIHRhc2s6ICcxMDgw
JywgdHJpZ2dlcmFibGU6ICcxMDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcy
MDAnLCBwbGF0Zm9ybTogJzY1JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICcwJywgY29tbWl0
U2V0OiAnNDAzJywgc3RhdHVzOiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1
cmw6IG51bGwsIGJ1aWxkOiBudWxsLCBjcmVhdGVkQXQ6IDB9KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLCB7aWQ6ICc3MDUn
LCB0YXNrOiAnMTA4MCcsIHRyaWdnZXJhYmxlOiAnMTAwMCcsIHJlcG9zaXRvcnlHcm91cDogJzIw
MDEnLCB0ZXN0OiAnMjAwJywgcGxhdGZvcm06ICc2NScsIHRlc3RHcm91cDogJzkwMCcsIG9yZGVy
OiAnMScsIGNvbW1pdFNldDogJzQwNCcsIHN0YXR1czogJ3BlbmRpbmcnLCBzdGF0dXNEZXNjcmlw
dGlvbjogbnVsbCwgdXJsOiBudWxsLCBidWlsZDogbnVsbCwgY3JlYXRlZEF0OiAwfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsy
XSwge2lkOiAnNzA2JywgdGFzazogJzEwODAnLCB0cmlnZ2VyYWJsZTogJzEwMDAnLCByZXBvc2l0
b3J5R3JvdXA6ICcyMDAxJywgdGVzdDogJzIwMCcsIHBsYXRmb3JtOiAnNjUnLCB0ZXN0R3JvdXA6
ICc5MDAnLCBvcmRlcjogJzInLCBjb21taXRTZXQ6ICc0MDMnLCBzdGF0dXM6ICdwZW5kaW5nJywg
c3RhdHVzRGVzY3JpcHRpb246IG51bGwsIHVybDogbnVsbCwgYnVpbGQ6IG51bGwsIGNyZWF0ZWRB
dDogMH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bM10sIHtpZDogJzcwNycsIHRhc2s6ICcxMDgwJywgdHJpZ2dlcmFibGU6ICcx
MDAwJywgcmVwb3NpdG9yeUdyb3VwOiAnMjAwMScsIHRlc3Q6ICcyMDAnLCBwbGF0Zm9ybTogJzY1
JywgdGVzdEdyb3VwOiAnOTAwJywgb3JkZXI6ICczJywgY29tbWl0U2V0OiAnNDA0Jywgc3RhdHVz
OiAncGVuZGluZycsIHN0YXR1c0Rlc2NyaXB0aW9uOiBudWxsLCB1cmw6IG51bGwsIGJ1aWxkOiBu
dWxsLCBjcmVhdGVkQXQ6IDB9KTsKICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzAsMzAgKzcw
LDMwIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChP
YmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRz
JywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCks
IDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRy
dWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBu
dWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMs
ICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uaWQpLCA5MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGlu
ZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxk
LXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3lu
Yy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCkBAIC0x
MDEsNTMgKzEwMSw1MyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQt
d2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVu
Z3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5p
ZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5p
ZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0u
cmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51
bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBh
dGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMs
IFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNp
b25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51
bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAot
ICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAx
MDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0KLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
LCA2MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
JzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRlZCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICB9KTsKIAogICAg
IGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0IGlmIHNhbWUgY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVy
LmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Vi
a2l0Jyk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQsIDQwNSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0
LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdj
b21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA0MDMp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLmlkKSwgNDA1KTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAg
ICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29t
bWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290
RmlsZTogMTAxfV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNv
bW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9v
dEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAn
ODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZh
bHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCiAgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMx
MTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7
CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgs
IDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlk
LCA3MDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LmNvbW1pdFNldCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
NF0uaWQsIDcwOCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uY29tbWl0U2V0LCA0MDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQwMyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkKSwgNzA4
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5jb21taXRTZXQpLCA0MDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwp
OwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7NzA4OiB7CiAgICAgICAgICAgICBzdGF0dXM6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiA3MDR9fTsKQEAgLTE1
OSwyOSArMTU5LDI5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKIAogICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5z
b3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVz
JywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5pZCwgNDAzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVsyXS5pZCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQw
Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQpLCA0MDUpOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAg
ICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCBy
ZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAogICAgICAgICAgICAge2NvbW1p
dDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBj
b21taXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3Jywg
Y29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogJzEwMSd9XSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKICAgICAgICAgICAgIHtjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKLSAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5
MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0p
OwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3Ro
LCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5p
ZCwgNzA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQsIDQwMyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLmlkLCA3MDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmNvbW1pdFNldCwgNDA1KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVy
OiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcx
MDEnfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwNCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwg
NDAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA3MDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDQwNSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3Rh
dHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OwogICAgIH0pOwogCiAgICAgaXQoJ3JldXNlIHJvb3RzIGZyb20gZXhpc3RpbmcgYnVpbGQgcmVx
dWVzdHMgaWYgdGhlIGNvbW1pdHMgc2V0cyBhcmUgZXF1YWwgZXhjZXB0IHRoZSBleGlzdGVuY2Ug
b2YgY3VzdG9tIHJvb3RzJywgYXN5bmMgKCkgPT4gewpAQCAtMTk1LDMyICsxOTUsMzIgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0pOwog
ICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3Ro
LCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwg
NTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwg
NjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50
KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3Rh
dHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2
MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5j
dXN0b21Sb290cywgWzEwM10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5jdXN0b21Sb290cywgWzEwNF0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBu
dWxsfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5jdXN0b21Sb290cywgWycxMDMnXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmN1c3RvbVJvb3RzLCBbJzEwNCddKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUwMCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQpLCA2MDApOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7Ci0gICAg
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RS
ZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICAgICAg
c3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJ
bnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCiAgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29y
ZCcsCkBAIC0yMjgsMjcgKzIyOCwyNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAKICAgICAgICAgY29udGVudCA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVz
dHMvYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVsyXS5pZCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlk
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7
Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31d
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
Ml0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmN1c3RvbVJvb3Rz
LCBbMTAzXSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLmN1c3RvbVJvb3RzLCBbMTA0XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBsZXRl
ZCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVy
bCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIHtjb21t
aXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uY3VzdG9tUm9vdHMsIFsnMTAzJ10pOworICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5jdXN0
b21Sb290cywgWycxMDQnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5j
b21taXRTZXQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
KSwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRo
ICJDYW5ub3RSZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byByZXVzZSBpcyBkZWxldGVk
JywgYXN5bmMgKCkgPT4gewpAQCAtMjk5LDMxICsyOTksMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVp
bGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5xdWVyeShgQ1JFQVRFIFRSSUdHRVIgZW11bGF0ZV9maWxlX3B1cmdlIEFGVEVSIFVQ
REFURSBPRiBjb21taXRzZXRfcm9vdF9maWxlIE9OIGNvbW1pdF9zZXRfaXRlbXMKICAgICAgICAg
ICAgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBlbXVsYXRlX2ZpbGVfcHVyZ2UoKTtg
KTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQpLCA1MDApOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkKSwgNjAwKTsKIAot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkLCA2MDApOwotCi0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDog
Jzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmlkLCA5MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5pZCksIDgwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQpLCA5
MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLmNvbW1pdFNldCksIDYwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVs
bCk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKLSAgICAgICAgICAgIHN0YXR1
czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCBidWlsZFJlcXVlc3RGb3JSb290UmV1c2U6IGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51
cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1
c2VEZWxldGVkUm9vdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAg
ICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCkBAIC0zMzcsMjkgKzMzNiwyOSBAQCBkZXNjcmli
ZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9j
a0RhdGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgp
LCBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBmYWxzZSk7CiAgICAgICAg
IGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogCi0gICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA2KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5pZCwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVs0XS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCiAgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVz
QnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1z
LCBbCiAgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAw
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0
dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxl
OiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDAp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMg
PSB7OTAwOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxk
UmVxdWVzdEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07Cisg
ICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAg
ICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnTm9NYXRjaGluZ0NvbW1pdFNldEl0ZW0nLCAoKSA9
PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1y
ZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CiAgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMt
c2xhdmUnLApAQCAtMzc0LDMwICszNzMsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVz
dHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5p
bnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDEsIGNvbW1pdDogMTExMTY4fSkKICAg
ICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDApOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11b
MF0uaWQpLCA0MDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzRdLmlkKSwgNjAwKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKICAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKICAgICAgICAgICAgIHtjb21taXQ6
ICcxMTExNjgnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bNF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
dXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAwKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
OF0udXJsLCBudWxsKTsKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogJzEwMCcsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxs
fV0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J10ubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzhdLmlkKSwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5jb21taXRTZXQpLCA2MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs4XS51cmwsIG51bGwpOwogCiAgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAw
OiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVz
dEZvclJvb3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogcGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKX19OwogCiAgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90UmV1c2VSb290V2l0aE5vbk1hdGNoaW5nQ29tbWl0
U2V0cycsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKICAgICAgICAgICAgICdzbGF2ZU5h
bWUnOiAnc3luYy1zbGF2ZScsCkBAIC00MTAsMzAgKzQwOSwzMCBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRk
TW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ3J1bm5p
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZyddKTsKICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qu
a2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2Nv
bW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycs
ICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNl
dHMnXVswXS5pZCksIDUwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQpLCA2MDApOwogCi0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25J
dGVtcywgWwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAg
ICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAg
ICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogJzEwMCcs
IHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAnMTAxJ31dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywg
WwogICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAotICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOwotCi0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncnVu
bmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6ICcxMDAnLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVs
bH1dKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA4MDApOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCksIDUw
MCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uc3RhdHVzLCAncnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRz
LzEnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDog
ewotICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVz
LCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJv
b3RSZXVzZTogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgICAgICBz
dGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgYnVpbGRSZXF1ZXN0Rm9yUm9vdFJldXNlOiBwYXJzZUlu
dChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpfX07CiAgICAgICAgIGF3YWl0IGFzc2Vy
dFRocm93cygnQ2FuT25seVJldXNlQ29tcGxldGVkQnVpbGRSZXF1ZXN0JywgKCkgPT4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0JywgewogICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywK
ICAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKQEAgLTQ0NSwyNyArNDQ0
LDI3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWls
ZC13ZWJraXQnKTsKIAotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRl
bnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdz
dGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlk
KSwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5pZCksIDYwMCk7CiAKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCiAg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAnMTAwJywgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6ICcxMDEnfV0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCiAgICAgICAg
ICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJl
cXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCi0gICAgICAgICAgICB7Y29tbWl0
OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDog
dHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7Ci0KLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRpbmcn
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51cmws
IG51bGwpOworICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGws
IHBhdGNoOiAnMTAwJywgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5n
dGgsIDgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkKSwgODAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQpLCA1MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5pZCksIDkwMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0KSwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5k
aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKIAogICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewogICAg
ICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIGJ1aWxkUmVxdWVzdEZvclJvb3RSZXVz
ZTogOTk5fX07CkBAIC00ODEsNTUgKzQ4MCw1NSBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1
ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRh
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsn
YnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9h
ZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29t
bWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLmlkKSwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsCiAgICAgICAg
ICAgICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzFdLmlkLCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50Wydjb21taXRTZXRzJ11bMV0ucmV2aXNpb25JdGVtcywKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50Wydjb21taXRTZXRzJ11bMV0uaWQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11b
MV0ucmV2aXNpb25JdGVtcywKICAgICAgICAgICAgICAgICBbe2NvbW1pdDogJzg3ODMyJywgY29t
bWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZp
bGU6IG51bGx9LCB7Y29tbWl0OiAnOTYzMzYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH1dKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXS5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5pZCwgODc4MzIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnOScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXZpc2lv
biwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdHMnXVsxXS5pZCwgOTMxMTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2NvbW1pdHMnXVsxXS5yZXBvc2l0b3J5LCAnMTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydjb21taXRzJ11bMV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9u
LCAnMTkyNzM2Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDApOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ucGxhdGZvcm0sICc2
NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcp
OwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCwgNzAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLmNvbW1pdFNldCwg
NDAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5v
cmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5jb21taXRTZXQsIDQwMSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ucGxhdGZv
cm0sICc2NScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwg
JzIwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNv
bnRlbnRbJ2NvbW1pdHMnXVswXS5pZCksIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJzknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNpb24sICcx
MC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICcxMScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsxXS5yZXZpc2lvbiwg
JzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRl
bnRbJ2NvbW1pdHMnXVsyXS5pZCksIDk2MzM2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb250ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJzExJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJldmlzaW9uLCAnMTky
NzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkKSwgNzAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS5jb21taXRTZXQpLCA0MDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVz
dCwgJzIwMCcpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5v
cmRlciksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uY29tbWl0
U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAn
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMl0uaWQpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0ub3JkZXIpLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNldCksIDQw
MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzNdLmlkKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyKSwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsz
XS5wbGF0Zm9ybSwgJzY1Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBh
cnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5jb21taXRTZXQpLCA0MDIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtNTM3LDU1ICs1MzYsNTUgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0P3VzZUxlZ2FjeUlkUmVzb2x1dGlvbj10cnVlJyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2Jq
ZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycs
ICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRS
ZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmls
ZXMnXSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10u
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDQwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCksIDQwMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5yZXZpc2lvbkl0ZW1zLAogICAgICAgICAgICAgICAgIFt7Y29tbWl0OiAnODc4MzInLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsxXS5pZCwgNDAyKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9u
SXRlbXMsCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsn
Y29tbWl0U2V0cyddWzFdLmlkKSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzFdLnJldmlzaW9uSXRlbXMsCiAgICAgICAgICAg
ICAgICAgW3tjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwg
cmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwge2NvbW1pdDogJzk2MzM2Jywg
Y29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9v
dEZpbGU6IG51bGx9XSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ10ubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21t
aXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydj
b21taXRzJ11bMF0ucmVwb3NpdG9yeSwgJ21hY09TJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnY29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnks
ICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11b
MV0ucmV2aXNpb24sICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRzJ11bMl0uaWQsIDk2MzM2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydjb21taXRzJ11bMl0ucmVwb3NpdG9yeSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVsyXS5yZXZpc2lvbiwgJzE5MjczNicpOwotCi0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwg
NCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS5pZCwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLm9yZGVyLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgWydzb21lIHRlc3Qn
XSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzFdLmlkLCA3MDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0sICdzb21lIHBsYXRmb3JtJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS50ZXN0LCBbJ3NvbWUgdGVz
dCddKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bMl0uaWQsIDcwMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0n
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzJdLmNvbW1pdFNldCwgNDAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnN0YXR1cywgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsIFsnc29tZSB0
ZXN0J10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzNdLm9yZGVyLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9y
bScpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bM10uY29tbWl0U2V0LCA0MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgWydzb21l
IHRlc3QnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0
cyddLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
Y29udGVudFsnY29tbWl0cyddWzBdLmlkKSwgODc4MzIpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXVswXS5yZXBvc2l0b3J5LCAnbWFjT1MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmV2aXNp
b24sICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMV0uaWQpLCA5MzExNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMV0u
cmV2aXNpb24sICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChjb250ZW50Wydjb21taXRzJ11bMl0uaWQpLCA5NjMzNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudFsnY29tbWl0cyddWzJdLnJlcG9zaXRvcnksICdXZWJLaXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50Wydjb21taXRzJ11bMl0u
cmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQpLCA3
MDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnc29tZSBw
bGF0Zm9ybScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzBdLnRlc3QsIFsnc29tZSB0ZXN0J10pOworCisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS5pZCksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZv
cm0sICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHBhcnNlSW50KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgWydzb21lIHRlc3QnXSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzJdLmlkKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLm9yZGVyKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXS5wbGF0Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocGFyc2VJbnQoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLmNvbW1pdFNl
dCksIDQwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCBbJ3NvbWUg
dGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3Jk
ZXIpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzNdLnBsYXRmb3JtLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10uY29tbWl0U2V0KSwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnRl
c3QsIFsnc29tZSB0ZXN0J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTk1LDcgKzU5
NCw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0
Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxk
UmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogCiAgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsK
ICAgICAgICAgICAgIGFzc2VydCh0ZXN0KTsKQEAgLTYwMyw5NCArNjAyLDk0IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBs
YXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRm
b3JtKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwg
NzA0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91
cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
cGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1swXS5pZCgpKSwgNzA0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA5MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgp
LCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBd
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwNSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwNSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sx
XS50ZXN0R3JvdXBJZCgpKSwgOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwg
MSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBp
bnN0YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVz
dHNbMV0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3Rz
WzFdLmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDYpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgOTAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBw
bGF0Zm9ybSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzJdLmlkKCkpLCA3MDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDkwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwg
cGxhdGZvcm0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxk
UmVxdWVzdHNbMl0ub3JkZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVx
dWVzdHNbMl0uY29tbWl0U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQub2soYnVpbGRSZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzA3KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0c1szXS50ZXN0KCksIHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbM10ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzA3KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElk
KCkpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10udGVzdCgpLCB0ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAg
ICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29t
bWl0U2V0KTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5p
c2hlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFy
dGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5n
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3RzWzNdLnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGNvbnN0
IG9zeCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Lm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCks
ICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgp
LCAnV2ViS2l0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnkuZmluZEJ5
SWQoMjEzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlw
dENvcmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKIAogICAgICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIGZpcnN0Q29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBmaXJzdENvbW1p
dFNldCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2Vjb25kQ29tbWl0U2V0KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRDb21taXRTZXQp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTYxNjEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEyODQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZWNvbmRDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAu
MTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZWNvbmRDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5Mjcz
NicpOwogCiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21t
aXRGb3JSZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
LnJldmlzaW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEg
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgY29u
c3QgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KHdlYmtpdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RXZWJLaXRDb21taXQucmV2
aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtmaXJzdFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDU5NDU4MTY4NzgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1OTQ1
ODE2ODc4KTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kV2ViS2l0Q29tbWl0ID0gc2Vjb25k
Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZWNvbmRXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1
NjUwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRXZWJLaXRDb21taXQu
cmV2aXNpb24oKSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtz
ZWNvbmRXZWJLaXRDb21taXQudGltZSgpLCAxNDQ4MjI1MzI1NjUwKTsKIAogICAgICAgICAgICAg
Y29uc3QgZmlyc3RTSkNDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5
KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24o
KSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0U0pD
Q29tbWl0LnRpbWUoKSwgMTQ1Njk2MDc5NTMwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RTSkNDb21taXQucmV2aXNpb24oKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK2ZpcnN0U0pDQ29tbWl0LnRpbWUoKSwgMTQ1Njk2
MDc5NTMwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHNlY29uZFNKQ0NvbW1pdCA9IHNlY29uZENv
bW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KGpzYyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2Vjb25kU0pDQ29tbWl0LnJldmlzaW9uKCksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKCtzZWNvbmRTSkNDb21taXQudGltZSgpLCAxNDYyMjMwODM3MTAw
KQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFNKQ0NvbW1pdC5yZXZpc2lv
bigpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgr
c2Vjb25kU0pDQ29tbWl0LnRpbWUoKSwgMTQ2MjIzMDgzNzEwMCkKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTY5OCw3ICs2OTcsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93
bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKICAgICAgICAg
YXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IGF3
YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKCdidWlsZC13ZWJraXQnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOwogICAgICAgICBhc3NlcnQodGVzdCk7CkBAIC03
MDgsMzMgKzcwNywzMyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9u
ICgpIHsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3RzWzBdOwog
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgNzA0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpLCA5MDApOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0pOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVyKCksIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCA3MDQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCkpLCA5MDApOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QucGxhdGZvcm0oKSwgcGxhdGZvcm0p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0Lm9yZGVy
KCkpLCAwKTsKICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKSBpbnN0
YW5jZW9mIENvbW1pdFNldCk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc0Zp
bmlzaGVkKCkpOwogICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5oYXNTdGFydGVkKCkp
OwogICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0
aW5nJyk7CiAKICAgICAgICAgY29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7CiAKICAgICAgICAgY29uc3QganNjID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZCgyMTMpOwotICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0phdmFTY3JpcHRDb3Jl
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2MubmFtZSgpLCAnSmF2YVNjcmlwdENv
cmUnKTsKIAogICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2Mt
OTE5MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21t
aXRTZXQudG9wTGV2ZWxSZXBvc2l0b3JpZXMoKS5zb3J0KChvbmUsIGFub3RoZXIpID0+IG9uZS5p
ZCgpIDwgYW5vdGhlci5pZCgpKSwgW29zeCwgd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4xMSAxNUEy
ODQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9yaWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBw
YXJzZUludChvbmUuaWQoKSkgLSBwYXJzZUludChhbm90aGVyLmlkKCkpKSwgW29zeCwgd2Via2l0
XSk7CiAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCkuYWNj
ZXB0cyhjb21taXRTZXQpKTsKICAgICB9KTsKIApAQCAtNzQ0LDcgKzc0Myw3IEBAIGRlc2NyaWJl
KCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwogCiAg
ICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKICAgICAgICAgICAgIGFz
c2VydCh0ZXN0KTsKQEAgLTc1Miw3OSArNzUxLDc5IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZv
cm0uZmluZEJ5SWQoNjUpOwogICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgcGxh
dGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1
ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHBs
YXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzBdLm9yZGVyKCkpLCAwKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAgIGFz
c2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaXNQZW5kaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFd
LmlkKCksIDcwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50
ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdCgpLCB0ZXN0KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3RzWzFdLnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgp
KSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFd
LnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5vcmRlcigpKSwgMSk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1p
dFNldCk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzRmluaXNo
ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzU3RhcnRl
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVlc3RzWzFdLmlzUGVuZGluZygp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnRlc3QoKSwgdGVzdCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLmlkKCkp
LCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0ucGxhdGZvcm0oKSwgcGxhdGZvcm0pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3Jk
ZXIoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0
U2V0KCkgaW5zdGFuY2VvZiBDb21taXRTZXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWls
ZFJlcXVlc3RzWzJdLmhhc1N0YXJ0ZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRS
ZXF1ZXN0c1syXS5pc1BlbmRpbmcoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS50ZXN0KCks
IHRlc3QpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucGxhdGZv
cm0oKSwgcGxhdGZvcm0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQo
YnVpbGRSZXF1ZXN0c1szXS5pZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10udGVzdCgpLCB0ZXN0
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnBsYXRm
b3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5vayhi
dWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNGaW5pc2hlZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1szXS5oYXNTdGFydGVkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbM10uaXNQZW5kaW5nKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdtYWNP
UycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeC5uYW1lKCksICdtYWNPUycp
OwogCiAgICAgICAgICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKIAogICAg
ICAgICAgICAgbGV0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgp
LCBmaXJzdENvbW1pdFNldCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgZmlyc3RDb21taXRTZXQpOwogCiAgICAgICAgICAgICBs
ZXQgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZWNvbmRD
b21taXRTZXQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uY29tbWl0U2V0KCksIHNlY29uZENvbW1pdFNldCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmaXJzdENvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1
QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZmlyc3RDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG9zeCksICcxMC4x
MSAxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmaXJzdENvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gp
LCAnMTAuMTEgMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2Vjb25kQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7
CiAKICAgICAgICAgICAgIGxldCBvc3hDb21taXQgPSBmaXJzdENvbW1pdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KG9zeCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LnJldmlz
aW9uKCksICcxMC4xMSAxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQsIHNlY29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVBMjg0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0LCBzZWNvbmRDb21t
aXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpKTsKIAogICAgICAgICAgICAgbGV0IGZpcnN0
V2ViS2l0Q29tbWl0ID0gZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0V2ViS2l0Q29tbWl0LnJldmlzaW9uKCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
aXJzdFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoK2ZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7
CiAKICAgICAgICAgICAgIGxldCBzZWNvbmRXZWJLaXRDb21taXQgPSBzZWNvbmRDb21taXRTZXQu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
Y29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoK3NlY29uZFdlYktpdENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoK3NlY29uZFdlYktp
dENvbW1pdC50aW1lKCksIDE0NDgyMjUzMjU2NTApOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtODM0LDcgKzgzMyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODQ0LDcg
Kzg0Myw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1
aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODU0LDcgKzg1Myw3IEBA
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JU
cmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7CiAgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVz
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
NCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzRmluaXNoZWQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBdLmlzUGVuZGluZygpKTsK
QEAgLTg3Niw3ICs4NzUsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwogICAgICAgICB9
KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhidWlsZFJlcXVl
c3RzWzBdLmhhc0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVz
dHNbMF0uaGFzU3RhcnRlZCgpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0
c1swXS5pc1BlbmRpbmcoKSk7CkBAIC04OTksMzIgKzg5OCwzMiBAQCBkZXNjcmliZSgnL2FwaS9i
dWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxk
LXdlYmtpdCcpOwogICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigpLCAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmlkKCksIDcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpLCA2MDAp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIo
KSwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5pZCgpLCA3
MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3Vw
SWQoKSwgNjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzJdLm9yZGVyKCksIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNd
LnRlc3RHcm91cElkKCksIDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1szXS5vcmRlcigpLCAzKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbNF0uaWQoKSwgNzEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzRdLnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5vcmRlcigpLCAwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzVdLmlkKCksIDcxMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0ub3JkZXIoKSwgMSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpLCA3MTIpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0udGVzdEdyb3VwSWQoKSwgNjAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzZdLm9yZGVyKCksIDIp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbN10uaWQoKSwgNzEzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnRlc3RHcm91cElkKCks
IDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5v
cmRlcigpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
Lmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1swXS5pZCgpKSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSksIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMV0uaWQoKSksIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCkpLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzJdLmlkKCkpLCA3MDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbMl0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpKSwgMik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1szXS5p
ZCgpKSwgNzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWls
ZFJlcXVlc3RzWzNdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSksIDMpOworCisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s0XS5pZCgp
KSwgNzEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzRdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSksIDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSksIDcx
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s1XS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCkpLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzZdLmlkKCkpLCA3MTIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0u
dGVzdEdyb3VwSWQoKSksIDYwMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5vcmRlcigpKSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpKSwgNzEzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLnRlc3RH
cm91cElkKCkpLCA2MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KGJ1aWxkUmVxdWVzdHNbN10ub3JkZXIoKSksIDMpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtOTM3LDMwICs5MzYsMzAgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJh
YmxlLmFsbCgpLmZpbmQoKHRyaWdnZXJhYmxlKSA9PiB0cmlnZ2VyYWJsZS5uYW1lKCkgPT0gJ2J1
aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLnJlcG9z
aXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKS5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
Z3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJs
ZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sw
XS5uYW1lKCksICd3ZWJraXQtZ2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cHNbMF0ubmFtZSgpLCAnd2Via2l0LWdpdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7CiAgICAgICAgICAgICBy
ZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOwog
ICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSwgNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlH
cm91cCgpLCBncm91cHNbMV0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dHNbM10uaWQoKSwgNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzNdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwotCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS5pZCgpLCAxNzAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgMTcwMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwg
Z3JvdXBzWzBdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlk
KCksIDE3MDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVw
b3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0c1s3XS5pZCgpLCAxNzAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzBdLmlkKCkpLCA3MDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucmVwb3Np
dG9yeUdyb3VwKCksIGdyb3Vwc1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbMl0uaWQoKSksIDcwMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzFdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLmlkKCkpLCA3MDMpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ucmVwb3NpdG9y
eUdyb3VwKCksIGdyb3Vwc1sxXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzRdLmlkKCkpLCAxNzAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzRdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNV0uaWQoKSksIDE3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbNV0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vwc1swXSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgpKSwgMTcwMik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5yZXBvc2l0
b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChidWlsZFJlcXVlc3RzWzddLmlkKCkpLCAxNzAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNb
MF0pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtOTcxLDMyICs5NzAsMzIgQEAgZGVzY3Jp
YmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKCdidWlsZC13ZWJraXQnKTsKICAgICAgICAgfSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmlkKCksIDcxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpLCA2MDEp
OwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5pZCgpLCA3
MTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3Vw
SWQoKSwgNjAxKTsKLSAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Rz
WzFdLm9yZGVyKCksIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNb
Ml0uaWQoKSwgNzEyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzJd
LnRlc3RHcm91cElkKCksIDYwMSk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3RzWzNdLmlkKCksIDcxMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpLCA2MDEpOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7Ci0KLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzRdLmlkKCksIDcwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbNF0ub3JkZXIoKSwgMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s1XS5pZCgpLCA3MDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSwgNjAwKTsKLSAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzVdLm9yZGVyKCksIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0uaWQoKSwgNzAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLnRlc3RHcm91cElkKCks
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1s2XS5v
cmRlcigpLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLmlk
KCksIDcwMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS50ZXN0
R3JvdXBJZCgpLCA2MDApOwotICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdHNbN10ub3JkZXIoKSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBh
cnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0uaWQoKSksIDcxMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3JvdXBJZCgpKSwgNjAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzBdLm9yZGVyKCkpLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChidWlsZFJlcXVlc3RzWzFdLmlkKCkpLCA3MTEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMV0udGVzdEdyb3VwSWQoKSksIDYwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1sxXS5v
cmRlcigpKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVp
bGRSZXF1ZXN0c1syXS5pZCgpKSwgNzEyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzJdLnRlc3RHcm91cElkKCkpLCA2MDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMl0ub3JkZXIo
KSksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbM10uaWQoKSksIDcxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoYnVpbGRSZXF1ZXN0c1szXS50ZXN0R3JvdXBJZCgpKSwgNjAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzNdLm9yZGVyKCkpLCAz
KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVz
dHNbNF0uaWQoKSksIDcwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQoYnVpbGRSZXF1ZXN0c1s0XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzRdLm9yZGVyKCkpLCAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3RzWzVd
LmlkKCkpLCA3MDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1
aWxkUmVxdWVzdHNbNV0udGVzdEdyb3VwSWQoKSksIDYwMCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s1XS5vcmRlcigpKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1s2XS5pZCgp
KSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzZdLnRlc3RHcm91cElkKCkpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbNl0ub3JkZXIoKSksIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbN10uaWQoKSksIDcw
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
c1s3XS50ZXN0R3JvdXBJZCgpKSwgNjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChwYXJzZUludChidWlsZFJlcXVlc3RzWzddLm9yZGVyKCkpLCAzKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTEwMDgsMzYgKzEwMDcsMzYgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVx
dWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAn
cGFzc3dvcmQnLAogICAgICAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRl
cwogICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBd
LmlkLCA3MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0u
Y29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjYW5jZWxlZCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS50ZXN0LCAn
MjAwJyk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLm9yZGVyLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ucGxhdGZvcm0s
ICc2NScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxk
UmVxdWVzdHMnXVsxXS5jb21taXRTZXQsIDQwMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bMV0udGVzdCwgJzIwMCcpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLmlkLCA3MDIpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cydd
WzJdLnBsYXRmb3JtLCAnNjUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
c3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uY29tbWl0U2V0LCA0MDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMs
ICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
YnVpbGRSZXF1ZXN0cyddWzJdLnRlc3QsICcyMDAnKTsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5pZCwgNzAzKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10u
b3JkZXIsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2J1
aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCwgNDAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3Rz
J11bM10uc3RhdHVzLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS50ZXN0LCAnMjAwJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMn
XS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFy
c2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCksIDcwMCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1
ZXN0cyddWzBdLm9yZGVyKSwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzBdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWls
ZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY2Fu
Y2VsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNl
WydidWlsZFJlcXVlc3RzJ11bMF0udGVzdCwgJzIwMCcpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFd
LmlkKSwgNzAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNl
SW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0ub3JkZXIpLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMV0u
cGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVsxXS5jb21taXRTZXQpLCA0MDIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVx
dWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzFdLnRlc3QsICcyMDAnKTsK
KworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9u
c2VbJ2J1aWxkUmVxdWVzdHMnXVsyXS5pZCksIDcwMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzJdLm9y
ZGVyKSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11b
Ml0uY29tbWl0U2V0KSwgNDAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bMl0uc3RhdHVzLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVz
dHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHBhcnNlSW50KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10uaWQpLCA3MDMpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VJbnQocmVzcG9uc2Vb
J2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciksIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0Zm9ybSwgJzY1
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJzZUludChyZXNw
b25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLmNvbW1pdFNldCksIDQwMik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0
YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHJlc3BvbnNlWydidWlsZFJlcXVlc3RzJ11bM10udGVzdCwgJzIwMCcpOwogICAgICAgICAgICAg
fSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ1Nob3VsZCBub3QgYmUg
cmVhY2hlZCcpOwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAxNTE5
MTBiYWViMjU1NjAyNmI5MmYwYTMxYmQxOTA1NjhiZmFiNzEzLi4yODU2OWYwNjM3MzA0ZTNhNjJj
Zjc3MDA5MjM5M2Y3ZjBlNzM2NTk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTExOSwyMiAr
MTE5LDIyIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQoY29tbWl0LCBzdWJtaXR0
ZWQpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCBzdWJt
aXR0ZWRbJ3JldmlzaW9uJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwobmV3IERhdGUoY29tbWl0
Wyd0aW1lJ10pLnRvSVNPU3RyaW5nKCksIHN1Ym1pdHRlZFsndGltZSddKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFsnbWVzc2FnZSddLCBzdWJtaXR0ZWRbJ21lc3NhZ2UnXSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRbJ2F1dGhvck5hbWUnXSwgc3VibWl0dGVkWydhdXRob3In
XVsnbmFtZSddKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsnYXV0aG9yRW1haWwnXSwg
c3VibWl0dGVkWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFsncmV2aXNpb24nXSwgc3VibWl0dGVkWydyZXZpc2lvbiddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG5ldyBEYXRlKGNvbW1pdFsndGltZSddKS50b0lTT1N0cmluZygp
LCBzdWJtaXR0ZWRbJ3RpbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRb
J21lc3NhZ2UnXSwgc3VibWl0dGVkWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0WydhdXRob3JOYW1lJ10sIHN1Ym1pdHRlZFsnYXV0aG9yJ11bJ25hbWUnXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbJ2F1dGhvckVtYWlsJ10sIHN1Ym1p
dHRlZFsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAgICAgIGlmKHN1Ym1pdHRlZFsncHJldmlv
dXNDb21taXQnXSkgewogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFsncHJldmlvdXNDb21t
aXQnXSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
WydwcmV2aW91c0NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRbJ3ByZXZpb3VzQ29tbWl0J10sIG51bGwpOwogICAgICAgICB9CiAgICAgfQogCiAg
ICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vJywgKCkgPT4gewogICAgICAg
ICBpdCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8g
bWF0Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQnKS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0Niw4ICsxNDYsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25z
ZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE1
NSwxOCArMTU1LDE4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAg
ICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBzdWJtaXR0ZWRDb21taXRzID0gc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMn
XTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21t
aXRzWzBdLCBzdWJtaXR0ZWRDb21taXRzWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRzWzFdLCBzdWJtaXR0ZWRDb21taXRzWzFdKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChjb21taXRz
WzJdLCBzdWJtaXR0ZWRDb21taXRzWzJdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1syXVsncHJldmlvdXNDb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMl1bJ3ByZXZpb3VzQ29tbWl0J10s
IGNvbW1pdHNbMV1bJ2lkJ10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0x
NzQsMTkgKzE3NCwxOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3lzdGVtVmVyc2lvbkNvbW1pdHMp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYLycpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0Wydjb21taXRzJ107CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVkQ29tbWl0cyA9IHN5c3RlbVZlcnNpb25Db21taXRz
Wydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3Ro
LCBzdWJtaXR0ZWRDb21taXRzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBz
dWJtaXR0ZWRDb21taXRzWzRdWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbM11bJ3JldmlzaW9u
J10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21taXRzWzFdWydy
ZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1s1XVsncmV2
aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCBzdWJtaXR0ZWRDb21taXRzLmxl
bmd0aCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3Jl
dmlzaW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbNV1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRD
b21taXRzWzRdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1syXVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1szXVsncmV2aXNpb24n
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbM11bJ3Jldmlz
aW9uJ10sIHN1Ym1pdHRlZENvbW1pdHNbMl1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzRdWydyZXZpc2lvbiddLCBzdWJtaXR0ZWRDb21t
aXRzWzFdWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0c1s1XVsncmV2aXNpb24nXSwgc3VibWl0dGVkQ29tbWl0c1swXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUo
Jy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb2xkZXN0JywgKCkgPT4gewogICAgICAgICBpdCgi
c2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hp
bmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvb2xkZXN0JykudGhlbigocmVz
cG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnUmVwb3NpdG9yeU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yMDIsOCArMjAyLDggQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dl
YktpdCd9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L29sZGVzdCcpOwogICAgICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMjE0LDggKzIxNCw4IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
L29sZGVzdCcpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0yMjcsOSArMjI3LDkgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvb2xkZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzVdWydyZXZpc2lvbiddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCBzeXN0ZW1WZXJzaW9uQ29tbWl0c1snY29tbWl0cydd
WzVdWydyZXZpc2lvbiddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTIzNyw3ICsyMzcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgp
IHsKICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXRlc3QnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3VuZCB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9s
YXRlc3QnKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9yeU5v
dEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI0NSw4ICsyNDUs
OCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
bGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMn
XSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0yNTcsOCArMjU3LDgg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwpAQCAtMjcwLDkgKzI3MCw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhdGVzdCcpOwogICAgICAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgc3lz
dGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTI4NCwxMyArMjg0LDEzIEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXdhaXQgZGIucXVlcnkoYERF
TEVURSBGUk9NIHRlc3RzIFdIRVJFIHRlc3RfbmFtZSA9ICdBLVRlc3QnYCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IHBsYXRmb3JtcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAg
IGNvbnN0IHRlc3RfbWV0cmljcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndGVzdF9tZXRyaWNzJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdF9tZXRyaWNzLmxlbmd0aCwgMSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHRlc3RzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0ZXN0cycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgYXNzZXJ0KHRl
c3RfbWV0cmljc1swXS5pZCAhPSB0ZXN0c1swXS5pZCk7CiAKQEAgLTMwMiw3ICszMDIsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2Fw
aS9jb21taXRzLzxyZXBvc2l0b3J5Pi9sYXN0LXJlcG9ydGVkJywgKCkgPT4gewogICAgICAgICBp
dCgic2hvdWxkIHJldHVybiBSZXBvc2l0b3J5Tm90Rm91bmQgd2hlbiB0aGVyZSBhcmUgbm8gbWF0
Y2hpbmcgcmVwb3NpdG9yeSIsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGFzdC1yZXBvcnRlZCcp
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMzE0LDggKzMxNCw4IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCkBAIC0zMjMsOCArMzIzLDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRh
YmFzZSgpLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L2xhc3QtcmVwb3J0ZWQnKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0MCw4ICszNDAsOCBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC9sYXN0LXJlcG9ydGVkJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQp
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddLnNsaWNlKCkucG9wKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMzUz
LDkgKzM1Myw5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3RlbVZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sIHN5c3Rl
bVZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzcyLDMxICszNzIsMzEgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0zNjcmdG89MzcwJyk7CiAgICAg
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNv
bnN0IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBjb21taXQg
PSByZXN1bHRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmV2aXNp
b24sICdTaWVycmExNkM2OCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXQucmV2aXNpb24sICdTaWVycmExNkM2OCcpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MzcwJnRvPTM2NycpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXN1bHRzID0gcmVzcG9uc2VbJ2NvbW1pdHMnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0yMDAmdG89Mjk5Jyk7CiAgICAgICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgICAgIGNvbnN0
IHJlc3VsdHMgPSByZXNwb25zZVsnY29tbWl0cyddOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTM2OSZ0bz00MzInKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVz
dWx0cyA9IHJlc3BvbnNlWydjb21taXRzJ107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IHJlc3Vs
dHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5yZXZpc2lvbiwgJ1Np
ZXJyYTE2RDMyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdC5y
ZXZpc2lvbiwgJ1NpZXJyYTE2RDMyJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vPGNvbW1p
dD4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8yMTA5NDknKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdSZXBvc2l0b3J5Tm90Rm91bmQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVw
b3NpdG9yeU5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTQx
Niw3ICs0MTYsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5Jyk7CiAg
ICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Vua25vd25Db21t
aXQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8yMTA5NTAnKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKICAgICAg
ICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAg
IHJldmlzaW9uOiAnMjEwOTUwJywKQEAgLTQ0Nyw4ICs0NDcsOCBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8y
MTA5NDknKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00NTgsOCArNDU4LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0OT9wcmVmaXgtbWF0Y2g9ZmFsc2UnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29t
bWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKICAgICAgICAgfSk7
CiAKQEAgLTQ2OCw4ICs0NjgsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXRzKTsKICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICAgICAgY29uc3Qg
cmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ5
P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1Nh
bWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNb
J2NvbW1pdHMnXVsxXSk7CiAgICAgICAgIH0pOwogCkBAIC00NzgsNyArNDc4LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmlndW91c1JldmlzaW9uUHJl
Zml4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J0FtYmlndW91c1JldmlzaW9uUHJlZml4Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCJz
aG91bGQgbm90IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gdGhlcmUgaXMg
YSBjb21taXQgcmV2aXNpb24gZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCByZXZpc2lvbiBwcmVm
aXgiLCBhc3luYyAoKSA9PiB7CkBAIC00ODYsOCArNDg2LDggQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlcik7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGNvbW1pdHNPbmVQcmVm
aXhPZlRoZU90aGVyKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRb
J2NvbW1pdHMnXVswXSwgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXJbJ2NvbW1pdHMnXVswXSk7
CiAgICAgICAgIH0pOwogCkBAIC00OTYsNyArNDk2LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
V2ViS2l0LzIxMDkwP3ByZWZpeC1tYXRjaD10cnVlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgic2hvdWxkIG5vdCBtYXRjaCBwcmVmaXggYW5kIHJldHVybiAn
VW5rb3duQ29tbWl0JyB3aGVuIHN2biBjb21taXQgc3RhcnRzIHdpdGggJ3InIHByZWZpeCBhbmQg
dGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2giLCBhc3luYyAoKSA9PiB7CkBAIC01MDQsNyArNTA0LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CiAgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0L3IyMTA5NT9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29t
bWl0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoInNob3VsZCBoYW5k
bGUgY29tbWl0IHJldmlzaW9uIHdpdGggc3BhY2UiLCAoKSA9PiB7CkBAIC01MTUsMTIgKzUxNSwx
MiBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PUyUyMFgvMTAuMTEuMTAlMjBTaWVycmExNkM2
NycpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDEpOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgY29tbWl0ID0gcmVzdWx0cy5jb21taXRzWzBdOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXQuaWQsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXQucmV2aXNpb24sICcxMC4xMS4xMCBTaWVycmExNkM2NycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXQuaWQpLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0LnJldmlzaW9uLCAnMTAuMTEuMTAg
U2llcnJhMTZDNjcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTM4LDEz
ICs1MzgsMTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvMS9vd25lZC1jb21taXRzP293bmVy
LXJldmlzaW9uPTEwLjEyJTIwMTZBMzIzJykKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdHMp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmNvbW1pdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdP
SycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzLmNvbW1pdHMu
bGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gcmVzdWx0
cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvd25lZENvbW1pdC5y
ZXBvc2l0b3J5LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRDb21taXQu
cmV2aXNpb24sICcyMTA5NTAnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3duZWRD
b21taXQuaWQsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChvd25lZENvbW1pdC5yZXBvc2l0b3J5KSwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG93bmVkQ29tbWl0LnJldmlzaW9uLCAnMjEwOTUwJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG93bmVkQ29tbWl0LmlkKSwgMik7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTU1OCw4ICs1NTgsOCBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEz
MjMnKQogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXN1bHRzLmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0cy5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0cy5jb21taXRzLCBbXSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTU3Myw4ICs1NzMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy8xL293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249MTAuMTIlMjAxNkEzMjQnKQogICAg
ICAgICAgICAgfSkudGhlbigocmVzdWx0cykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRzLnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdHMuY29tbWl0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pCiAgICAgfSk7CkBAIC01ODIsNyArNTgyLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3Np
dG9yeT4vP3ByZWNlZGluZ1JldmlzaW9uPTxjb21taXQtMT4mbGFzdFJldmlzaW9uPTxjb21taXQt
Mj4nLCAoKSA9PiB7CiAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIFJlcG9zaXRvcnlOb3RGb3Vu
ZCB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyByZXBvc2l0b3J5IiwgKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRz
L1dlYktpdC8/ZnJvbT0yMTA5MDAmdG89MjExMDAwJykudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnUmVwb3NpdG9y
eU5vdEZvdW5kJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ1JlcG9zaXRvcnlOb3RGb3VuZCcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC01OTQsNyArNTk0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5MDAmbGFzdFJldmlzaW9uPTIxMTAwMCcpOwogICAg
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTYwNyw4ICs2MDcsOCBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIF0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OSZs
YXN0UmV2aXNpb249MjEwOTUwJyk7CiAgICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2NvbW1pdHMnXSwg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9u
c2VbJ2NvbW1pdHMnXSwgW10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02
MjEsNyArNjIxLDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdS
ZXZpc2lvbj0yMTA5NTAmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhl
bigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZENvbW1pdFJhbmdlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRDb21taXRSYW5nZScpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02MzUsOCArNjM1LDggQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIz
Jmxhc3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsn
Y29tbWl0cyddLm1hcCgoY29tbWl0KSA9PiBjb21taXRbJ3JldmlzaW9uJ10pLCBbJzEwLjEyIDE2
QjI1NTUnLCAnMTAuMTIgMTZCMjY1NyddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10ubWFwKChjb21taXQpID0+IGNvbW1p
dFsncmV2aXNpb24nXSksIFsnMTAuMTIgMTZCMjU1NScsICcxMC4xMiAxNkIyNjU3J10pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NTAsNyArNjUwLDcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxh
c3RSZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NjQsNyArNjY0LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RS
ZXZpc2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0luY29uc2lzdGVudENvbW1pdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW5jb25zaXN0ZW50Q29tbWl0cycpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzgsOCArNjc4LDggQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBp
L2NvbW1pdHMvbWFjT1MvP3ByZWNlZGluZ1JldmlzaW9uPTEwLjEyJTIwMTZBMzIzJmxhc3RSZXZp
c2lvbj0xMC4xMiUyMDE2QjI2NTcnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnY29tbWl0cydd
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNw
b25zZVsnY29tbWl0cyddLCBbXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAg
LTY5Myw4ICs2OTMsOCBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9tYWNPUy8/cHJlY2VkaW5n
UmV2aXNpb249MTAuMTIlMjAxNkEzMjMmbGFzdFJldmlzaW9uPTEwLjEyJTIwMTZCMjY1NycpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydjb21taXRzJ10sIFtdKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNzA4LDggKzcwOCw4IEBAIGRlc2NyaWJl
KCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgXSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RSZXZp
c2lvbj0yMTA5NTAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRz
J10ubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1
Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgewogICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c0NvbW1pdDogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDkn
LApAQCAtNzQzLDggKzc0Myw4IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0y
MTA5NDcmbGFzdFJldmlzaW9uPTIxMDk0OScpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddWzBdKTsKICAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2Nv
bW1pdHMnXVsxXSk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKaW5kZXgg
YmRhMjc0ZmIxOTk2ZDQ3YTYxMjE0M2ZjZjUyMmQ2ZDk5NGM0ZWZkOC4uY2FhMGIyY2U2MWNhMTJm
MjU1NTE2NTBlODE2MjY5MjA3NjhhZGFkNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKQEAgLTEz
LDcgKzEzLDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAg
ICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdoZW4gZGF0YWJhc2UgaXMg
ZW1wdHkiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChtYW5pZmVzdCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29ydCgpLCBbJ2FsbCcsICdi
dWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFzaGJvYXJkcycsCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5rZXlzKG1hbmlmZXN0KS5zb3J0
KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hib2FyZCcsICdkYXNo
Ym9hcmRzJywKICAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1pdCcsICdtYXhSb290
UmV1c2VBZ2VJbkRheXMnLCAnbWV0cmljcycsICdwbGF0Zm9ybUdyb3VwcycsICdyZXBvc2l0b3Jp
ZXMnLCAnc2l0ZVRpdGxlJywKICAgICAgICAgICAgICAgICAnc3RhdHVzJywgJ3N1bW1hcnlQYWdl
cycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0cmlnZ2VyYWJsZXMnXSk7
CiAKQEAgLTQ1LDIyICs0NSwyMiBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190
cmFja2VycycsIGJ1Z3ppbGxhRGF0YSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0Jyk7CiAgICAgICAg
IH0pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdodHRwczov
L3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoY29udGVudC5idWdUcmFja2VycywgezE6IHtuYW1lOiAnQnVnemlsbGEnLCBidWdVcmw6ICdo
dHRwczovL3dlYmtpdC5vcmcvYi8kbnVtYmVyJywKICAgICAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgICAgIGxldCBtYW5pZmVzdCA9IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRl
bnQpOwogICAgICAgICAgICAgbGV0IHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDEpOwog
ICAgICAgICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRy
YWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFj
a2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQu
b3JnLycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAn
QnVnemlsbGEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1Vy
bCgxMjMpLCAnaHR0cHM6Ly93ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHJhY2tlci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3Jn
LycpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgY2xlYXIgQnVnIGFu
ZCBCdWdUcmFja2VyIHN0YXRpYyBtYXBzIHdoZW4gcmVzZXQiLCBhc3luYyAoKSA9PiB7CiAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5pbnNlcnQoJ2J1Z190cmFja2VycycsIGJ1
Z3ppbGxhRGF0YSk7CiAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50LmJ1Z1RyYWNrZXJzLCB7MToge25hbWU6ICdCdWd6aWxsYScsIGJ1Z1VybDog
J2h0dHBzOi8vd2Via2l0Lm9yZy9iLyRudW1iZXInLAorICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGNvbnRlbnQuYnVnVHJhY2tlcnMsIHsxOiB7bmFtZTogJ0J1Z3ppbGxhJywgYnVnVXJs
OiAnaHR0cHM6Ly93ZWJraXQub3JnL2IvJG51bWJlcicsCiAgICAgICAgICAgICBuZXdCdWdVcmw6
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nLCByZXBvc2l0b3JpZXM6IG51bGx9fSk7CiAKICAg
ICAgICAgTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCk7CkBAIC05MiwyOCArOTIs
MjggQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAgICAgIGFz
c2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5uYW1lKCksICdX
ZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24o
MTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53
ZWJraXQub3JnLzEyMycpOwogCiAgICAgICAgICAgICBsZXQgbWFjb3MgPSBSZXBvc2l0b3J5LmZp
bmRCeUlkKDkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY29zKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGxldCBpb3MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChpb3MpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpb3MubmFtZSgpLCAnaU9TJyk7CiAKICAgICAgICAgICAgIGxldCB0cmFj
a2VyID0gQnVnVHJhY2tlci5maW5kQnlJZCgxKTsKICAgICAgICAgICAgIGFzc2VydCh0cmFja2Vy
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmFja2VyLm5hbWUoKSwgJ0J1Z3ppbGxhJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5idWdVcmwoMTIzKSwgJ2h0dHBzOi8v
d2Via2l0Lm9yZy9iLzEyMycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIubmV3
QnVnVXJsKCksICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8nKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodHJhY2tlci5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnQnVnemlsbGEnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmFja2VyLmJ1Z1VybCgxMjMpLCAnaHR0cHM6Ly93
ZWJraXQub3JnL2IvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJhY2tl
ci5uZXdCdWdVcmwoKSwgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnLycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0cmFja2VyLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7
CiAKICAgICAgICAgICAgIHRyYWNrZXIgPSBCdWdUcmFja2VyLmZpbmRCeUlkKDIpOwogICAgICAg
ICAgICAgYXNzZXJ0KHRyYWNrZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyYWNrZXIu
bmFtZSgpLCAnUmFkYXInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lKHRyYWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyYWNrZXIubmFtZSgpLCAnUmFkYXInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKHRy
YWNrZXIucmVwb3NpdG9yaWVzKCkpLCBbaW9zLCBtYWNvc10pOwogICAgICAgICB9KTsKICAgICB9
KTsKIApAQCAtMTMxLDE5ICsxMzEsMTkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KDExKTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXQpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXQudXJsRm9yUmV2aXNpb24oMTIzKSwgJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLzEyMycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC5vd25lZFJlcG9zaXRvcmllcygpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXQubmFtZSgpLCAnV2Vi
S2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0LnVybEZvclJldmlz
aW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5vayghd2Via2l0Lm93bmVkUmVwb3NpdG9yaWVzKCkpOwogCiAgICAgICAgICAgICBsZXQg
b3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKICAgICAgICAgICAgIGFzc2VydChvc3gpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdPUyBYJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG9zeC5vd25lZFJlcG9zaXRvcmllcygpLCBbUmVwb3NpdG9yeS5m
aW5kQnlJZCgzNSldKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3gubmFtZSgp
LCAnT1MgWCcpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvc3gub3duZWRS
ZXBvc2l0b3JpZXMoKSwgW1JlcG9zaXRvcnkuZmluZEJ5SWQoMzUpXSk7CiAKICAgICAgICAgICAg
IGxldCBpb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDIyKTsKICAgICAgICAgICAgIGFzc2VydChp
b3MpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvcy5uYW1lKCksICdpT1MnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpb3Mub3duZWRSZXBvc2l0b3JpZXMoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zLm5hbWUoKSwgJ2lPUycpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFpb3Mub3duZWRSZXBvc2l0b3JpZXMoKSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAgICAgICB9
KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnQuYnVpbGRlcnMsIHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVu
dC5idWlsZGVycywgewogICAgICAgICAgICAgICAgICcxJzoge25hbWU6ICdTb21lQnVpbGRlcics
IGJ1aWxkVXJsOiAnaHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzLyRidWlsZGVyTmFt
ZS9idWlsZC8kYnVpbGRUYWcnfSwKICAgICAgICAgICAgICAgICAnMic6IHtuYW1lOiAnU29tZU90
aGVyQnVpbGRlcicsIGJ1aWxkVXJsOiBudWxsfQogICAgICAgICAgICAgfSk7CkBAIC0xNjUsMTMg
KzE2NSwxMyBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKIAogICAg
ICAgICAgICAgbGV0IGJ1aWxkZXIgPSBCdWlsZGVyLmZpbmRCeUlkKDEpOwogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkZXIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXIubmFtZSgp
LCAnU29tZUJ1aWxkZXInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyLnVybEZv
ckJ1aWxkKDEyMyksICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvU29tZUJ1aWxk
ZXIvYnVpbGQvMTIzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlci5u
YW1lKCksICdTb21lQnVpbGRlcicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkZXIudXJsRm9yQnVpbGQoMTIzKSwgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9Tb21lQnVpbGRlci9idWlsZC8xMjMnKTsKIAogICAgICAgICAgICAgYnVpbGRlciA9IEJ1aWxk
ZXIuZmluZEJ5SWQoMik7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRlcik7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRlci5uYW1lKCksICdTb21lT3RoZXJCdWlsZGVyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlci51cmxGb3JCdWlsZCgxMjMpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLm5hbWUoKSwgJ1NvbWVPdGhlckJ1
aWxkZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyLnVybEZvckJ1
aWxkKDEyMyksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjAyLDE0ICsyMDIs
MTQgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS9tYW5pZmVzdCcpOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdHMsIHsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0cywgewogICAgICAgICAgICAg
ICAgICIxIjogeyJuYW1lIjogIlNvbWVUZXN0IiwgInBhcmVudElkIjogbnVsbCwgInVybCI6IG51
bGx9LAogICAgICAgICAgICAgICAgICIyIjogeyJuYW1lIjogIlNvbWVPdGhlclRlc3QiLCAicGFy
ZW50SWQiOiBudWxsLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAgICAgICAgIjMiOiB7Im5hbWUi
OiAiQ2hpbGRUZXN0IiwgInBhcmVudElkIjogIjEiLCAidXJsIjogbnVsbH0sCiAgICAgICAgICAg
ICAgICAgIjQiOiB7Im5hbWUiOiAiR3JhbmRDaGlsZCIsICJwYXJlbnRJZCI6ICIzIiwgInVybCI6
IG51bGx9LAogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudC5tZXRyaWNzLCB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNv
bnRlbnQubWV0cmljcywgewogICAgICAgICAgICAgICAgICc1Jzoge25hbWU6ICdUaW1lJywgdGVz
dDogJzEnLCBhZ2dyZWdhdG9yOiBudWxsfSwKICAgICAgICAgICAgICAgICAnNic6IHtuYW1lOiAn
VGltZScsIHRlc3Q6ICcyJywgYWdncmVnYXRvcjogJ1RvdGFsJ30sCiAgICAgICAgICAgICAgICAg
JzcnOiB7bmFtZTogJ01hbGxvYycsIHRlc3Q6ICcyJywgYWdncmVnYXRvcjogJ1RvdGFsJ30sCkBA
IC0yNDQsNyArMjQ0LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQoaW9zR3JvdXApOwogICAgICAgICAgICAgYXNzZXJ0KG1hY0dy
b3VwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVu
ayBNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYXZlcmlja3Mu
bmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tz
Lmhhc1Rlc3Qoc29tZVRlc3QpKTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFzVGVz
dChzb21lT3RoZXJUZXN0KSk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc1Rlc3Qo
Y2hpbGRUZXN0KSk7CkBAIC0yNTMsOSArMjUzLDkgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tzLmhhc01ldHJpYyhz
b21lT3RoZXJUZXN0VGltZSkpOwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNNZXRy
aWMoc29tZU90aGVyVGVzdE1hbGxvYykpOwogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5o
YXNNZXRyaWMoY2hpbGRUZXN0TWV0cmljKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2
ZXJpY2tzLmdyb3VwKCksIG1hY0dyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW9zOWlwaG9uZTVzLm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGlvczlpcGhvbmU1cy5uYW1lKCksICdpT1MgOSBpUGhvbmUgNXMn
KTsKICAgICAgICAgICAgIGFzc2VydChpb3M5aXBob25lNXMuaGFzVGVzdChzb21lVGVzdCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzVGVzdChzb21lT3RoZXJUZXN0KSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNUZXN0KGNoaWxkVGVzdCkpOwpA
QCAtMjY0LDYzICsyNjQsNjMgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVy
VGVzdFRpbWUpKTsKICAgICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhz
b21lT3RoZXJUZXN0TWFsbG9jKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5o
YXNNZXRyaWMoY2hpbGRUZXN0TWV0cmljKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9z
OWlwaG9uZTVzLmdyb3VwKCksIGlvc0dyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChpb3M5aXBob25lNXMuZ3JvdXAoKSwgaW9zR3JvdXApOwogCiAgICAgICAgICAgICBjb25z
dCBtYWNQbGF0Zm9ybXMgPSBtYWNHcm91cC5wbGF0Zm9ybXMoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtYWNQbGF0Zm9ybXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChtYWNQbGF0Zm9ybXNbMF0sIG1hdmVyaWNrcyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWFjUGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwobWFjUGxhdGZvcm1zWzBdLCBtYXZlcmlja3MpOwogCiAgICAgICAgICAgICBjb25zdCBp
b3NQbGF0Zm9ybXMgPSBpb3NHcm91cC5wbGF0Zm9ybXMoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpb3NQbGF0Zm9ybXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChp
b3NQbGF0Zm9ybXNbMF0sIGlvczlpcGhvbmU1cyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW9zUGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBpb3M5aXBob25lNXMpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29tZVRlc3QnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzb21lVGVzdC5wYXJlbnRUZXN0KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzb21lVGVzdC5wYXRoKCksIFtzb21lVGVzdF0pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQub2soIXNvbWVUZXN0LnBhcmVudFRlc3QoKSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0LnBhdGgoKSwgW3NvbWVUZXN0XSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIXNvbWVUZXN0Lm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc29tZVRlc3QuY2hpbGRUZXN0cygpLCBbY2hpbGRUZXN0XSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0Lm1ldHJpY3MoKSwgW3NvbWVU
ZXN0TWV0cmljXSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdE1ldHJpYy5u
YW1lKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3RNZXRyaWMu
YWdncmVnYXRvck5hbWUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRl
c3RNZXRyaWMubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZVRlc3RNZXRyaWMuY2hpbGRNZXRyaWNzKCksIGNoaWxkVGVzdC5tZXRyaWNzKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0TWV0cmljLmZ1bGxOYW1lKCksICdTb21lVGVz
dCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubmFt
ZSgpLCAnU29tZU90aGVyVGVzdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhl
clRlc3QucGFyZW50VGVzdCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c29tZU90aGVyVGVzdC5wYXRoKCksIFtzb21lT3RoZXJUZXN0XSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0LmNoaWxkVGVzdHMoKSwgW2NoaWxkVGVzdF0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVzdC5tZXRyaWNzKCksIFtz
b21lVGVzdE1ldHJpY10pOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRl
c3RNZXRyaWMubmFtZSgpLCAnVGltZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVUZXN0TWV0cmljLmFnZ3JlZ2F0b3JOYW1lKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmxhYmVsKCksICdUaW1lJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNvbWVUZXN0TWV0cmljLmNoaWxkTWV0cmljcygp
LCBjaGlsZFRlc3QubWV0cmljcygpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
b21lVGVzdE1ldHJpYy5mdWxsTmFtZSgpLCAnU29tZVRlc3QgOiBUaW1lJyk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm5hbWUoKSwgJ1NvbWVPdGhlclRl
c3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghc29tZU90aGVyVGVzdC5wYXJlbnRUZXN0KCkp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0LnBhdGgo
KSwgW3NvbWVPdGhlclRlc3RdKTsKICAgICAgICAgICAgIGFzc2VydCghc29tZU90aGVyVGVzdC5v
bmx5Q29udGFpbnNTaW5nbGVNZXRyaWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1lKCksICdUaW1lJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uYWdncmVnYXRv
ck5hbWUoKSwgJ1RvdGFsJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVz
dC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUgOiBUb3RhbCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0
aCwgMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClb
MF0uZnVsbE5hbWUoKSwgJ1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxs
b2MnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsx
XS5hZ2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
b21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5jaGlsZE1l
dHJpY3MoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVPdGhlclRl
c3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0IDogTWFsbG9jIDogVG90
YWwnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGls
ZFRlc3QnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgp
LCBzb21lVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5wYXRo
KCksIFtzb21lVGVzdCwgY2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHNvbWVPdGhlclRlc3QuY2hpbGRUZXN0cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVswXS5uYW1l
KCksICdUaW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVz
dC5tZXRyaWNzKClbMF0uYWdncmVnYXRvck5hbWUoKSwgJ1RvdGFsJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1Rp
bWUgOiBUb3RhbCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNvbWVPdGhlclRl
c3QubWV0cmljcygpWzBdLmNoaWxkTWV0cmljcygpLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc29tZU90aGVyVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwg
J1NvbWVPdGhlclRlc3QgOiBUaW1lIDogVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5uYW1lKCksICdNYWxsb2MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5h
Z2dyZWdhdG9yTmFtZSgpLCAnVG90YWwnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsxXS5sYWJlbCgpLCAnTWFsbG9jIDogVG90YWwnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lT3RoZXJUZXN0Lm1ldHJpY3MoKVsx
XS5jaGlsZE1ldHJpY3MoKS5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNvbWVPdGhlclRlc3QubWV0cmljcygpWzFdLmZ1bGxOYW1lKCksICdTb21lT3RoZXJUZXN0
IDogTWFsbG9jIDogVG90YWwnKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNo
aWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjaGlsZFRlc3QucGFyZW50VGVzdCgpLCBzb21lVGVzdCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNoaWxkVGVzdC5wYXRoKCksIFtzb21lVGVzdCwgY2hpbGRUZXN0
XSk7CiAgICAgICAgICAgICBhc3NlcnQoIWNoaWxkVGVzdC5vbmx5Q29udGFpbnNTaW5nbGVNZXRy
aWMoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNoaWxkVGVzdC5jaGlsZFRlc3Rz
KCksIFtncmFuZENoaWxkVGVzdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVz
dC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjaGlsZFRl
c3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1lJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENo
aWxkVGVzdCA6IFRpbWUnKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyYW5kQ2hpbGRU
ZXN0Lm5hbWUoKSwgJ0dyYW5kQ2hpbGQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFu
ZENoaWxkVGVzdC5wYXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdy
YW5kQ2hpbGRUZXN0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNoaWxk
VGVzdC5jaGlsZFRlc3RzKCksIFtncmFuZENoaWxkVGVzdF0pOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNoaWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubWV0cmljcygpWzBdLmxhYmVsKCksICdUaW1l
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2hpbGRUZXN0Lm1ldHJpY3MoKVsw
XS5mdWxsTmFtZSgpLCAnU29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCA6IFRpbWUnKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm5hbWUoKSwgJ0dyYW5k
Q2hpbGQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncmFuZENoaWxkVGVzdC5w
YXJlbnRUZXN0KCksIGNoaWxkVGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGdyYW5kQ2hpbGRUZXN0LnBhdGgoKSwgW3NvbWVUZXN0LCBjaGlsZFRlc3QsIGdyYW5kQ2hp
bGRUZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQoZ3JhbmRDaGlsZFRlc3Qub25seUNvbnRhaW5z
U2luZ2xlTWV0cmljKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncmFuZENoaWxk
VGVzdC5jaGlsZFRlc3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncmFuZENo
aWxkVGVzdC5tZXRyaWNzKCkubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0ubGFiZWwoKSwgJ1RpbWUnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChncmFuZENoaWxkVGVzdC5tZXRyaWNzKClbMF0uZnVsbE5hbWUoKSwgJ1Nv
bWVUZXN0IFx1MjIwQiBDaGlsZFRlc3QgXHUyMjBCIEdyYW5kQ2hpbGQgOiBUaW1lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0LmNoaWxkVGVzdHMo
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1l
dHJpY3MoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyYW5k
Q2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5sYWJlbCgpLCAnVGltZScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyYW5kQ2hpbGRUZXN0Lm1ldHJpY3MoKVswXS5mdWxsTmFtZSgpLCAn
U29tZVRlc3QgXHUyMjBCIENoaWxkVGVzdCBcdTIyMEIgR3JhbmRDaGlsZCA6IFRpbWUnKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM3NCw1OSArMzc0LDU5IEBAIGRlc2NyaWJlKCcvYXBp
L21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZl
dGNoKCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3Qgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Lm5hbWUoKSwgJ1dlYktpdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdC51
cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Lm5hbWUoKSwgJ1dlYktpdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdC51cmxGb3JSZXZpc2lvbigxMjMpLCAn
aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG9zV2Vi
a2l0MSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3NXZWJraXQxLm93bmVySWQoKSwgOSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJr
aXQxLnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc1dlYmtpdDEubmFtZSgpLCAnV2ViS2l0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3NXZWJraXQxLm93
bmVySWQoKSksIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zV2Via2l0MS51
cmxGb3JSZXZpc2lvbigxMjMpLCAnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvMTIzJyk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtYWNvcy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CiAKICAgICAgICAgICAgIGNv
bnN0IHNoYXJlZCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMTYpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNoYXJlZC5uYW1lKCksICdTaGFyZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChzaGFyZWQubmFtZSgpLCAnU2hhcmVkJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNv
bWVUZXN0ID0gVGVzdC5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21l
VGVzdC5uYW1lKCksICdTb21lVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNvbWVUZXN0Lm5hbWUoKSwgJ1NvbWVUZXN0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNvbWVP
dGhlclRlc3QgPSBUZXN0LmZpbmRCeUlkKDIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNv
bWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNvbWVPdGhlclRlc3QubmFtZSgpLCAnU29tZU90aGVyVGVzdCcpOwogCiAg
ICAgICAgICAgICBjb25zdCBjaGlsZFRlc3QgPSBUZXN0LmZpbmRCeUlkKDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNoaWxkVGVzdC5uYW1lKCksICdDaGlsZFRlc3QnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGlsZFRlc3QubmFtZSgpLCAnQ2hpbGRUZXN0Jyk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGlvczlpcGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBo
b25lIDVzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zOWlwaG9uZTVzLm5h
bWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogCiAgICAgICAgICAgICBjb25zdCBtYXZlcmlja3Mg
PSBQbGF0Zm9ybS5maW5kQnlJZCg0Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWF2ZXJp
Y2tzLm5hbWUoKSwgJ1RydW5rIE1hdmVyaWNrcycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG1hdmVyaWNrcy5uYW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKIAogICAgICAgICAg
ICAgY29uc3Qgc2llcnJhID0gUGxhdGZvcm0uZmluZEJ5SWQoMTA0KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzaWVycmEubmFtZSgpLCAnVHJ1bmsgU2llcnJhIE1hY0Jvb2tQcm8xMSwyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2llcnJhLm5hbWUoKSwgJ1RydW5rIFNp
ZXJyYSBNYWNCb29rUHJvMTEsMicpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dl
cmFibGUuYWxsKCkubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChU
cmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDMpOwogCiAgICAgICAgICAgICBjb25zdCBtYWNvc1Ry
aWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3Qs
IG1hdmVyaWNrcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjb3NUcmlnZ2VyYWJsZS5u
YW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwobWFjb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC53ZWJraXQub3JnJyk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihz
b21lT3RoZXJUZXN0LCBtYXZlcmlja3MpLCBtYWNvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRl
c3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRl
c3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwg
bWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IGlvc1Ry
aWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVy
VGVzdCwgaW9zOWlwaG9uZTVzKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChpb3NUcmln
Z2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9z
VHJpZ2dlcmFibGUubmFtZSgpLCAnaW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5ub3RTdHJpY3RFcXVhbChpb3NUcmlnZ2VyYWJsZSwgbWFjb3NUcmlnZ2VyYWJsZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW9zVHJpZ2dlcmFibGUubmFtZSgpLCAn
aW9zLWJ1aWxkLndlYmtpdC5vcmcnKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdn
ZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVPdGhlclRlc3QsIGlvczlpcGhvbmU1
cyksIGlvc1RyaWdnZXJhYmxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJs
ZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihjaGlsZFRlc3QsIGlvczlpcGhvbmU1cyksIGlvc1Ry
aWdnZXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5m
aW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NU
cmlnZ2VyYWJsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJpZ2dlcmFibGUu
ZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25lNXMpLCBpb3NUcmln
Z2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFi
bGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIHNpZXJyYSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobWFjVHJpZ2dlcmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndlYmtpdC5v
cmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChtYWNUcmlnZ2VyYWJsZS5uYW1l
KCksICdtYWMtYnVpbGQud2Via2l0Lm9yZycpOwogICAgICAgICAgICAgYXNzZXJ0KG1hY1RyaWdn
ZXJhYmxlLmFjY2VwdGVkVGVzdHMoKS5oYXMoc29tZVRlc3QpKTsKIAogICAgICAgICAgICAgY29u
c3QgZ3JvdXBzID0gbWFjVHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICBUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKGdyb3Vwcyk7CiAKICAgICAgICAgICAgIGNv
bnN0IGVtcHR5Q3VzdG9tU2V0ID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKQEAgLTQ0NSwzNSArNDQ1
LDM1IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQsICcxOTE2MjInKTsKICAgICAgICAgICAgIGN1c29tU2V0V2l0aFdlYktpdEFuZFNoYXJl
ZC5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkLCAnODY0NTYnKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUo
Z3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIHRy
dWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29tU2V0
V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0
KSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFd
LmlzSGlkZGVuKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0u
YWNjZXB0c0N1c3RvbVJvb3RzKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJr
aXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMo
ZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
WzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCB0cnVl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdp
dGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwotCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLm5hbWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFs
c2UpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUo
Z3JvdXBzWzJdLnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0V2l0
aE9TWCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMl0uYWNjZXB0
cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0QW5kU2hhcmVkKSwgdHJ1
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRX
aXRoV2ViS2l0KSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
c1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXJvb3RzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXBzWzBdLmlzSGlkZGVuKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3Jv
dXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0
aE9TWCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1swXS5h
Y2NlcHRzKGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRT
aGFyZWQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBd
LmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmlzSGlkZGVuKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0c0N1c3Rv
bVJvb3RzKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVw
b3NpdG9yeS5zb3J0QnlOYW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1h
Y29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMo
ZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z3JvdXBzWzFdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRX
ZWJLaXQpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMV0u
YWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXRBbmRTaGFyZWQpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0
KSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLm5h
bWUoKSwgJ3dlYmtpdC1hbmQtc2hhcmVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXBzWzJdLmlzSGlkZGVuKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3Vwc1syXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzJd
LnJlcG9zaXRvcmllcygpKSwgW3NoYXJlZCwgd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3VzdG9tU2V0
V2l0aE9TWCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNb
Ml0uYWNjZXB0cyhjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0
QW5kU2hhcmVkKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBz
WzJdLmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCmluZGV4IDM1MmI2MTJm
NzY3NjE4NTVlNzhmNTM2YmIzYTEzMDg5NTVhY2IxZjQuLjI2YWYzZDMwMWM1ZGEzMzQ2NjIxOTQ4
N2IwMzQ3N2NhMjI0ZGNjYzYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMK
QEAgLTI0MywxMiArMjQzLDEyIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0
aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGlt
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9
KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JHtyZXN1bHQubWV0
cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmVxdWVzdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0FtYmlndW91
c1JlcXVlc3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBA
IGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMo
J01vdW50YWluIExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkv
bWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWApOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yNjksMTIgKzI2OSwxMiBAQCBkZXNjcmliZSgiL2FwaS9t
ZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVy
Rm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywg
J1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/
cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1hJm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1g
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0n
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MiwxMiArMjgyLDEyIEBAIGRlc2NyaWJl
KCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFk
ZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWlu
IExpb24nLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1l
bnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0
cmljSWR9YmApOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkTWV0
cmljJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTcsNyArMzE3LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT00NiZtZXRyaWM9NWApLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfSk7CkBAIC0zMjYsMzEgKzMyNiwzMSBAQCBkZXNjcmliZSgiL2FwaS9t
ZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVy
Rm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywg
J1RpbWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJl
bWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5t
ZXRyaWNJZH1gKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVp
bGRUaW1lJ10pKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhy
ZXNwb25zZSkuc29ydCgpLAorICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChPYmpl
Y3Qua2V5cyhyZXNwb25zZSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnY2x1c3RlckNvdW50
JywgJ2NsdXN0ZXJTaXplJywgJ2NsdXN0ZXJTdGFydCcsCiAgICAgICAgICAgICAgICAgICAnY29u
ZmlndXJhdGlvbnMnLCAnZWxhcHNlZFRpbWUnLCAnZW5kVGltZScsICdmb3JtYXRNYXAnLCAnbGFz
dE1vZGlmaWVkJywgJ3N0YXJ0VGltZScsICdzdGF0dXMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIFsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydjbHVzdGVyQ291bnQnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgWwogICAgICAgICAgICAgICAg
ICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50JywgJ3N1bScsICdzcXVhcmVTdW0nLCAnbWFy
a2VkT3V0bGllcicsCiAgICAgICAgICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1lJywg
J2J1aWxkJywgJ2J1aWxkVGltZScsICdidWlsZFRhZycsICdidWlsZGVyJ10pOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRU
aW1lLnN0YXJ0VGltZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CiAgICAgICAgICAg
ICBhc3NlcnQodHlwZW9mKHJlc3BvbnNlWydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICds
YXN0TW9kaWZpZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBb
J2N1cnJlbnQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE9iamVjdC5r
ZXlzKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddKSwgWydjdXJyZW50J10pOwogCiAgICAgICAg
ICAgICBjb25zdCBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJy
ZW50J107Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHJlc3BvbnNl
Wydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3Jt
YXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zvcm1h
dE1hcCddLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1h
dChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAg
ICAgIG1lYW46IDMsCiAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCiAgICAgICAg
ICAgICAgICAgc3VtOiAxNSwKQEAgLTM2Nyw3ICszNjcsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFz
dXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRCdWlsZGVyRm9y
UmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhCdWlsZFRpbWUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1Rp
bWUnKTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKQEAgLTM4MywyMCArMzgzLDIwIEBAIGRlc2NyaWJl
KCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkZXJzID0gcmVzdWx0WzJdOwogICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXN1
bHRbM107CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChydW5zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlcnMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50SWQgPSBydW5zWzBdWydp
ZCddOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJZCA9IGJ1aWxkc1swXVsnaWQnXTsKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydpZCddOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXS5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydjb25maWd1
cmF0aW9ucyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG1lYXN1
cmVtZW50ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5k
ZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1l
YXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJ
ZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1h
dE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwobWVhc3VyZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2Yo
J2lkJyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCht
ZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxk
SWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNl
Wydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNDI4LDggKzQyOCw4IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVt
ZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uVGltZSA9
ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0J11b
J3RpbWVzdGFtcCddKSk7CiAgICAgICAgICAgICBjb25zdCByZXZpc2lvbkJ1aWxkVGltZSA9ICso
bmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3Nb
MF0pLCB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3MubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNl
Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CiAgICAgICAgICAgICAgICBtZWFuOiAx
MywKICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3Vt
OiA2NSwKQEAgLTQzOSw3ICs0MzksNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQi
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUs
CiAgICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAogICAgICAgICAg
ICAgICAgYnVpbGRUYWc6ICcxMjQnIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwg
Y3VycmVudFJvd3NbMV0pLCB7CiAgICAgICAgICAgICAgICAgbWVhbjogMywKICAgICAgICAgICAg
ICAgICBpdGVyYXRpb25Db3VudDogNSwKICAgICAgICAgICAgICAgICBzdW06IDE1LApAQCAtNDY2
LDE2ICs0NjYsMTYgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0
YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9
Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKIAogICAgICAgICBjb25zdCBjdXJyZW50Um93
cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWlsZFRhZywg
MTI3KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1h
cCddLCBjdXJyZW50Um93c1sxXSkuYnVpbGRUYWcsIDEyOCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKS5idWls
ZFRhZywgJzEyNycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNw
b25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKS5idWlsZFRhZywgJzEyOCcpOwogICAg
ICAgICBhc3NlcnQoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0p
LmNvbW1pdFRpbWUgPCByZXNwb25zZS5zdGFydFRpbWUpOwogICAgICAgICBhc3NlcnQoZm9ybWF0
KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLmNvbW1pdFRpbWUgPCByZXNw
b25zZS5zdGFydFRpbWUpOwogCiAgICAgICAgIGNvbnN0IGJhc2VsaW5lUm93cyA9IHJlc3BvbnNl
Wydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmFz
ZWxpbmVSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJl
c3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywgMTMxKTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBiYXNl
bGluZVJvd3NbMV0pLmJ1aWxkVGFnLCAxMjkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YmFzZWxpbmVSb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
Zm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgYmFzZWxpbmVSb3dzWzBdKS5idWlsZFRhZywg
JzEzMScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsn
Zm9ybWF0TWFwJ10sIGJhc2VsaW5lUm93c1sxXSkuYnVpbGRUYWcsICcxMjknKTsKICAgICB9KTsK
IAogICAgIGl0KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBidWlsZCB0aW1lIHdoZW4gY29tbWl0
IHRpbWVzIGFyZSBtaXNzaW5nIiwgKCkgPT4gewpAQCAtNTIyLDggKzUyMiw4IEBAIGRlc2NyaWJl
KCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVy
biByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9y
bT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50Um93
cyA9IHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydiYXNlbGluZSddOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwg
eworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9y
bWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewogICAgICAgICAgICAgICAgbWVhbjogMywKICAg
ICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAogICAgICAgICAgICAgICAgc3VtOiAxNSwK
QEAgLTUzMyw3ICs1MzMsNyBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICAgICBjb21taXRUaW1lOiArRGF0ZS5VVEMoMjAxNywgMCwg
MTksIDE1LCAyOCwgMSksCiAgICAgICAgICAgICAgICBidWlsZFRpbWU6ICtEYXRlLlVUQygyMDE3
LCAwLCAxOSwgMTUsIDI4LCAxKSwKICAgICAgICAgICAgICAgIGJ1aWxkVGFnOiAnMTAwMScgfSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFw
J10sIGN1cnJlbnRSb3dzWzFdKSwgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKICAgICAg
ICAgICAgICAgICBtZWFuOiA3LAogICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAog
ICAgICAgICAgICAgICAgIHN1bTogMzUsCkBAIC01NjIsOSArNTYyLDkgQEAgZGVzY3JpYmUoIi9h
cGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9
JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQg
aGF2ZSB0d28gY2x1c3RlcnMnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRU
YWdzKHJlc3BvbnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJz
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25z
ZSwgJ2N1cnJlbnQnKSwKICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0aEFuY2llbnRSZXZpc2lv
blswXVsnYnVpbGRUYWcnXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWlsZFRhZyddXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTgwLDEwICs1ODAsMTAgQEAgZGVzY3JpYmUoIi9h
cGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9
JHtyZXN1bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hv
dWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7
CiAgICAgICAgICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMn
XVsnY3VycmVudCddOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0
aCwgMiwgJ3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChidWlsZFRhZ3MocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRXaXRo
QW5jaWVudFJldmlzaW9uWzBdWydidWlsZFRhZyddLCByZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydi
dWlsZFRhZyddXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VycmVudFJvd3Mu
bGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gdHdvIGRhdGEgcG9pbnRzJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkVGFncyhyZXNwb25zZSwgJ2N1cnJlbnQnKSwg
W3JlcG9ydFdpdGhBbmNpZW50UmV2aXNpb25bMF1bJ2J1aWxkVGFnJ10sIHJlcG9ydFdpdGhCdWls
ZFRpbWVbMF1bJ2J1aWxkVGFnJ11dKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYwMywx
NCArNjAzLDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVh
c3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1
bHQubWV0cmljSWR9YCk7CiAgICAgICAgIH0pLnRoZW4oKG5ld1Jlc3VsdCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0uanNv
bmApLnRoZW4oKGNhY2hlZFJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwobmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOwogICAgICAgICAgICAgICAg
IHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2FjaGVk
UmVzdWx0WydzdGFydFRpbWUnXX0uanNvbmApOwogICAgICAgICAgICAgfSkudGhlbigob2xkUmVz
dWx0KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qgb2xkYnVpbGRUYWdzID0gYnVpbGRUYWdz
KG9sZFJlc3VsdCwgJ2N1cnJlbnQnKTsKICAgICAgICAgICAgICAgICBjb25zdCBuZXdidWlsZFRh
Z3MgPSBidWlsZFRhZ3MobmV3UmVzdWx0LCAnY3VycmVudCcpOwogICAgICAgICAgICAgICAgIGFz
c2VydChvbGRidWlsZFRhZ3MubGVuZ3RoID49IDIsICdUaGUgb2xkIGNsdXN0ZXIgc2hvdWxkIGNv
bnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
KG5ld2J1aWxkVGFncy5sZW5ndGggPj0gMiwgJ1RoZSBuZXcgY2x1c3RlciBzaG91bGQgY29udGFp
biBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1
aWxkVGFncy5zbGljZSgwLCAyKSwKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG9sZGJ1aWxkVGFncy5zbGljZShvbGRidWlsZFRhZ3MubGVuZ3RoIC0gMiksIG5ld2J1aWxk
VGFncy5zbGljZSgwLCAyKSwKICAgICAgICAgICAgICAgICAgICAgJ1R3byBjb25zZXFjdXRpdmUg
Y2x1c3RlcnMgc2hvdWxkIHNoYXJlIHR3byBkYXRhIHBvaW50cycpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwpAQCAtNjI5LDkgKzYyOSw5IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVt
ZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBtYW5pZmVzdCA9
IE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwogCiAgICAgICAgICAgICAgICAg
Y29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdNb3VudGFpbiBMaW9uJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1ldHJpYy5hbGwoKS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNZXRyaWMuYWxsKCkubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBtZXRyaWMgPSBNZXRyaWMuYWxsKClbMF07Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpLCBwcmlt
YXJ5Q2x1c3RlclsnbGFzdE1vZGlmaWVkJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwbGF0Zm9ybS5sYXN0TW9kaWZpZWQobWV0cmljKSwgcHJpbWFyeUNsdXN0ZXJbJ2xh
c3RNb2RpZmllZCddKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTY3MywxMCArNjczLDEwIEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0
aW9uICgpIHsKICAgICBpdCgic2hvdWxkIGFsbG93IHRvIHJlcG9ydCBhIGJ1aWxkIHJlcXVlc3Qi
LCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKSk7CiAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHJlcG9ydEFm
dGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydFdpdGhCdWls
ZFJlcXVlc3QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09O
V2l0aFN0YXR1cygnL2FwaS9tZWFzdXJlbWVudC1zZXQvP2FuYWx5c2lzVGFzaz01MDAnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ21lYXN1cmVtZW50cyddLCBbWzEsIDQsIDMsIDEyLCA1
MCwgWworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRz
J10sIFtbMSwgNCwgMywgMTIsIDUwLCBbCiAgICAgICAgICAgICAgICAgWycxJywgJzknLCAnMTAu
OC4yIDEyQzYwJywgbnVsbCwgMF0sIFsnMicsICcxMScsICcxNDE5NzcnLCBudWxsLCAxMzYwMTQw
OTIwOTAwXV0sCiAgICAgICAgICAgICAxLCAxMzYyMDQ2MzIzMzg4LCAnMTIzJywgMSwgMSwgJ2N1
cnJlbnQnXV0pOwogICAgIH0pOwpAQCAtNzExLDE3ICs3MTEsMTcgQEAgZGVzY3JpYmUoIi9hcGkv
bWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBjb25zdCByZW1vdGUgPSBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpOwogICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0
YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBy
ZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRX
aXRoQ29tbWl0c05lZWRzUm91bmRDb21taXRUaW1lQW5kQnVpbGRSZXF1ZXN0KTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCiAgICAgICAgIGNvbnN0IHJh
d1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9jb21t
aXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENvbW1p
dC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3Rl
ZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0gYXdh
aXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4yJTIw
MTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNbMF0u
dGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0VGlt
ZSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT05XaXRoU3RhdHVzKCcvYXBpL21lYXN1cmVtZW50LXNldC8/YW5hbHlzaXNUYXNrPTUwMCcp
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZVsnbWVhc3VyZW1lbnRzJ10sIFtbMSwgNCwgMywg
MTIsIDUwLCBbCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlWydtZWFzdXJl
bWVudHMnXSwgW1sxLCA0LCAzLCAxMiwgNTAsIFsKICAgICAgICAgICAgIFsnMScsICc5JywgJzEw
LjguMiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWycyJywgJzExJywg
JzE0MTk3NycsIG51bGwsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZV1dLAogICAgICAgICAgICAg
MSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDEsIDEsICdjdXJyZW50J11dKTsKICAgICB9KTsKQEAg
LTc1NywxNCArNzU3LDE0IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
cmVwb3J0V2l0aENvbW1pdHNOZWVkc1JvdW5kQ29tbWl0VGltZV0pOwogCiAgICAgICAgIGNvbnN0
IHJhd1dlYktpdENvbW1pdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9j
b21taXRzL1dlYktpdC8xNDE5NzdgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd1dlYktpdENv
bW1pdC5jb21taXRzWzBdLnRpbWUsIGV4cGVjdGVkV2ViS2l0Q29tbWl0VGltZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyYXdXZWJLaXRDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBl
Y3RlZFdlYktpdENvbW1pdFRpbWUpOwogCiAgICAgICAgIGNvbnN0IHJhd01hY09TQ29tbWl0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL2NvbW1pdHMvbWFjT1MvMTAuOC4y
JTIwMTJDNjBgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJhd01hY09TQ29tbWl0LmNvbW1pdHNb
MF0udGltZSwgZXhwZWN0ZWRNYWNPU0NvbW1pdFRpbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmF3TWFjT1NDb21taXQuY29tbWl0c1swXS50aW1lLCBleHBlY3RlZE1hY09TQ29tbWl0
VGltZSk7CiAKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlQbGF0Zm9ybUFuZE1l
dHJpYygnTW91bnRhaW4gTGlvbicsICdGcmFtZVJhdGUnKTsKICAgICAgICAgY29uc3QgcHJpbWFy
eUNsdXN0ZXIgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1l
bnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0
cmljSWR9YCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmln
dXJhdGlvbnMuY3VycmVudCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCisgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwocHJpbWFyeUNsdXN0ZXIuY29uZmlndXJhdGlvbnMuY3VycmVu
dCwgW1sxLCA0LCAzLCAxMiwgNTAsIGZhbHNlLCBbCiAgICAgICAgICAgICBbMSwgMSwgJzEwLjgu
MiAxMkM2MCcsIG51bGwsIGV4cGVjdGVkTWFjT1NDb21taXRUaW1lXSwgWzIsIDIsICcxNDE5Nzcn
LCBudWxsLCBleHBlY3RlZFdlYktpdENvbW1pdFRpbWVdXSwKICAgICAgICAgICAgIGV4cGVjdGVk
V2ViS2l0Q29tbWl0VGltZSwgMSwgMTM2MjA0NjMyMzM4OCwgJzEyMycsIDFdXSk7CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1y
ZXBvcnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IDMyNDczMzk2MTg4ZjY4Yzcz
OWQ3NDhhYmY4YTg2ZmVkNGE0MGZmZTEuLmI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQwYzMw
YzRiMTg1OWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC03OCwxNiAr
NzgsMTYgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUi
LCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZl
IG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
TWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKICAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCAoKSA9
PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdT
bGF2ZU5vdEZvdW5kJyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAg
LTk1LDcgKzk1LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0
PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChl
bXB0eVJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCk7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtMTAzLDExICsxMDMsMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMn
KTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWyduYW1l
J10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXVsnbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNb
MF1bJ3JlcG9zaXRvcnknXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMTUsNyArMTE1
LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9u
Q29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQp
OwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsKICAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CkBAIC0xMjMsMTQgKzEyMywxNCBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGxldCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgbGV0
IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1swXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUo
JzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0
ZXJzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydu
YW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvcidd
WydhY2NvdW50J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNp
b24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDIt
MDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21t
aXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0
ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRl
ZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAt
MTM4LDEwICsxMzgsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZl
cnNpb25JbnZhbGlkQ29tbWl0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNp
b24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmV2aXNpb24nKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFi
YXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsK
IApAQCAtMTQ5LDMyICsxNDksMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdp
dGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZv
clJlcG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0
cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxl
Y3RBbGwoJ2NvbW1pdHRlcnMnKV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBj
b21taXR0ZXJzID0gcmVzdWx0WzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsKIAog
ICAgICAgICAgICAgbGV0IHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1p
dHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwg
cmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAu
OScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21l
c3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydwcmV2aW91c19jb21taXQnXSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRl
ZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCBy
ZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1
NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNb
MF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3By
ZXZpb3VzX2NvbW1pdCddLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCBy
ZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwogCiAgICAgICAgICAgICByZXBvcnRl
ZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24n
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsndGltZSddLnRvU3RyaW5n
KCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsn
bWVzc2FnZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0
ZXInXSwgY29tbWl0dGVyc1sxXVsnaWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1sxXVsncHJldmlvdXNfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRo
b3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFdWydh
Y2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRh
WydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFd
Wyd0aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRv
U3RyaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV1bJ21l
c3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzFdWydpZCddKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdWydwcmV2aW91c19jb21t
aXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0dGVyc1sxXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQnXSwg
cmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3
aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVG
b3JSZXBvcnQoc3VidmVyc2lvbkludmFsaWRQcmV2aW91c0NvbW1pdCkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZFByZXZpb3VzQ29tbWl0KTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb0ZpbmRQcmV2aW91c0NvbW1pdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ZhaWxlZFRvRmluZFBy
ZXZpb3VzQ29tbWl0Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgnY29tbWl0cycpOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTIwMCwxOCArMjAwLDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3
aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50aGVuKChy
ZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxs
KCdjb21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFswXTsK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CiAKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCdd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9y
dGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRl
ZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRo
b3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJz
WzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC0yMjgsMjMgKzIyOCwyMyBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKICAg
ICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5h
bGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0p
OwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFd
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsn
aWQnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBm
aXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3NhZ2Un
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVy
J10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGZp
cnN0RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRzWzFdWydpZCddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlciddLCBudWxsKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTI1OSwxMiArMjU5LDEyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2NvbW1p
dHRlcnMnKTsKICAgICAgICAgfSkudGhlbigoY29tbWl0dGVycykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCdd
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBh
dXRob3JbJ25hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVy
c1swXVsnYWNjb3VudCddLCBhdXRob3JbJ2FjY291bnQnXSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0zMDIsMTUgKzMwMiwxNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8g
d2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZl
Rm9yUmVwb3J0KHNhbWVSZXBvc2l0b3J5TmFtZUluT3duZWRDb21taXRBbmRNYWpvckNvbW1pdCku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzYW1lUmVwb3NpdG9yeU5hbWVJbk93bmVk
Q29tbWl0QW5kTWFqb3JDb21taXQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncmVwb3Np
dG9yaWVzJywgeyduYW1lJzogJ1dlYktpdCd9KTsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICBs
ZXQgb3NXZWJLaXQgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgd2Via2l0UmVwb3NpdG9y
eSA9IHJlc3VsdFsxXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc1dlYktpdC5pZCwg
d2Via2l0UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJLaXQu
bmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJp
Y3RFcXVhbChvc1dlYktpdC5pZCwgd2Via2l0UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3NXZWJLaXQubmFtZSwgd2Via2l0UmVwb3NpdG9yeS5uYW1lKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBu
dWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0Myw3ICszNDMsNyBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN5c3RlbVZlcnNpb25Db21taXRXaXRo
T3duZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNp
b25Db21taXRXaXRoT3duZWRDb21taXRzKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdFJvd3MoJ2NvbW1pdHMn
LCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDMyJ30pLAogICAgICAgICAgICAgICAgIGRiLnNlbGVj
dFJvd3MoJ2NvbW1pdHMnLCB7J21lc3NhZ2UnOiAnV2ViS2l0IENvbW1pdCd9KSwKICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydtZXNzYWdlJzogJ0phdmFTY3JpcHRD
b3JlIGNvbW1pdCd9KSwKQEAgLTM1MSw1NCArMzUxLDU0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICJXZWJLaXQifSksCiAg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ0ph
dmFTY3JpcHRDb3JlJ30pXSkKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzdWx0Lmxlbmd0aCwgNik7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbMF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbMF0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdCA9IHJlc3Vs
dFswXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQsIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9zeENvbW1pdCwgbnVsbCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMV0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHdlYmtpdENvbW1pdCA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RF
cXVhbCh3ZWJraXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVx
dWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
Ml0ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGpzY0NvbW1pdCA9IHJlc3VsdFsyXVsw
XTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQsIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGpzY0NvbW1pdCwgbnVsbCk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbM10ubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IG9z
eFJlcG9zaXRvcnkgPSByZXN1bHRbM11bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
b3N4UmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwo
b3N4UmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRb
NF0ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNF0u
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSByZXN1bHRb
NF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwod2Via2l0UmVwb3NpdG9yeSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeSwg
bnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbNV0ubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRbNV1bMF07Ci0gICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdlYmtpdFJlcG9z
aXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdC5yZXBvc2l0b3J5
LCBqc2NSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hSZXBvc2l0
b3J5Lm93bmVyLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0
b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChq
c2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQucmVwb3NpdG9yeSwgb3N4UmVwb3NpdG9yeS5pZCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LnJlcG9zaXRvcnksIHdl
YmtpdFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0Nv
bW1pdC5yZXBvc2l0b3J5LCBqc2NSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvc3hSZXBvc2l0b3J5Lm93bmVyLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lm93bmVyLCBvc3hSZXBvc2l0b3J5LmlkKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lm93bmVyLCBvc3hS
ZXBvc2l0b3J5LmlkKTsKIAogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxl
Y3RSb3dzKCdjb21taXRfb3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQuaWQsICdvd25l
ZCc6IHdlYmtpdENvbW1pdC5pZH0sIHsnc29ydEJ5JzogJ293bmVyJ30pLAogICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdF9vd25lcnNoaXBzJywgeydvd25lcic6IG9zeENvbW1p
dC5pZCwgJ293bmVkJzoganNjQ29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAg
ICAgICAgICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtp
dFJlcG9zaXRvcnkuaWR9KV0pOwogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFswXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JX
ZWJLaXRDb21taXQgPSByZXN1bHRbMF1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
b3duZXJDb21taXRGb3JXZWJLaXRDb21taXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0Lm5v
dFN0cmljdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qg
b3duZXJDb21taXRGb3JKU0NDb21taXQgPSAgcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0LCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5ub3RTdHJpY3RFcXVhbChvd25lckNvbW1pdEZvckpTQ0NvbW1pdCwgbnVsbCk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbMl0ubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7
CiAgICAgfSkKIApAQCAtNDQ4LDcgKzQ0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
U2xhdmVGb3JSZXBvcnQobXVsdGlwbGVTeXN0ZW1WZXJzaW9uQ29tbWl0c1dpdGhPd25lZENvbW1p
dHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgbXVsdGlwbGVTeXN0ZW1WZXJzaW9u
Q29tbWl0c1dpdGhPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
ICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29tbWl0cycs
IHsncmV2aXNpb24nOiAnU2llcnJhMTZEMzInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0
Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnU2llcnJhMTZDNjcnfSksCiAgICAgICAgICAg
ICAgICAgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsnbWVzc2FnZSc6ICdXZWJLaXQgQ29tbWl0
J30pLApAQCAtNDU4LDQ5ICs0NTgsNDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGIuc2Vs
ZWN0Um93cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogIldlYktpdCJ9KSwKICAgICAgICAgICAg
ICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnSmF2YVNjcmlwdENv
cmUnfSldKQogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHQubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHQubGVuZ3RoLCA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsw
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MCA9IHJlc3VsdFswXVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21taXQwLCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3N4
Q29tbWl0MSA9IHJlc3VsdFsxXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvc3hD
b21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvc3hDb21t
aXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0ID0gcmVzdWx0WzJdWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKHdlYmtpdENvbW1pdCwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwod2Via2l0Q29tbWl0LCBudWxsKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QganNjQ29t
bWl0MCA9IHJlc3VsdFszXVswXTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChqc2NDb21t
aXQwLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChqc2NDb21taXQw
LCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QganNjQ29tbWl0MSA9IHJlc3VsdFs0XVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5u
b3RTdHJpY3RFcXVhbChqc2NDb21taXQxLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFs1XS5sZW5ndGgsIDEpCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WzVdLmxlbmd0aCwgMSkKICAgICAgICAgICAgIGNvbnN0IG9zeFJlcG9zaXRvcnkgPSBy
ZXN1bHRbNV1bMF07Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3N4UmVwb3NpdG9yeSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4UmVwb3NpdG9yeS5vd25lciwg
bnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbNl0ubGVuZ3RoLCAxKQor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs2XS5sZW5ndGgsIDEpCiAgICAg
ICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0WzZdWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9zaXRvcnkuaWQp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkub3duZXIs
IG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wzdd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WzddLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBqc2NSZXBvc2l0b3J5ID0gcmVzdWx0WzddWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkub3duZXIsIG9zeFJlcG9z
aXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnku
b3duZXIsIG9zeFJlcG9zaXRvcnkuaWQpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxLnJlcG9zaXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0
b3J5LmlkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnks
IGpzY1JlcG9zaXRvcnkuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY0NvbW1pdDEu
cmVwb3NpdG9yeSwganNjUmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MC5yZXBvc2l0b3J5LCBvc3hSZXBvc2l0
b3J5LmlkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxLnJlcG9z
aXRvcnksIG9zeFJlcG9zaXRvcnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHdlYmtpdENvbW1pdC5yZXBvc2l0b3J5LCB3ZWJraXRSZXBvc2l0b3J5LmlkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NDb21taXQwLnJlcG9zaXRvcnksIGpzY1JlcG9zaXRv
cnkuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY0NvbW1pdDEucmVwb3Np
dG9yeSwganNjUmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4UmVwb3NpdG9yeS5vd25lciwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwod2Via2l0UmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5pZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5vd25lciwgb3N4UmVwb3NpdG9yeS5p
ZCk7CiAKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0Um93cygnY29t
bWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MC5pZCwgJ293bmVkJzogd2Via2l0
Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2Vs
ZWN0Um93cygnY29tbWl0X293bmVyc2hpcHMnLCB7J293bmVyJzogb3N4Q29tbWl0MS5pZCwgJ293
bmVkJzogd2Via2l0Q29tbWl0LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCkBAIC01MDgsMjUg
KzUwOCwyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1
ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRf
b3duZXJzaGlwcycsIHsnb3duZXInOiBvc3hDb21taXQxLmlkLCAnb3duZWQnOiBqc2NDb21taXQx
LmlkfSwgeydzb3J0QnknOiAnb3duZXInfSksCiAgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93
cygnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IHdlYmtpdFJlcG9zaXRvcnkuaWR9KV0pOwogICAg
ICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHQubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQubGVu
Z3RoLCA1KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFswXS5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRDb21taXQwID0gcmVzdWx0WzBd
WzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9yV2ViS2l0Q29t
bWl0MCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21t
aXRGb3JXZWJLaXRDb21taXQwLCBudWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsxXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsxXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3duZXJDb21taXRGb3JXZWJLaXRD
b21taXQxID0gcmVzdWx0WzFdWzBdOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVy
Q29tbWl0Rm9yV2ViS2l0Q29tbWl0MSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQubm90U3Ry
aWN0RXF1YWwob3duZXJDb21taXRGb3JXZWJLaXRDb21taXQxLCBudWxsKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3VsdFsyXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgb3du
ZXJDb21taXRGb3JKU0NDb21taXQwID0gcmVzdWx0WzJdWzBdOwotICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MCwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQwLCBudWxsKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFszXS5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
Y29uc3Qgb3duZXJDb21taXRGb3JKU0NDb21taXQxID0gcmVzdWx0WzNdWzBdOwotICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKG93bmVyQ29tbWl0Rm9ySlNDQ29tbWl0MSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwob3duZXJDb21taXRGb3JKU0NDb21taXQxLCBu
dWxsKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFs0XS5sZW5ndGgsIDEpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtNTQ4LDE4ICs1NDgsMTggQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzeXN0ZW1WZXJzaW9uQ29tbWl0V2l0aEVtcHR5T3du
ZWRDb21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN5c3RlbVZlcnNpb25D
b21taXRXaXRoRW1wdHlPd25lZENvbW1pdHMpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAg
ICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2Vs
ZWN0QWxsKCdyZXBvc2l0b3JpZXMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXRfb3duZXJzaGlwcycs
ICdvd25lcicpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAg
bGV0IGNvbW1pdHMgPSByZXN1bHRbMF07CiAgICAgICAgICAgICBsZXQgcmVwb3NpdG9yaWVzID0g
cmVzdWx0WzFdOwogICAgICAgICAgICAgbGV0IGNvbW1pdF9vd25lcnNoaXBzID0gcmVzdWx0WzJd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmllc1swXS5pZCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yaWVzWzBdLm5hbWUsICdPU1gnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRfb3duZXJzaGlwcy5sZW5ndGgsIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnJlcG9zaXRvcnksIHJlcG9zaXRvcmll
c1swXS5pZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzWzBd
Lm5hbWUsICdPU1gnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRfb3du
ZXJzaGlwcy5sZW5ndGgsIDApOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4
Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3lzdGVtVmVy
c2lvbkNvbW1pdEFuZE93bmVkQ29tbWl0V2l0aFRpbWVzdGFtcCkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBzeXN0ZW1WZXJzaW9uQ29tbWl0QW5kT3duZWRDb21taXRXaXRoVGltZXN0
YW1wKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5U
aW1lc3RhbXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5UaW1lc3RhbXAnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiB9KTsKQEAgLTY5OSwxMSArNjk5LDExIEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
YXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOwogICAgICAgICBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXRzKTsKICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LycpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgY29uc3QgY29tbWl0
cyA9IHJlc3VsdFsnY29tbWl0cyddOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5n
dGgsIDIpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS50ZXN0YWJpbGl0eSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3RhYmlsaXR5LCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgbnVsbCk7CiAKICAg
ICAgICAgcmV0dXJuIGNvbW1pdHM7CiAgICAgfQpAQCAtNzEyLDcgKzcxMiw3IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsK
ICAgICB7CiAgICAgICAgIGF3YWl0IGluaXRpYWxSZXBvcnRDb21taXRzKCk7CiAgICAgICAgIGxl
dCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIGNvbW1pdHNVcGRhdGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgZXhwZWN0ZWRTdGF0dXMpOwogICAgICAgICByZXN1bHQgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
Jyk7CiAgICAgICAgIHJldHVybiByZXN1bHRbJ2NvbW1pdHMnXTsKICAgICB9CkBAIC03MjAsOSAr
NzIwLDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNl
IiwgZnVuY3Rpb24gKCkgewogICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoRXhwZWN0ZWRGYWls
dXJlKGNvbW1pdHNVcGRhdGUsIGV4cGVjdGVkRmFpbHVyZU5hbWUpCiAgICAgewogICAgICAgICBj
b25zdCBjb21taXRzID0gYXdhaXQgc2V0VXBUZXN0c1dpdGhFeHBlY3RlZFN0YXR1cyhjb21taXRz
VXBkYXRlLCBleHBlY3RlZEZhaWx1cmVOYW1lKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxp
dHksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLnRlc3RhYmlsaXR5LCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0udGVzdGFiaWxpdHksIG51bGwp
OwogICAgIH0KIAogICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoICJNaXNzaW5nUmV2aXNpb24iIGlm
IGNvbW1pdCB1cGRhdGUgZG9lcyBub3QgaGF2ZSBjb21taXQgcmV2aXNpb24gc3BlY2lmaWVkJywg
YXN5bmMgKCkgPT4gewpAQCAtNzQ2LDMyICs3NDYsMzIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBhd2Fp
dCBpbml0aWFsUmVwb3J0Q29tbWl0cygpOwogCiAgICAgICAgIGxldCBjb21taXRzID0gYXdhaXQg
ZGF0YWJhc2Uuc2VsZWN0QWxsKCdjb21taXRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdLnJlcG9ydGVkLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV0u
cmVwb3J0ZWQsIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5y
ZXBvcnRlZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnJl
cG9ydGVkLCB0cnVlKTsKIAogICAgICAgICBhd2FpdCBkYXRhYmFzZS5xdWVyeSgnVVBEQVRFIGNv
bW1pdHMgU0VUIGNvbW1pdF9yZXBvcnRlZD1mYWxzZScpOwogICAgICAgICBsZXQgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0
cy8nLCBjb21taXRzVXBkYXRlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CiAKICAgICAgICAgY29tbWl0cyA9IGF3YWl0IGRhdGFiYXNlLnNlbGVjdEFsbCgnY29t
bWl0cycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2Up
OwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5yZXBvcnRlZCwgZmFsc2UpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5yZXBvcnRlZCwgZmFsc2UpOwogICAg
IH0pOwogCiAgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHVwZGF0ZSBjb21taXRzIG1lc3NhZ2Us
IHRpbWUsIG9yZGVyLCBhdXRob3IgYW5kIHByZXZpb3VzIGNvbW1pdCIsIGFzeW5jICgpID0+IHsK
ICAgICAgICAgY29uc3QgY29tbWl0cyA9IGF3YWl0IHNldFVwVGVzdHNXaXRoRXhwZWN0ZWRTdGF0
dXMoY29tbWl0c1VwZGF0ZSwgJ09LJyk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF0udGVzdGFiaWxpdHks
ICdCcmVha3MgYnVpbGRzJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdLnRlc3Rh
YmlsaXR5LCAnQ3Jhc2hlcyBXZWJLaXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MF0ubWVzc2FnZSwgJ2Fub3RoZXIgbWVzc2FnZScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1sxXS5tZXNzYWdlLCAnYW5vdGhlciBtZXNzYWdlJyk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdLmF1dGhvck5hbWUsICdDaHJpcyBEdW1leicpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1sxXS5hdXRob3JOYW1lLCAnWmFsYW4gQnVqdGFzJyk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRzWzBdLm9yZGVyLCAyMTA5NDgpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0c1sxXS5vcmRlciwgMjEwOTQ5KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzFdLnRpbWUsIDE0ODQ4ODYyMzA2NDUpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sx
XS5wcmV2aW91c0NvbW1pdCwgY29tbWl0c1swXS5pZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRzWzBdLnRlc3RhYmlsaXR5LCAnQnJlYWtzIGJ1aWxkcycpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0c1sxXS50ZXN0YWJpbGl0eSwgJ0NyYXNoZXMgV2ViS2l0Jyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdhbm90aGVyIG1lc3Nh
Z2UnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwgJ2Fu
b3RoZXIgbWVzc2FnZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXS5h
dXRob3JOYW1lLCAnQ2hyaXMgRHVtZXonKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHNbMV0uYXV0aG9yTmFtZSwgJ1phbGFuIEJ1anRhcycpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQoY29tbWl0c1swXS5vcmRlciksIDIxMDk0OCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChjb21taXRzWzFdLm9yZGVyKSwgMjEwOTQ5KTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF0udGltZSwgMTQ4NDg4NDM1NDU3Nyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzFdLnRpbWUsIDE0ODQ4ODYyMzA2
NDUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1sxXS5wcmV2aW91c0NvbW1p
dCwgY29tbWl0c1swXS5pZCk7CiAgICAgfSk7CiB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1yZXBvcnQtdGVzdHMuanMKaW5kZXggZDlhMmNlZDY3MTgzODBmYWI5ZTBjZDViMDU3MDQ3
MjE0YmQxMzRmYS4uNWM0NDVmZWZjMGQ3MjA0YzBiYjVhMTZlMDJjZjYxMzcyZmYzZmI2OSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC10ZXN0cy5qcwpAQCAtMTAxLDcgKzEwMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dCIsIGZ1bmN0aW9uICgpIHsKIAogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gYnVp
bGRlciBuYW1lIGlzIG1pc3NpbmciLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAiMjAx
My0wMi0yOFQxMDoxMjowMy4zODgzMDQifV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJOYW1l
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
TWlzc2luZ0J1aWxkZXJOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDksMTgg
KzEwOSwxOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IHJldHVybiBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQifV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWls
ZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdNaXNzaW5nQnVpbGRUaW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgaXQo
InNob3VsZCByZWplY3Qgd2hlbiB0aGVyZSBhcmUgbm8gYnVpbGRlcnMiLCAoKSA9PiB7CiAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbZW1wdHlSZXBvcnQoKV0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5kJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJO
b3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWls
dXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9y
dHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTM0LDU4ICsxMzQsNTggQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7fX1dOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck5vdEZvdW5k
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwg
ZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5z
J10sIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ0J1aWxkZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxl
bmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3J0cy5sZW5ndGgs
IDApOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHJlcG9y
dCB3aXRoICJNaXNtYXRjaGluZ0NvbW1pdFRpbWUiIGlmIHRpbWUgZGlmZmVyZW5jZSBpcyBsYXJn
ZXIgdGhhbiAxIHNlY29uZCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRl
ckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKTsKICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdp
dE1pc21hdGNoaW5nQ29tbWl0VGltZSgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1
cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nl
c3NlZFJ1bnMnXSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1
cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CiAKICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0p
OwotICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzbWF0Y2hpbmdD
b21taXRUaW1lJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3Jl
ZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5z
J10sIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
TWlzbWF0Y2hpbmdDb21taXRUaW1lJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3Vs
ZCBub3QgcmVqZWN0IHJlcG9ydCBpZiB0aGUgY29tbWl0IHRpbWUgZGlmZmVyZW5jZSBpcyB3aXRo
aW4gMSBzZWNvbmQiJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9y
UmVwb3J0KGVtcHR5UmVwb3J0KCkpOwogICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0aE9u
ZVNlY29uZENvbW1pdFRpbWVEaWZmZXJlbmNlKCldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
ZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
cHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
ZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKIAogICAgICAgICByZXNwb25zZSA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9y
dCgpXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7
CiAgICAgfSk7CiAKICAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBi
dWlsZGVyIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkQnVpbGRlckZvclJlcG9ydChlbXB0
eVJlcG9ydCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAg
ICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlS
ZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJl
cG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250
ZW50WydidWlsZGVyUGFzc3dvcmQnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250
ZW50Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENv
bnRlbnQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzdG9yZWRDb250ZW50
LCBzdWJtaXR0ZWRDb250ZW50KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE5NywxOCAr
MTk3LDE4IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHJlcG9ydCkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W3JlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10s
IDEpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J3JlcG9ydHMnKTsKICAgICAgICAgfSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250
ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOwogCiAgICAgICAgICAgICBk
ZWxldGUgcmVwb3J0WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0
Wyd0ZXN0cyddOwogICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTYsMTkgKzIxNiwxOSBAQCBkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9y
dChlbXB0eVNsYXZlUmVwb3J0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNsYXZl
UmVwb3J0KCldKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucydd
LCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxs
KCdyZXBvcnRzJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlcG9ydHMpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVk
Q29udGVudCA9IGVtcHR5U2xhdmVSZXBvcnQoKTsKICAgICAgICAgICAgIGNvbnN0IHN0b3JlZENv
bnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CiAKICAgICAgICAgICAg
IGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3b3JkJ107CiAgICAgICAgICAgICBk
ZWxldGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKICAgICAgICAgICAgIGRlbGV0ZSBzdG9y
ZWRDb250ZW50Wyd0ZXN0cyddOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9yZWRD
b250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0yMzgsOSArMjM4LDkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKICAgICAgICAg
fSkudGhlbigocmVwb3J0cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvcnRzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBv
cnRzWzBdWydjb250ZW50J10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENvbnRl
bnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVt
cHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOwogICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1aWxk
ZXJQYXNzd29yZCcgaW4gc3RvcmVkQ29udGVudCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTI1MSw4ICsyNTEsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRfc2xhdmVzJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHNsYXZlcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlcy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNsYXZlc1swXVsnbmFtZSddLCBlbXB0eVJl
cG9ydCgpWydzbGF2ZU5hbWUnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xh
dmVzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2xhdmVzWzBd
WyduYW1lJ10sIGVtcHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTI2Miw4ICsyNjIsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRlcnMnKTsKICAgICAgICAg
fSkudGhlbigoYnVpbGRlcnMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVy
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzWzBdWyduYW1l
J10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yNzMsNyArMjczLDcgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsK
ICAgICAgICAgfSkudGhlbigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzWzBdWyd0YWcnXSwgMTIzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZHNbMF1bJ3RhZyddLCAnMTIzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODMs
NyArMjgzLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGRlbGV0ZSBy
ZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBp
dCgic2hvdWxkIHJlamVjdCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIg
YW5kIGJ1aWxkIHRhZyB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLCBhc3luYyAoKSA9PiB7CkBAIC0y
OTEsNyArMjkxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICBjb25zdCByZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICByZXBvcnQuYnVpbGRO
dW1iZXIgPSAnNDU2JzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFnTWlzbWF0
Y2gnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1
aWxkZXJOdW1iZXJUYWdNaXNtYXRjaCcpOwogICAgIH0pCiAKICAgICBpdCgic2hvdWxkIGFjY2Vw
dCBpZiBhIHJlcG9ydCBzcGVjaWZpZXMgYm90aCBidWlsZCBudW1iZXIgYW5kIGJ1aWxkIHRhZyB3
aXRoIGlkZW50aWNhbCB2YWx1ZSIsIGFzeW5jICgpID0+IHsKQEAgLTI5OSw3ICsyOTksNyBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9y
dCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIHJlcG9ydC5idWlsZE51bWJlciA9IHJlcG9ydC5i
dWlsZFRhZzsKICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICB9KQogCiAgICAgaXQoInNob3Vs
ZCBhZGQgdGhlIHBsYXRmb3JtIiwgKCkgPT4gewpAQCAtMzA4LDggKzMwOCw4IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncGxhdGZv
cm1zJyk7CiAgICAgICAgIH0pLnRoZW4oKHBsYXRmb3JtcykgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0g
cmVzdWx0WzBdOwogICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsxXTsKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9ucyA9IHJlc3VsdFsyXTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29y
dCgpLCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dl
YktpdCcsICdtYWNPUyddKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21t
aXRzWzFdWydpZCddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxh
dGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1p
dF9idWlsZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRp
b25zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21t
aXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydidWls
ZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21t
aXRzUmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CiAKICAgICAgICAgICAgIGxldCByZXBv
c2l0b3J5SWRUb05hbWUgPSB7fTsKICAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2Yg
cmVwb3NpdG9yaWVzKQpAQCAtMzQ0LDkgKzM0NCw5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRzKQog
ICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRU
b05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKIAotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24n
XSwgJzEwLjguMiAxMkM2MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlO
YW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCdd
Wyd0aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIgMTJD
NjAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2
aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsn
dGltZSddLnRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDItMDYg
MDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2MCwx
NiArMzYwLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1
aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTM4MiwxNiArMzgyLDE2IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBv
cnQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9KS50aGVuKChidWlsZHMpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25k
UmVwb3J0XSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOwogICAgICAgICB9
KS50aGVuKChidWlsZHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZHMubGVuZ3RoLCAy
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTQxNSwxNyArNDE1LDE3IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJG
b3JSZXBvcnQoZmlyc3RSZXBvcnQpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9y
dF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKICAgICAgICAgfSkudGhl
bigoYnVpbGRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW3NlY29uZFJlcG9ydF0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21hdGNo
aW5nQ29tbWl0UmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1pdFJldmlzaW9uJyk7CiAgICAgICAgICAg
ICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE0MTk3NycpID49IDAp
OwogICAgICAgICAgICAgYXNzZXJ0KEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9mKCcx
NTAwMDAnKSA+PSAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVy
ZVN0b3JlZCddLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJv
Y2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTQ4Nyw4ICs0ODcsOCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgZnVuY3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVw
b3J0KQogICAgIHsKICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFn
Z3JlZ2F0b3JzV2l0aFJlc3BvbnNlKHJlcG9ydCkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZh
bHNlKTsKICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgICAgfSk7CiAgICAgfQpA
QCAtNTExLDcgKzUxMSw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgcmV0dXJuIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJl
cG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKICAgICAg
ICAgfSkudGhlbigodGVzdHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVz
dHMubWFwKChyb3cpID0+IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RzLm1hcCgocm93KSA9PiB7IHJldHVybiBy
b3dbJ25hbWUnXTsgfSkuc29ydCgpLAogICAgICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScsICdE
dW1teUJlbmNobWFyaycsICdEdW1teVBhZ2VMb2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1RyYXZl
cnNlTm9kZXMnLCAnYXBwbGUuY29tJywgJ3dlYmtpdC5vcmcnXSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtNTI2LDE0ICs1MjYsMTQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3Rf
bmFtZSddXSA9IG5ldyBBcnJheTsKICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1ty
b3dbJ3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVnYXRv
cl9uYW1lJ11dKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snQ1NTJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydU
aW1lJywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBb
WydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlQYWdlTG9hZGluZyddLCBbWydUaW1lJywgJ0FyaXRobWV0
aWMnXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1sn
TW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxs
XV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snYXBw
bGUuY29tJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NTUydd
LCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dGVzdE5hbWVUb01ldHJpY3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0aG1ldGljJ10s
IFsnVGltZScsICdHZW9tZXRyaWMnXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRHVtbXlCZW5jaG1hcmsnXSwgW1snVGltZScsICdBcml0
aG1ldGljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11dKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ01v
ZGlmeU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snVHJhdmVyc2VOb2RlcyddLCBbWydUaW1lJywg
bnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01l
dHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1snVGlt
ZScsIG51bGxdXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC01NDIsNyArNTQyLDcgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJp
Y3MsIHRlc3RfY29uZmlndXJhdGlvbnMKICAgICAgICAgICAgIFdIRVJFIHRlc3RfaWQgPSBtZXRy
aWNfdGVzdCBBTkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYwogICAgICAgICAgICAgQU5EIHRl
c3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBtZXRyaWNOYW1l
XSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dC5yb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdC5yb3dzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yb3dz
WzBdOwogICAgICAgICAgICAgfSk7CiAgICAgfQpAQCAtNTY1LDIwICs1NjUsMjAgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQp
ID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBj
b25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
dWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
dWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDAs
IGdyb3VwOiBudWxsLCB2YWx1ZTogNTAwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTEwLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6
IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTIwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAg
ICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTMw
LCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOwogICAgICAgICAgICAgY29uc3Qgc3VtID0gNTAwICsg
NTEwICsgNTIwICsgNTMwOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNo
ZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAqIDUy
MCArIDUzMCAqIDUzMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFu
X2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEw
ICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKICAgICAgICAgICAgIHJldHVybiBmZXRj
aFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOwogICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAg
ICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
ICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTog
MTAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwg
b3JkZXI6IDIsIGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKQEAg
LTYwMCw5ICs2MDAsOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlOwogICAgICAgICAgICAgICAgIHNxdWFyZVN1bSAr
PSB2YWx1ZSAqIHZhbHVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3Vs
dC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVu
WydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTYxMywxNSArNjEzLDE1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CiAgICAgICAgICAgICBjb25z
dCBydW5JZCA9IHJlc3VsdC5ydW5bJ2lkJ107CiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFZh
bHVlcyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAgKyAxMTApIC8gMiwgKDUyMCArIDEyMCkgLyAy
LCAoNTMwICsgMTMwKSAvIDJdOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQu
aXRlcmF0aW9ucywgWworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQu
aXRlcmF0aW9ucywgWwogICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3Jv
dXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1swXSwgcmVsYXRpdmVfdGltZTogbnVsbH0s
CiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFs
dWU6IGV4cGVjdGVkVmFsdWVzWzFdLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAg
ICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRW
YWx1ZXNbMl0sIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1szXSwgcmVs
YXRpdmVfdGltZTogbnVsbH1dKTsKICAgICAgICAgICAgIGNvbnN0IHN1bSA9IGV4cGVjdGVkVmFs
dWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0s
IDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyBy
ZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
c3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVf
c3VtX2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkg
eyByZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5s
ZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10s
IHN1bSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzcXVhcmVfc3VtX2Nh
Y2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1
cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNjQyLDEwICs2NDIsMTAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRW
YWx1ZTsKICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7cnVuOiBydW5J
ZCwgb3JkZXI6IGksIGdyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwgdmFsdWU6IGV4cGVjdGVkVmFs
dWUsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5p
dGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2Fj
aGUnXSwgc3VtKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVz
dWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUnXSwg
c3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgc3F1YXJlU3VtKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTcwMywxMCArNzAz
LDEwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICogZXhwZWN0ZWRWYWx1ZTsKICAgICAgICAgICAg
IGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6IE1h
dGguZmxvb3IoaSAvIDIpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTogbnVs
bH0pOwogICAgICAgICB9Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlv
bnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5f
Y2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0
aW9ucy5sZW5ndGgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydzdW1fY2FjaGUn
XSwgc3VtKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNo
ZSddLCBzcXVhcmVTdW0pOwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3Rz
IHdpdGhvdXQgYW55IG1ldHJpYyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBA
IC03MzcsMjcgKzczNywyNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGNvbnN0IGJlbmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJh
dGlvbnNGb3JNZXRyaWMoJ0R1bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQg
cnVuID0gYmVuY2htYXJrUmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNo
bWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDog
MCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1
biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRp
dmVfdGltZTogbnVsbH0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3Vs
dC5pdGVyYXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAx
MykgKyAyMykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91
cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDEx
KSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEs
IGdyb3VwOiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVs
bH0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVy
YXRpb25zWzJdLCB7cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAy
MykgLyAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91
cDogMSwgdmFsdWU6ICgoNCArIDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsK
IAogICAgICAgICBjb25zdCBzdW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2Uo
KHRvdGFsLCByb3cpID0+IHRvdGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1
YXJlU3VtID0gYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9
PiB0b3RhbCArIHJvdy52YWx1ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10s
IHNxdWFyZVN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQu
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YmVuY2htYXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFy
ZVN1bSk7CiAKICAgICAgICAgY29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RS
dW5JdGVyYXRpb25zRm9yTWV0cmljKCdBU3ViVGVzdCcsICdUaW1lJyk7CiAgICAgICAgIHJ1biA9
IHNvbWVUZXN0UmVzdWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzb21lVGVz
dFJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc29t
ZVRlc3RSZXN1bHQuaXRlcmF0aW9ucywgWwogICAgICAgICAgICAge3J1biwgb3JkZXI6IDAsIGdy
b3VwOiBudWxsLCB2YWx1ZTogMzEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAogICAgICAgICAgICAg
e3J1biwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogMzIsIHJlbGF0aXZlX3RpbWU6IG51
bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVzdWx0LnJ1
blsnbWVhbl9jYWNoZSddLCAzMS41KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVz
dWx0LnJ1blsnc3VtX2NhY2hlJ10sIDYzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0
UmVzdWx0LnJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAzMSAqIDMxICsgMzIgKiAzMik7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5fY2FjaGUnXSwg
MzEuNSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1
bV9jYWNoZSddLCA2Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3Vs
dC5ydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMzEgKiAzMSArIDMyICogMzIpOwogICAgIH0pOwog
CiAgICAgaXQoInNob3VsZCBza2lwIHN1YnRlc3RzIG1pc3NpbmcgdGhlIG1hdGNoaW5nIG1ldHJp
YyBkdXJpbmcgYWdncmVnYXRpb24iLCBhc3luYyAoKSA9PiB7CkBAIC03OTIsMjcgKzc5MiwyNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IGJl
bmNobWFya1Jlc3VsdCA9IGF3YWl0IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1
bW15QmVuY2htYXJrJywgJ1RpbWUnKTsKIAogICAgICAgICBsZXQgcnVuID0gYmVuY2htYXJrUmVz
dWx0LnJ1bi5pZDsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRp
b25zLmxlbmd0aCwgNCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVzdWx0
Lml0ZXJhdGlvbnNbMF0sIHtydW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDEx
KSArIDIxKSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3Vw
OiAwLCB2YWx1ZTogKCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOwot
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7
cnVuLCBvcmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxh
dGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgoNCAr
IDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCwgNCk7CisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0Lml0ZXJhdGlvbnNbMF0sIHty
dW4sIG9yZGVyOiAwLCBncm91cDogMCwgdmFsdWU6ICgoMSArIDExKSArIDIxKSAvIDIsIHJlbGF0
aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZW5jaG1h
cmtSZXN1bHQuaXRlcmF0aW9uc1sxXSwge3J1biwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2YWx1ZTog
KCgyICsgMTIpICsgMjIpIC8gMiwgcmVsYXRpdmVfdGltZTogbnVsbH0pOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGJlbmNobWFya1Jlc3VsdC5pdGVyYXRpb25zWzJdLCB7cnVuLCBv
cmRlcjogMiwgZ3JvdXA6IDEsIHZhbHVlOiAoKDMgKyAxMykgKyAyMykgLyAyLCByZWxhdGl2ZV90
aW1lOiBudWxsfSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYmVuY2htYXJrUmVz
dWx0Lml0ZXJhdGlvbnNbM10sIHtydW4sIG9yZGVyOiAzLCBncm91cDogMSwgdmFsdWU6ICgoNCAr
IDE0KSArIDI0KSAvIDIsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKIAogICAgICAgICBjb25zdCBz
dW0gPSBiZW5jaG1hcmtSZXN1bHQuaXRlcmF0aW9ucy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRv
dGFsICsgcm93LnZhbHVlLCAwKTsKICAgICAgICAgY29uc3Qgc3F1YXJlU3VtID0gYmVuY2htYXJr
UmVzdWx0Lml0ZXJhdGlvbnMucmVkdWNlKCh0b3RhbCwgcm93KSA9PiB0b3RhbCArIHJvdy52YWx1
ZSAqIHJvdy52YWx1ZSwgMCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChiZW5jaG1hcmtSZXN1bHQu
cnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIDQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYmVuY2ht
YXJrUmVzdWx0LnJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChi
ZW5jaG1hcmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1hcmtSZXN1bHQucnVuWydtZWFuX2NhY2hlJ10s
IHN1bSAvIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYmVuY2htYXJrUmVzdWx0LnJ1
blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChiZW5jaG1h
cmtSZXN1bHQucnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CiAKICAgICAgICAg
Y29uc3Qgc29tZVRlc3RSZXN1bHQgPSBhd2FpdCBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0
cmljKCdBdXhpbGlhcnlSZXN1bHQnLCAnQWxsb2NhdGlvbnMnKTsKICAgICAgICAgcnVuID0gc29t
ZVRlc3RSZXN1bHQucnVuLmlkOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNvbWVUZXN0UmVz
dWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzb21lVGVz
dFJlc3VsdC5pdGVyYXRpb25zLCBbCiAgICAgICAgICAgICB7cnVuLCBvcmRlcjogMCwgZ3JvdXA6
IG51bGwsIHZhbHVlOiAzMSArIDQxLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKICAgICAgICAgICAg
IHtydW4sIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDMyICsgNDIsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9LAogICAgICAgICBdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0UmVz
dWx0LnJ1blsnbWVhbl9jYWNoZSddLCAoMzEgKyA0MSArIDMyICsgNDIpIC8gMik7Ci0gICAgICAg
IGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3N1bV9jYWNoZSddLCAzMSArIDQxICsg
MzIgKyA0Mik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgTWF0aC5wb3coMzEgKyA0MSwgMikgKyBNYXRoLnBvdygzMiArIDQyLCAy
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzb21lVGVzdFJlc3VsdC5ydW5bJ21lYW5f
Y2FjaGUnXSwgKDMxICsgNDEgKyAzMiArIDQyKSAvIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzdW1fY2FjaGUnXSwgMzEgKyA0MSArIDMyICsgNDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc29tZVRlc3RSZXN1bHQucnVuWydzcXVhcmVf
c3VtX2NhY2hlJ10sIE1hdGgucG93KDMxICsgNDEsIDIpICsgTWF0aC5wb3coMzIgKyA0MiwgMikp
OwogICAgIH0pOwogCiAgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2hlbiB0aGVyZSBh
cmUgbW9yZSB0aGFuIG9uZSBub24tbWF0Y2hpbmcgYWdncmVnYXRvcnMgaW4gYSBzdWJ0ZXN0Iiwg
YXN5bmMgKCkgPT4gewpAQCAtODQ4LDcgKzg0OCw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH19OwogCiAgICAgICAgIGNvbnN0IHJlc3BvbnNl
ID0gYXdhaXQgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnNXaXRoUmVzcG9u
c2UocmVwb3J0V2l0aEFtYmlnaW91c0FnZ3JlZ2F0b3JzKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3Qn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ05vTWF0
Y2hpbmdBZ2dyZWdhdGVkVmFsdWVJblN1YnRlc3QnKTsKICAgICB9KTsKIAogICAgIGZ1bmN0aW9u
IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKQpAQCAtODkyLDE2ICs4OTIsMTYgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gcmVwb3J0QWZ0
ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCd0ZXN0cycpOwogICAgICAgICB9KS50aGVuKCh0ZXN0cykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGxldCBuZXdSZXBvcnQg
PSByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lKCk7CiAgICAgICAgICAgICBuZXdSZXBvcnQuYnVp
bGRUYWcgPSAiMTI1IjsKICAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZFRpbWUgPSAiMjAxMy0w
Mi0yOFQxMjoxNzoyNC4xIjsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbbmV3UmVwb3J0XSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtOTMwLDE3ICs5MzAsMTcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rl
c3QxJywgJ0NvbWJpbmVkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ21lYW5fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydz
dW1fY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3Vt
X2NhY2hlJ10sIDkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnaXRlcmF0
aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1
blsnbWVhbl9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5b
J3N1bV9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5bJ3Nx
dWFyZV9zdW1fY2FjaGUnXSwgOSk7CiAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRl
cmF0aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKICAgICAgICAgfSkudGhlbigo
cmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtOTYyLDEzICs5NjIsMTMgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNG
b3JNZXRyaWMoJ3Rlc3QnLCAnRnJhbWVSYXRlJyk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewogICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDQpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkpOwog
CiAgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKICAgICAgICAgICAgICAgICB7cnVuOiBy
dW5JZCwgb3JkZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTogNCwgcmVsYXRpdmVfdGltZTogMH0s
CiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFs
dWU6IDUsIHJlbGF0aXZlX3RpbWU6IDEwMH0sCiAgICAgICAgICAgICAgICAge3J1bjogcnVuSWQs
IG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDMsIHJlbGF0aXZlX3RpbWU6IDIwNX1dKTsK
QEAgLTEwMDYsNyArMTAwNiw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0c1VwZGF0aW5nRGlm
ZmVyZW50VGVzdHNbMF0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdE
aWZmZXJlbnRUZXN0c1swXV0pOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKICAgICAg
ICAgICAgIHJldHVybiBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKICAgICAgICAg
fSkudGhlbigob3JpZ2luYWxDb25maWcpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5n
RGlmZmVyZW50VGVzdHNbMl1dKS50aGVuKCgpID0+IHsKQEAgLTEwMjMsMTYgKzEwMjMsMTYgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gYWRk
QnVpbGRlckZvclJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVz
dENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICB9KS50aGVuKChvcmlnaW5hbENvbmZp
ZykgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXV0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVz
dENvbmZpZygndGVzdDEnLCAnVGltZScpOwogICAgICAgICAgICAgfSkudGhlbigoY29uZmlnKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19s
YXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgICAgICBhc3NlcnQo
Y29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19s
YXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29uZmln
X3J1bnNfbGFzdF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVk
J10pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTA2OSw3ICsx
MDY5LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dy
ZWdhdG9yc1dpdGhSZXNwb25zZShyZXBvcnRXaXRoQnVpbGRSZXF1ZXN0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDc3LDIyICsx
MDc3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
cmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdn
cmVnYXRvcnNXaXRoUmVzcG9uc2UocmVwb3J0V2l0aEJ1aWxkUmVxdWVzdCk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RSb3dzKCdidWlsZHMnLCB7dGFnOiAnMTIzJ30pOwogICAgICAgICB9KS50aGVu
KChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxh
dGZvcm1zJywge25hbWU6ICdNb3VudGFpbiBMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1
bHRzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBbYW5vdGhlclJlcG9ydFdpdGhTYW1lQnVpbGRSZXF1ZXN0XSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnRmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVx
dWVzdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RS
b3dzKCdidWlsZHMnLCB7dGFnOiAnMTI0J30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0Um93cygncGxhdGZvcm1zJywge25h
bWU6ICdMaW9uJ30pOwogICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdHMubGVuZ3RoLCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXRlc3Qt
Z3JvdXBzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVz
dC1ncm91cHMuanMKaW5kZXggYzAxOWE0MmRiMTcyNDEyMTkzMjU4ODI1MGViOTM1OTAxMTFkOTRm
OS4uMTYyOWQ0YmIwYWYxZmY0YjJkNjkzYzFjYTc1ZGY3MDdlODA4YmJjYSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91cHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdGVzdC1ncm91
cHMuanMKQEAgLTExLDM5ICsxMSwzOSBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1
bmN0aW9uICgpIHsKICAgICBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90
aWZpY2F0aW9uJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGdpdmUgYW4gZW1wdHkgbGlz
dCBpZiB0aGVyZSBpcyBub3QgZXhpc3RpbmcgdGVzdCBncm91cCBhdCBhbGwnLCBhc3luYyAoKSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmljYXRpb24nKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb250ZW50LnN0YXR1cywgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudGVzdEdyb3VwcywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmJ1aWxkUmVxdWVzdHMsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRTZXRzLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnVwbG9hZGVkRmlsZXMs
IFtdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgaW5jbHVkZSBhIHRl
c3QgZ3JvdXAgd2l0aCAiY2FuY2VsZWQiIHN0YXRlIGluIGF0IGxlYXN0IG9uZSBidWlsZCByZXF1
ZXN0JywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0Rh
dGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29t
cGxldGVkJywgJ2NhbmNlbGVkJ10pOwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1m
b3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0
dXMsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91
cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVl
c3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0
cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJl
cXVlc3RzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQu
Y29tbWl0U2V0cywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250
ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29u
dGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgbGlzdCBhbGwgdGVzdCBncm91cHMgd2l0aCBwZW5kaW5nIG5vdGlmaWNhdGlvbicsIGFzeW5j
ICgpID0+IHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdj
b21wbGV0ZWQnXSk7CiAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL3Rlc3QtZ3JvdXBzL3JlYWR5LWZvci1ub3RpZmlj
YXRpb24nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50LnRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IGNvbnRlbnQudGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaWQsIDYwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLnRhc2ssIDUwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3QgZ3JvdXAnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYXV0aG9yLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuaGlkZGVuLCBmYWxzZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9uLCB0cnVlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcw
MicsICc3MDMnXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RHcm91cC5jb21t
aXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAuaWQpLCA2MDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91
cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5hdXRob3IsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5oaWRkZW4sIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmVlZHNOb3Rp
ZmljYXRpb24sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50
KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlc3RHcm91cC5jb21taXRT
ZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKICAgICAgICAgfSk7CiAKICAgICAg
ICAgaXQoJ3Nob3VsZCBub3QgbGlzdCBoaWRkZW4gdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsK
QEAgLTUxLDEyICs1MSwxMiBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBb
J2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAg
ICAgICAgICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91
cHMgU0VUIHRlc3Rncm91cF9oaWRkZW4gPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcp
OwogICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBb
XSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IGxpc3QgdGVzdCBncm91
cHMgd2l0aG91dCBuZWVkcyBub3RpZmljYXRpb24gZmxhZycsIGFzeW5jICgpID0+IHsKQEAgLTY0
LDI0ICs2NCwyNCBAQCBkZXNjcmliZSgnL2FwaS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRhdGFiYXNlLCBbJ2NvbXBs
ZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCddKTsKICAgICAgICAg
ICAgIGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgU0VU
IHRlc3Rncm91cF9uZWVkc19ub3RpZmljYXRpb24gPSBGQUxTRSBXSEVSRSB0ZXN0Z3JvdXBfaWQg
PSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvcmVhZHktZm9yLW5vdGlmaWNhdGlv
bicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudC5jb21taXRzLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnQudXBsb2FkZWRGaWxlcywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnQuc3RhdHVzLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBzLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuYnVpbGRSZXF1ZXN0cywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdFNldHMsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC5jb21taXRzLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQudXBsb2FkZWRG
aWxlcywgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBsaXN0IGEg
dGVzdCBncm91cCB0aGF0IGhhcyBzb21lIGluY29tcGxldGVkIGJ1aWxkIHJlcXVlc3RzJywgYXN5
bmMgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBUZXN0U2VydmVyLmRhdGFi
YXNlKCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYXRhYmFzZSwg
Wydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdydW5uaW5nJ10pOwogICAg
ICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS90ZXN0LWdyb3Vwcy9yZWFkeS1mb3Itbm90aWZpY2F0aW9uJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29udGVudC5zdGF0dXMsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChjb250ZW50LnRlc3RHcm91cHMsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoY29udGVudC5idWlsZFJlcXVlc3RzLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbnRlbnQuY29tbWl0U2V0cywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb250ZW50LmNvbW1pdHMsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29udGVudC51cGxvYWRlZEZpbGVzLCBbXSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMzgsMTggKzEzOCwxOCBAQCBkZXNjcmliZSgnL2Fw
aS90ZXN0LWdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZE1vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydjb21wbGV0ZWQnLCAnY29tcGxl
dGVkJywgJ2ZhaWxlZCcsICdjb21wbGV0ZWQnXSwgZmFsc2UpOwogICAgICAgICAgICAgYXdhaXQg
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMg
U0VUIHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3Jv
dXBfaWQgPSA2MDAnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJlcXVl
c3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSBjb250ZW50LnRlc3RH
cm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmlkLCA2MDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC50YXNrLCA1MDApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5uYW1lLCAnc29tZSB0ZXN0IGdyb3VwJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmF1dGhvciwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQodGVzdEdyb3VwLmlkKSwgNjAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh0ZXN0R3JvdXAudGFzayksIDUwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUsICdzb21lIHRl
c3QgZ3JvdXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYXV0
aG9yLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLmhpZGRlbik7CiAg
ICAgICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbik7CiAgICAg
ICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm1heU5lZWRNb3JlUmVxdWVzdHMpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5wbGF0Zm9ybSwgNjUpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MDAnLCc3MDEnLCAn
NzAyJywgJzcwMyddKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdEdyb3VwLmNv
bW1pdFNldHMsIFsnNDAxJywgJzQwMicsICc0MDEnLCAnNDAyJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHRlc3RHcm91cC5wbGF0Zm9ybSksIDY1KTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsn
NzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRlc3RHcm91cC5jb21taXRTZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMidd
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBsaXN0IGFsbCB0ZXN0IGdyb3Vw
cyBtYXkgbmVlZCBhZGRpdGlvbmFsIGJ1aWxkIHJlcXVlc3RzJywgYXN5bmMgKCkgPT4gewpAQCAt
MTU4LDMxICsxNTgsMzEgQEAgZGVzY3JpYmUoJy9hcGkvdGVzdC1ncm91cHMnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1VQREFU
RSBhbmFseXNpc190ZXN0X2dyb3VwcyBTRVQgdGVzdGdyb3VwX21heV9uZWVkX21vcmVfcmVxdWVz
dHMgPSBUUlVFIFdIRVJFIHRlc3Rncm91cF9pZCA9IDYwMCcpOwogICAgICAgICAgICAgYXdhaXQg
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCdVUERBVEUgYW5hbHlzaXNfdGVzdF9ncm91cHMg
U0VUIHRlc3Rncm91cF9tYXlfbmVlZF9tb3JlX3JlcXVlc3RzID0gVFJVRSBXSEVSRSB0ZXN0Z3Jv
dXBfaWQgPSA2MDEnKTsKICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvdGVzdC1ncm91cHMvbmVlZC1tb3JlLXJlcXVl
c3RzJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudC50ZXN0R3JvdXBzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudC50ZXN0R3JvdXBz
Lmxlbmd0aCwgMik7CiAKICAgICAgICAgICAgIGNvbnN0IG9uZVRlc3RHcm91cCA9IGNvbnRlbnQu
dGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuaWQs
IDYwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLnRhc2ssIDUwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob25lVGVzdEdyb3VwLm5hbWUsICdzb21lIHRlc3Qg
Z3JvdXAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbmVUZXN0R3JvdXAuYXV0aG9yLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvbmVUZXN0R3Jv
dXAuaWQpLCA2MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KG9u
ZVRlc3RHcm91cC50YXNrKSwgNTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
bmVUZXN0R3JvdXAubmFtZSwgJ3NvbWUgdGVzdCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5hdXRob3IsIG51bGwpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFvbmVUZXN0R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayhvbmVU
ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24pOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKG9uZVRl
c3RHcm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bmVUZXN0R3JvdXAucGxhdGZvcm0sIDY1KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b25lVGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMsIFsnNzAwJywnNzAxJywgJzcwMicsICc3MDMnXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9uZVRlc3RHcm91cC5jb21taXRTZXRzLCBb
JzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChvbmVUZXN0R3JvdXAucGxhdGZvcm0pLCA2NSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKG9uZVRlc3RHcm91cC5idWlsZFJlcXVlc3RzLCBbJzcwMCcs
JzcwMScsICc3MDInLCAnNzAzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChvbmVUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAyJywgJzQwMScsICc0MDInXSk7
CiAKICAgICAgICAgICAgIGNvbnN0IGFub3RoZXJUZXN0R3JvdXAgPSBjb250ZW50LnRlc3RHcm91
cHNbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5pZCwgNjAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyVGVzdEdyb3VwLnRhc2ssIDUwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91cC5uYW1lLCAnYW5vdGhl
ciB0ZXN0IGdyb3VwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlclRlc3RHcm91
cC5hdXRob3IsICd3ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChhbm90aGVyVGVzdEdyb3VwLmlkKSwgNjAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnRhc2spLCA1MDApOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAubmFtZSwgJ2Fub3RoZXIgdGVz
dCBncm91cCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3Jv
dXAuYXV0aG9yLCAnd2Via2l0Jyk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWFub3RoZXJUZXN0
R3JvdXAuaGlkZGVuKTsKICAgICAgICAgICAgIGFzc2VydC5vayghYW5vdGhlclRlc3RHcm91cC5u
ZWVkc05vdGlmaWNhdGlvbik7CiAgICAgICAgICAgICBhc3NlcnQub2soYW5vdGhlclRlc3RHcm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVy
VGVzdEdyb3VwLnBsYXRmb3JtLCA2NSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGFu
b3RoZXJUZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cywgWyc3MTAnLCc3MTEnLCAnNzEyJywgJzcxMydd
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYW5vdGhlclRlc3RHcm91cC5jb21taXRT
ZXRzLCBbJzQwMScsICc0MDInLCAnNDAxJywgJzQwMiddKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChhbm90aGVyVGVzdEdyb3VwLnBsYXRmb3JtKSwgNjUpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhbm90aGVyVGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMsIFsnNzEwJywnNzExJywgJzcxMicsICc3MTMnXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKGFub3RoZXJUZXN0R3JvdXAuY29tbWl0U2V0cywgWyc0MDEnLCAnNDAy
JywgJzQwMScsICc0MDInXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpz
CmluZGV4IGZmZjJhY2YxZmI2MzlhYjNlOThhMmIxYjdiM2Q0MDZkZjFhY2M3ZTEuLmJiZjkzMzY2
NTBlNWVhNDE1N2RmZmE0ZDk2MmViYjk1OTA0N2U5NDAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUt
dHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTMwLDE0ICszMCwxNCBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3Nob3VsZCByZWpl
Y3Qgd2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJl
IG5vIHNsYXZlcycsICgpID0+IHsKICAgICAgICAgY29uc3QgdXBkYXRlID0ge3NsYXZlTmFtZTog
ZW1wdHlVcGRhdGUuc2xhdmVOYW1lLCBzbGF2ZVBhc3N3b3JkOiBlbXB0eVVwZGF0ZS5zbGF2ZVBh
c3N3b3JkfTsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSkudGhlbigocmVzcG9uc2UpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdTbGF2ZU5vdEZv
dW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnU2xhdmVOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgsNyArNDgs
NyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0ge3NsYXZlTmFtZTogZW1wdHlVcGRhdGUuc2xhdmVO
YW1lLCBzbGF2ZVBhc3N3b3JkOiAnYmFkUGFzc3dvcmQnfTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICB9
KTsKICAgICB9KTsKIApAQCAtNTgsNyArNTgsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJp
Z2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0
ZS10cmlnZ2VyYWJsZS8nLCBlbXB0eVVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzMsMTAgKzczLDEwIEBAIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGVtcHR5VXBkYXRlKTsKICAgICAgICAg
fSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJv
d3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtODcsMTIgKzg3LDEyIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHNtYWxsVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsndGVzdCddLCBzbWFsbFVwZGF0ZS5jb25maWd1cmF0aW9uc1swXVsndGVzdCdd
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydwbGF0Zm9ybSddLCBzbWFsbFVw
ZGF0ZS5jb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMF1bJ3Rlc3QnXSwgc21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3Rlc3Qn
XSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXVsncGxhdGZvcm0nXSwg
c21hbGxVcGRhdGUuY29uZmlndXJhdGlvbnNbMF1bJ3BsYXRmb3JtJ10pOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMTA4LDcgKzEwOCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZENvbmZpZ3VyYXRp
b25FbnRyeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRDb25maWd1cmF0aW9uRW50cnknKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5
R3JvdXBzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTE0OSw3ICsxNDksNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCB1cGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3Jv
dXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0x
NjEsNyArMTYxLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywg
dXBkYXRlKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeUdyb3VwJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFJlcG9zaXRvcnlHcm91cCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTczLDcg
KzE3Myw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0
ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRS
ZXBvc2l0b3J5R3JvdXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE4NSw3ICsxODUs
NyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5RGF0YScpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0
b3J5RGF0YScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmVwb3NpdG9yeScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIGRlc2NyaWJlKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
RHVwbGljYXRlUmVwb3NpdG9yeScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0R1cGxpY2F0ZVJlcG9zaXRvcnknKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKQEAgLTIyMSwxOCArMjIxLDE4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtk
Yi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKSwgZGIuc2Vs
ZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpXSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBv
c2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZp
Z3VyYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJh
dGlvbnNbMF1bJ3Rlc3QnXSwgTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXVsncGxhdGZvcm0nXSwgTW9ja0RhdGEuc29tZVBs
YXRmb3JtSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29uZmlndXJhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb25maWd1cmF0
aW9uc1swXVsndGVzdCddLCBNb2NrRGF0YS5zb21lVGVzdElkKCkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWydwbGF0Zm9ybSddLCBNb2NrRGF0YS5z
b21lUGxhdGZvcm1JZCgpKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlH
cm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dl
cmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEu
ZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1Myw4
ICsyNTMsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtp
bml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxS
ZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91
cHNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9u
cywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRp
b25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
cywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQogICAgIH0pOwogCkBAIC0y
NzUsOCArMjc1LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25z
dCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBpbml0
aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0b3J5
R3JvdXBzXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmlndXJh
dGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1
cmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKICAgICB9KTsKIApA
QCAtMjkwLDE0ICsyOTAsMTQgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVu
KChyZXBvc2l0b3J5R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwg
J3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gZGIuc2VsZWN0
QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycpKS50aGVuKChyZXBvc2l0b3J5R3Jv
dXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25h
bWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnZGVzY3JpcHRpb24nXSwgJ3RoaXMgZ3JvdXAgaXMgYXdlc29tZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1l
J10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3VwIGlzIGF3ZXNvbWUnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzOSArMzQ0LDM5IEBAIGRlc2NyaWJlKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25z
dCByZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFt
ZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwoKSk7CiAgICAgICAgICAgICBjb25zdCB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAg
ICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdtYWNPUycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBm
YWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0u
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFj
Y2VwdHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigp
LCAnc3lzdGVtLW9ubHknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFs
c2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZv
clJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigp
LCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCks
IFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hG
b3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAgICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZldGNo
KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IFRy
aWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGVSZXBvc2l0b3J5
R3JvdXAuYWxsKCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
VG9wTGV2ZWxCeU5hbWUoJ1dlYktpdCcpOwogICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBv
c2l0b3J5LmZpbmRUb3BMZXZlbEJ5TmFtZSgnbWFjT1MnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uZGVzY3JpcHRpb24oKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0
LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0u
YWNjZXB0c1BhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnko
bWFjb3MpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3Jv
dXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXS5kZXNjcmlwdGlvbigpLCAnc3lzdGVtLW9ubHknKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290
cygpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1sxXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIGZh
bHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdLmFjY2Vw
dHNQYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC13
ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdLmRlc2NyaXB0aW9uKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdy
b3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdLmFjY2VwdHNQYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2Up
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5u
YW1lKCksICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHNbMV0uZGVzY3JpcHRpb24oKSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9t
Um9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFttYWNvc10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1sxXS5hY2NlcHRzUGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2Up
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC0zOTUsMjkgKzM5NSwyOSBAQCBkZXNjcmliZSgnL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25h
bWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9y
eScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
W3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dl
cmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxl
J10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQt
d2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10s
ICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQo
KSk7CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAogICAg
ICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3Jv
dXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhy
ZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9j
a0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCld
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBv
c2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNC
eUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEu
bWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBv
c2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsK
IAogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2Vs
ZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICduYW1lJyksIGRiLnNlbGVj
dEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknKV0pOwogICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtyZXBvc2l0b3J5R3Jv
dXBzLCByZXBvc2l0b3JpZXNdID0gcmVzdWx0OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsR3JvdXBzKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbEdyb3Vwcyk7CiAKICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0b3JpZXNCeUdyb3Vw
KHJlcG9zaXRvcmllcyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2JqZWN0LmtleXMocmVw
b3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVwb3NpdG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRh
Lm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlh
bEdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoT2JqZWN0LmtleXMocmVwb3NpdG9yaWVzQnlHcm91
cCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3Np
dG9yaWVzQnlHcm91cFtpbml0aWFsR3JvdXBzWzBdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVw
b3NpdG9yeUlkKCksIE1vY2tEYXRhLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdy
b3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpXSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC00MzYsMTcgKzQzNiwxNyBAQCBkZXNjcmliZSgnL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25h
bWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9y
eScpXSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
W3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQtd2Via2l0
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dl
cmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxl
J10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQt
d2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1swXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10s
ICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJpZ2dlcmFnYmxlSWQo
KSk7CiAgICAgICAgICAgICBpbml0aWFsR3JvdXBzID0gcmVwb3NpdG9yeUdyb3VwczsKIAogICAg
ICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzQnlHcm91cCA9IG1hcFJlcG9zaXRvcmllc0J5R3Jv
dXAocmVwb3NpdG9yaWVzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyhy
ZXBvc2l0b3JpZXNCeUdyb3VwKS5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9j
a0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCld
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBv
c2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChPYmplY3Qua2V5cyhyZXBvc2l0b3JpZXNC
eUdyb3VwKS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXBvc2l0b3JpZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMF1bJ2lkJ11dLCBbTW9ja0RhdGEu
bWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCldKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBv
c2l0b3J5R3JvdXBzWzFdWydpZCddXSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldKTsK
ICAgICAgICAgICAgIGluaXRpYWxSZXBvc2l0b3JpZXMgPSByZXBvc2l0b3JpZXM7CiAKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygn
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vjb25kVXBkYXRlKTsKQEAgLTQ1NSwxMyArNDU1
LDEzIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW3JlcG9z
aXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9ubHknKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBpbml0
aWFsR3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIGlu
aXRpYWxHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcnlHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdtYWMtb25seScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJh
YmxlJ10sIGluaXRpYWxHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1hbmQt
d2Via2l0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1sxXVsndHJpZ2dlcmFibGUnXSwgaW5pdGlhbEdyb3Vwc1swXVsndHJpZ2dlcmFibGUnXSk7CiAK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzLCBpbml0aWFsUmVwb3Np
dG9yaWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVz
LCBpbml0aWFsUmVwb3NpdG9yaWVzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBs
b2FkLXJvb3QtdGVzdHMuanMKaW5kZXggYThiMTkxZDc1ZmMxYzgwMTY2YmEzNmUxMzUzMzViMDEw
NjE4ODlmOC4uNDk4MmYwOThiZTgxNzY1OTU3ZmExNTIzY2I3ZmRhYTNkNjcwNzVmNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJv
b3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktdXBsb2FkLXJvb3QtdGVzdHMuanMKQEAgLTEyMSw3ICsxMjEsNyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3
aGVuIHJvb3QgZmlsZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywge30pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMjksNyArMTI5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9y
YXJ5RmlsZSgnc29tZS5kYXQnLCAnc29tZSBjb250ZW50JykudGhlbigocm9vdEZpbGUpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCBtYWtlUmVwb3J0KHJvb3RGaWxlKSk7CiAgICAgICAgIH0pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWxldGUgcmVwb3J0LnNsYXZlTmFtZTsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91
cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2
ZU5hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDks
NyArMTQ5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5idWlsZGVyTmFtZTsKICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8n
LCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZGVyTmFtZScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRCdWlsZGVyTmFtZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTU5LDcgKzE1OSw3
IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGRlbGV0ZSByZXBvcnQuYnVpbGRUYWc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsK
ICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUYWcnKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZXNjcmliZSgnL2Fw
aS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQuYnVpbGRO
dW1iZXIgPSAnMWFiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGROdW1iZXInKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCBkZXNjcmliZSgnL2FwaS91cGxv
YWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1ha2VSZXBv
cnQocm9vdEZpbGUpOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnNDU2JzsKICAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3Jt
RGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnQnVpbGRlck51bWJlclRhZ01pc21hdGNoJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTnVtYmVyVGFn
TWlzbWF0Y2gnKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgYWNjZXB0IGlmIGJvdGggYnVp
bGQgbnVtYmVyIGFuZCBidWlsZCB0YWcgZXhpc3RzIHdpdGggc2FtZSB2YWx1ZScsIGFzeW5jICgp
ID0+IHsKQEAgLTE4OCwzOSArMTg4LDM5IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290Lycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogCiAgICAgICAgIGNvbnN0IGJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNG
aW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFBh
dGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpT
QyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGNvbnN0IG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3du
ZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBj
b25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3JlYXRlUm9vdEZpbGUoKTsKICAgICAg
ICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCks
IFsnV2ViS2l0J10pOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSByZXBvcnQuYnVpbGRU
YWc7CiAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgIH0pOwogCiAgICAgaXQoJ3No
b3VsZCBjb250aW51ZSB3b3JraW5nIHdpdGggYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRhZyBpcyBu
b3QgcHJlc2VudCcsIGFzeW5jICgpID0+IHsKQEAgLTIyOSw0MCArMjI5LDQwIEBAIGRlc2NyaWJl
KCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29uc3Qgb3duZWRK
U0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkp
OwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgNik7CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAg
ICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNo
LmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy02MTYxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwotICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpz
Yy05MTkxJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICBjb25zdCByb290RmlsZSA9IGF3YWl0IGFkZFNsYXZlQW5kQ3Jl
YXRlUm9vdEZpbGUoKTsKICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJlcG9ydChyb290Rmls
ZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICBkZWxldGUgcmVwb3J0
LmJ1aWxkVGFnOwogICAgICAgICByZXBvcnQuYnVpbGROdW1iZXIgPSAnMTIzJzsKICAgICAgICAg
Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3
aGVuIGJ1aWxkIHRpbWUgaXMgbWlzc2luZycsICgpID0+IHsKQEAgLTI3MSw3ICsyNzEsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBk
ZWxldGUgcmVwb3J0LmJ1aWxkVGltZTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yODEsNyArMjgxLDcgQEAgZGVzY3JpYmUoJy9hcGkv
dXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LmJ1aWxkVGlt
ZSA9ICdXZWQsIDEwIE1heSAyMDE3IDAzOjAyOjMwIEdNVCc7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywg
cmVwb3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRUaW1lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1
aWxkVGltZScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjkxLDcgKzI5MSw3IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRl
bGV0ZSByZXBvcnQuYnVpbGRSZXF1ZXN0OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVl
c3QnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBkZXNjcmli
ZSgnL2FwaS91cGxvYWQtcm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQu
YnVpbGRSZXF1ZXN0ID0gJ2FiYyc7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0KTsKICAgICAg
ICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQnVpbGRSZXF1ZXN0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEJ1aWxkUmVxdWVzdCcp
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZl
QW5kQ3JlYXRlUm9vdEZpbGUoKS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290
LycsIG1ha2VSZXBvcnQocm9vdEZpbGUpKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
QnVpbGRSZXF1ZXN0VHlwZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRCdWlsZFJlcXVlc3RUeXBlJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0zMTksNyArMzE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3Qv
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGVsZXRlIHJlcG9ydC5yZXBvc2l0b3J5TGlz
dDsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0
YSgnL2FwaS91cGxvYWQtcm9vdC8nLCByZXBvcnQpOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRSZXBvc2l0b3J5TGlzdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5TGlzdCcpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMzI5LDcgKzMyOSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZC1yb290
LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBvc2l0b3J5TGlzdCA9ICdh
K2InOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1E
YXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3Bv
bnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCkBAIC0zNDcsNjYgKzM0Nyw2NiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQt
cm9vdC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwog
ICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25l
ZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJD
b21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpT
QyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RG
aWxlKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxl
LCBidWlsZFJlcXVlc3QuaWQoKSwgWydXZWJLaXQnXSk7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVw
b3J0KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1
cGxvYWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAg
ICAgdXBsb2FkZWRSb290ID0gVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbih1cGxvYWRlZFJv
b3RSYXdEYXRhLmlkLCB1cGxvYWRlZFJvb3RSYXdEYXRhKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh1cGxvYWRlZFJvb3QuZmlsZW5hbWUoKSwgJ3NvbWUuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVpbGRSZXF1ZXN0LnRl
c3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3Vw
cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAg
ICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAg
Y29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1
ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkQnVpbGRSZXF1ZXN0
LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9v
dEZpbGVzKCksIFt1cGxvYWRlZFJvb3RdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFs
bFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAgICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZSgn
SmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnLCAnSmF2YVNjcmlwdCBDb250ZW50IDAnKTsKICAgICAg
ICAgfSkudGhlbigocm9vdEZpbGUpID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlcG9ydCA9IG1h
a2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpLCBbe293bmVyUmVwb3NpdG9yeVdy
b25nS2V5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAnSmF2YVNjcmlwdENvcmUnfV0sICcy
MDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEtleUZvclJlcG9zaXRvcnknKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkS2V5Rm9y
UmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNDI0LDY2ICs0MjQsNjYg
QEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAg
ICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhh
c0ZpbmlzaGVkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmco
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBs
b2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYx
NjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
b3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAg
ICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgp
OwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVw
b3J0ID0gbWFrZVJlcG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10p
OwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRh
KCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNl
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1
cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5l
bnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0
YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdz
b21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5m
aWxlbmFtZSgpLCAnc29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3Jv
dXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxl
bmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0
ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAg
YXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFz
RmluaXNoZWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFs
bFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFy
eUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFT
Y3JpcHQgQ29udGVudCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3Qu
aWQoKSwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQyJywgb3duZWRSZXBvc2l0b3J5OiAnSmF2
YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1y
b290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnkn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmVwb3NpdG9yeScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTAxLDc5ICs1
MDEsNzkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAg
ICAgICAgICAgICB0ZXN0R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaGFzRmluaXNoZWQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
UGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKICAgICAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgw
MjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290
RmlsZSgpOwogICAgICAgICB9KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290
LycsIG1ha2VSZXBvcnQocm9vdEZpbGUsIGJ1aWxkUmVxdWVzdC5pZCgpKSk7CiAgICAgICAgIH0p
LnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0
YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9
IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBs
b2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290
LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwbG9h
ZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3QudGVz
dEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBz
KSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAg
IGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxkUmVx
dWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVz
dCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRSb290LCB1cGxvYWRlZFJvb3QpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QsIHVwbG9hZGVkUm9vdCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShz
aGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4
MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNTg3LDcgKzU4Nyw3IEBAIGRlc2NyaWJlKCcv
YXBpL3VwbG9hZC1yb290LycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJlcG9ydC5yZXBv
c2l0b3J5TGlzdCA9ICciYSInOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlMaXN0
Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MDEsOCArNjAxLDggQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmVwb3J0LnJl
cG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIkJhZFJlcG9zaXRvcnlOYW1lIl0nOwogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3Vw
bG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9z
aXRvcnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5h
bWUnXSwgJ0JhZFJlcG9zaXRvcnlOYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ0JhZFJlcG9z
aXRvcnlOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02MTYsOCArNjE2LDggQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
cmVwb3J0LnJlcG9zaXRvcnlMaXN0ID0gJ1siV2ViS2l0IiwgIm1hY09TIl0nOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9h
ZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUn
XSwgJ21hY09TJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsncmVwb3NpdG9yeU5hbWUnXSwgJ21hY09TJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC02MzUsMzQgKzYzNSwzNCBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9v
dC8nLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIHRlc3RHcm91cCA9IGdyb3VwOwogICAg
ICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwg
Nik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOyAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgd2Via2l0UGF0
Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwg
J3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4MDIyOScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OwogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHNoYXJlZCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCAnODAyMjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkoc2hhcmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUFuZENyZWF0ZVJvb3RGaWxlKCk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxl
KSA9PiB7CkBAIC02NzAsNDUgKzY3MCw0NSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWQtcm9vdC8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXBvcnQucmVwb3NpdG9yeUxpc3QgPSAnWyJX
ZWJLaXQiLCAiU2hhcmVkIl0nOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9hZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAg
IH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3
RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9v
dCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwg
dXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRS
b290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVw
bG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5hdXRob3IoKSwgJ3NvbWVVc2VyJyk7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhidWlsZFJlcXVlc3Qu
dGVzdEdyb3VwKCkudGFzaygpLmlkKCksIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
WzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVlc3QsIGJ1aWxk
UmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEJ1aWxkUmVx
dWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsgCi0gICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQubm90U3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHdlYmtpdFBhdGNoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRSb290
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHNoYXJlZCksICc4MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5wYXRjaEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIHVwbG9hZGVkUm9vdCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
d2Via2l0UGF0Y2gpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZFJvb3QpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwg
JzgwMjI5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkoc2hhcmVkKSwgdXBsb2FkZWRSb290KTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbdXBsb2FkZWRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHNoYXJlZCksICc4
MDIyOScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShzaGFyZWQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoc2hhcmVkKSwgJzgwMjI5Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHNoYXJlZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtNzI3LDg3ICs3MjcsODcgQEAgZGVzY3JpYmUo
Jy9hcGkvdXBsb2FkLXJvb3QvJywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICB0ZXN0R3Jv
dXAgPSBncm91cDsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1BlbmRpbmcoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAg
ICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwog
ICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2gu
ZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlND
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAg
ICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVBbmRDcmVhdGVSb290RmlsZSgpOwogICAgICAgICB9
KS50aGVuKChyb290RmlsZSkgPT4gewogICAgICAgICAgICAgY29uc3QgcmVwb3J0ID0gbWFrZVJl
cG9ydChyb290RmlsZSwgYnVpbGRSZXF1ZXN0LmlkKCksIFsnV2ViS2l0J10pOwogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEZvcm1EYXRhKCcvYXBpL3VwbG9h
ZC1yb290LycsIHJlcG9ydCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogICAgICAg
ICAgICAgY29uc3QgdXBsb2FkZWRSb290UmF3RGF0YSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUn
XTsKICAgICAgICAgICAgIHVwbG9hZGVkUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0
b24odXBsb2FkZWRSb290UmF3RGF0YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodXBsb2FkZWRSb290LmZpbGVuYW1lKCksICdzb21lLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHVwbG9hZGVkUm9vdC5maWxlbmFtZSgpLCAn
c29tZS5kYXQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKGJ1
aWxkUmVxdWVzdC50ZXN0R3JvdXAoKS50YXNrKCkuaWQoKSwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cCwgdGVzdEdyb3VwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAK
ICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRCdWlsZFJlcXVl
c3QsIGJ1aWxkUmVxdWVzdCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRl
ZEJ1aWxkUmVxdWVzdCwgYnVpbGRSZXF1ZXN0KTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaGFzRmluaXNoZWQoKSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpLmFsbFJvb3RGaWxlcygpLCBbdXBsb2FkZWRSb290XSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdF0pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxS
b290RmlsZXMoKSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUubWFrZVRl
bXBvcmFyeUZpbGUoJ0phdmFTY3JpcHRDb3JlLVJvb3QuZGF0JywgJ0phdmFTY3JpcHQgQ29udGVu
dCAwJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvb3RGaWxlKSA9PiB7CiAgICAgICAgICAgICBjb25z
dCByZXBvcnQgPSBtYWtlUmVwb3J0KHJvb3RGaWxlLCBidWlsZFJlcXVlc3QuaWQoKSwgW3tvd25l
clJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9
XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybURhdGEoJy9hcGkvdXBsb2FkLXJvb3QvJywgcmVwb3J0
KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CiAgICAgICAgICAgICBjb25zdCB1cGxv
YWRlZFJvb3RSYXdEYXRhID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAg
anNjUm9vdCA9IFVwbG9hZGVkRmlsZS5lbnN1cmVTaW5nbGV0b24odXBsb2FkZWRSb290UmF3RGF0
YS5pZCwgdXBsb2FkZWRSb290UmF3RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNj
Um9vdC5maWxlbmFtZSgpLCAnSmF2YVNjcmlwdENvcmUtUm9vdC5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdKYXZhU2NyaXB0Q29yZS1S
b290LmRhdCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2soYnVp
bGRSZXF1ZXN0LnRlc3RHcm91cCgpLnRhc2soKS5pZCgpLCB0cnVlKTsKICAgICAgICAgfSkudGhl
bigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAsIHRlc3RHcm91cCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLCB0ZXN0R3JvdXApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEJ1aWxkUmVxdWVz
dCwgYnVpbGRSZXF1ZXN0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVk
QnVpbGRSZXF1ZXN0LCBidWlsZFJlcXVlc3QpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KS5hbGxSb290RmlsZXMoKSwgW3VwbG9hZGVkUm9vdCwganNjUm9vdF0pOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5hbGxSb290Rmls
ZXMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFt1cGxvYWRlZFJvb3QsIGpzY1Jvb3RdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVw
bG9hZGVkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS11cGxvYWRlZC1maWxlLXRlc3RzLmpzCmluZGV4IGJlZGM1NDc3ZDU1YTRjNzQ3YjIx
ZDcwOTQ4NTUyZTM1N2Y0NjJhOTQuLjAyZTFkODlmY2MxZDIyZWE2ODZhY2VkMTYwMjI5MjMyMWZk
ZGQ4ZDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXVwbG9hZGVkLWZpbGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBsb2FkZWQtZmlsZS10ZXN0cy5qcwpAQCAtNywxOSArNywxOCBA
QCBnbG9iYWwuRm9ybURhdGEgPSByZXF1aXJlKCdmb3JtLWRhdGEnKTsKIAogY29uc3QgVGVzdFNl
cnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBUZW1w
b3JhcnlGaWxlID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMnKS5UZW1w
b3JhcnlGaWxlOworY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogCiBkZXNjcmliZSgn
L2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91dCg1MDAw
KTsKLSAgICBUZXN0U2VydmVyLmluamVjdCgpOwotCisgICAgcHJlcGFyZVNlcnZlclRlc3QodGhp
cyk7CiAgICAgVGVtcG9yYXJ5RmlsZS5pbmplY3QoKTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJu
ICJJbnZhbGlkQXJndW1lbnRzIiB3aGVuIG5laXRoZXIgcGF0aCBub3Igc2hhMjU2IHF1ZXJ5IGlz
IHNldCcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS91cGxvYWRlZC1maWxlJykudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxpZEFyZ3VtZW50cycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnSW52YWxp
ZEFyZ3VtZW50cycpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTignL2FwaS91cGxvYWRlZC1maWxlLycpOwogICAgICAgICB9KS50aGVuKChjb250ZW50
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdJbnZh
bGlkQXJndW1lbnRzJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsn
c3RhdHVzJ10sICdJbnZhbGlkQXJndW1lbnRzJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0yNyw3ICsyNiw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
dXBsb2FkZWQtZmlsZS8xJykudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIDQwNCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIDQwNCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBA
IC0zNSw3ICszNCw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkv
dXBsb2FkZWQtZmlsZS9mb28nKS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgNDA0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDA0KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
QEAgLTQ3LDcgKzQ2LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZSA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUn
XTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVx
dWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7dXBsb2FkZWRGaWxlWydpZCddfWAsICdHRVQnLCBu
dWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21l
IGNvbnRlbnQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTY4LDEzICs2NywxMyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogCiAgICAgaXQoJ3No
b3VsZCByZXR1cm4gIk5vdEZvdW5kIiB3aGVuIHRoZSBzcGVjaWZpZWQgU0hBMjU2IGlzIGludmFs
aWQnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oJy9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PWFiYycpLnRoZW4oKGNvbnRlbnQpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdOb3RG
b3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgcmV0dXJuICJO
b3RGb3VuZCIgd2hlbiB0aGVyZSBpcyBubyBmaWxlIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgU0hB
MjU2ICcsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS91cGxvYWRlZC1maWxlLz9zaGEyNTY9NTI1NmVjMThmMTE2MjQwMjU5MDVkMDU3
ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpLnRoZW4oKGNvbnRlbnQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZv
dW5kJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVzJ10s
ICdOb3RGb3VuZCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtODYsNyArODUsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
dXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS91cGxvYWRlZC1maWxlLz9z
aGEyNTY9JHt1cGxvYWRlZEZpbGVbJ3NoYTI1NiddfWApOwogICAgICAgICB9KS50aGVuKChyZXNw
b25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUsIHJl
c3BvbnNlWyd1cGxvYWRlZEZpbGUnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHVwbG9hZGVkRmlsZSwgcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTk3LDExICs5NiwxMSBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAg
ICAgICAgICAgdXBsb2FkZWRGaWxlID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddOwogICAgICAg
ICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7Ci0gICAgICAgICAgICByZXR1
cm4gZGIuY29ubmVjdCgpLnRoZW4oKCkgPT4gZGIucXVlcnkoYFVQREFURSB1cGxvYWRlZF9maWxl
cyBTRVQgZmlsZV9kZWxldGVkX2F0ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnYCkpOworICAg
ICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KGBVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VUIGZpbGVf
ZGVsZXRlZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJ2ApOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oYC9hcGkvdXBsb2FkZWQtZmlsZS8/c2hhMjU2PSR7dXBsb2FkZWRGaWxlWydzaGEyNTYnXX1g
KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ05vdEZvdW5kJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xMTcsMTYgKzExNiwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGxvYWRlZC1m
aWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNl
LmhlYWRlcnM7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNs
dWRlcygnZXRhZycpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydldGFnJ10s
IHVwbG9hZGVkRmlsZVsnc2hhMjU2J10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGhlYWRlcnNbJ2V0YWcnXSwgdXBsb2FkZWRGaWxlWydzaGEyNTYnXSk7CiAKICAgICAgICAgICAg
IGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJzKS5pbmNsdWRlcygnYWNjZXB0LXJhbmdlcycpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydhY2NlcHQtcmFuZ2VzJ10sICdieXRl
cycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2FjY2VwdC1yYW5n
ZXMnXSwgJ2J5dGVzJyk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJz
KS5pbmNsdWRlcygnY29udGVudC1kaXNwb3NpdGlvbicpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChoZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sIGBhdHRhY2htZW50OyBmaWxlbmFt
ZSo9dXRmLTgnJ3NvbWUuZGF0YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVh
ZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLCBgYXR0YWNobWVudDsgZmlsZW5hbWUqPXV0Zi04
Jydzb21lLmRhdGApOwogCiAgICAgICAgICAgICBhc3NlcnQoT2JqZWN0LmtleXMoaGVhZGVycyku
aW5jbHVkZXMoJ2NvbnRlbnQtbGVuZ3RoJykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGhl
YWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10sIHVwbG9hZGVkRmlsZVsnc2l6ZSddKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCB1cGxvYWRl
ZEZpbGVbJ3NpemUnXSk7CiAKICAgICAgICAgICAgIGFzc2VydChPYmplY3Qua2V5cyhoZWFkZXJz
KS5pbmNsdWRlcygnbGFzdC1tb2RpZmllZCcpKTsKICAgICAgICAgfSk7CkBAIC0xNDQsNyArMTQz
LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGxhc3RNb2RpZmllZCA9IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXTsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVz
dChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAg
ICB9KS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZpZWQnXSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5oZWFkZXJzWydsYXN0LW1vZGlmaWVkJ10sIGxh
c3RNb2RpZmllZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNTYsOSArMTU1LDkgQEAg
ZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxv
YWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzog
J2J5dGVzPTUtJ319KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgNS0xMS8xMicpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2NvbnRlbnQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5
dGVzIDUtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5y
ZXNwb25zZVRleHQsICdjb250ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNzAs
OSArMTY5LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVz
dChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwsIHtoZWFkZXJz
OiB7J1JhbmdlJzogJ2J5dGVzPTQtOSd9fSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDQtOS8xMicp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJyBjb250
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUs
IDIwNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1y
YW5nZSddLCAnYnl0ZXMgNC05LzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnIGNvbnRlJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xODQsOSArMTgzLDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRI
dHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGws
IHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS00J319KTsKICAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJz
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMg
OC0xMS8xMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dCwgJ3RlbnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhlYWRlcnNbJ2Nv
bnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDgtMTEvMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICd0ZW50Jyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xOTgsOSArMTk3LDkgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwgJ0dFVCcsIG51bGws
IG51bGwsIHtoZWFkZXJzOiB7J1JhbmdlJzogJ2J5dGVzPS0xMDAnfX0pOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNl
LmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10s
ICdieXRlcyAwLTExLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVz
cG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyAwLTExLzEyJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBjb250
ZW50Jyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMTAsNyArMjA5LDcgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
cmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVk
RmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
c2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwg
bnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAnYnl0ZXM9MTItJ319KQotICAgICAgICAgICAgICAg
IC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChl
cnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVycm9yLCA0MTYpKTsKKyAgICAgICAgICAgICAgICAudGhl
bigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3Ip
ID0+IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0yMjAsNyArMjE5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmlsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGlkID0gcmVzcG9uc2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9h
ZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVsbCwgbnVsbCwge2hlYWRlcnM6IHsnUmFuZ2UnOiAn
Ynl0ZXM9Mi0xJ319KQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyksIChlcnJvcikgPT4gYXNzZXJ0LmVxdWFsKGVycm9y
LCA0MTYpKTsKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBhc3NlcnQoZmFsc2UsICdzaG91
bGQgbmV2ZXIgYmUgcmVhY2hlZCcpLCAoZXJyb3IpID0+IGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgNDE2KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0yMzIsMTUgKzIzMSwxNSBAQCBk
ZXNjcmliZSgnL2FwaS91cGxvYWRlZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
aWQgPSByZXNwb25zZVsndXBsb2FkZWRGaWxlJ11bJ2lkJ107CiAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmls
ZS8ke2lkfWAsICdHRVQnLCBudWxsLCBudWxsKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3NvbWUg
Y29udGVudCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVz
cG9uc2VUZXh0LCAnc29tZSBjb250ZW50Jyk7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5zZW5kSHR0cFJlcXVlc3QoYC9hcGkvdXBsb2FkZWQtZmlsZS8ke2lkfWAs
ICdHRVQnLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J1JhbmdlJzog
J2J5dGVzID0gOS0xMCcsICdJZi1SYW5nZSc6IHJlc3BvbnNlLmhlYWRlcnNbJ2xhc3QtbW9kaWZp
ZWQnXX19KTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaGVh
ZGVyc1snY29udGVudC1yYW5nZSddLCAnYnl0ZXMgOS0xMC8xMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ2VuJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChoZWFkZXJzWydjb250ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0
LCAnZW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI1MiwxNSArMjUxLDE1IEBAIGRl
c2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBp
ZCA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXVsnaWQnXTsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxl
LyR7aWR9YCwgJ0dFVCcsIG51bGwsIG51bGwpOwogICAgICAgICB9KS50aGVuKChyZXNwb25zZSkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnc29tZSBj
b250ZW50Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNw
b25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnNlbmRIdHRwUmVxdWVzdChgL2FwaS91cGxvYWRlZC1maWxlLyR7aWR9YCwg
J0dFVCcsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAge2hlYWRlcnM6IHsnUmFuZ2UnOiAn
Ynl0ZXMgPSA5LTEwJywgJ0lmLVJhbmdlJzogcmVzcG9uc2UuaGVhZGVyc1snZXRhZyddfX0pOwog
ICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVy
cyA9IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250
ZW50LXJhbmdlJ10sICdieXRlcyA5LTEwLzEyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2UucmVzcG9uc2VUZXh0LCAnZW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSwgJ2J5dGVzIDktMTAvMTInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdlbicpOwog
ICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjcyLDEzICsyNzEsMTMgQEAgZGVzY3JpYmUoJy9h
cGkvdXBsb2FkZWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGlkID0gcmVzcG9u
c2VbJ3VwbG9hZGVkRmlsZSddWydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAn
R0VUJywgbnVsbCwgbnVsbCk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwg
J3NvbWUgY29udGVudCcpOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuc2VuZEh0dHBSZXF1ZXN0KGAvYXBpL3VwbG9hZGVkLWZpbGUvJHtpZH1gLCAnR0VUJywgbnVs
bCwgbnVsbCwKICAgICAgICAgICAgICAgICB7J1JhbmdlJzogJ2J5dGVzID0gOS0xMCcsICdJZi1S
YW5nZSc6ICdmb28nfSk7CiAgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5yZXNwb25zZVRleHQsICdzb21lIGNvbnRlbnQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCwgJ3Nv
bWUgY29udGVudCcpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMzAzLDcgKzMwMiw3IEBA
IGRlc2NyaWJlKCcvYXBpL3VwbG9hZGVkLWZpbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IGVuZEJ5dGUgLSBzdGFydEJ5dGUgKyAxOyBpKyspIHsKICAg
ICAgICAgICAgICAgICBjb25zdCBhY3R1YWwgPSByZXNwb25zZUJ1ZmZlcltpXTsKICAgICAgICAg
ICAgICAgICBjb25zdCBleHBlY3RlZCA9IGJ1ZmZlcltzdGFydEJ5dGUgKyBpXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgYFRoZSBieXRlIGF0IGluZGV4
ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAk
e2FjdHVhbH1gKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0dWFsLCBl
eHBlY3RlZCwgYFRoZSBieXRlIGF0IGluZGV4ICR7aX0gc2hvdWxkIGJlIGlkZW50aWNhbC4gRXhw
ZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCkBAIC0zMTUsOCArMzE0LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBsb2FkZWQtZmls
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydSYW5nZSc6IGBi
eXRlcyA9ICR7c3RhcnRCeXRlfS0ke2VuZEJ5dGV9YH0sIHJlc3BvbnNlSGFuZGxlcn0pOwogICAg
ICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9
IHJlc3BvbnNlLmhlYWRlcnM7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjA2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChoZWFkZXJzWydjb250ZW50
LXJhbmdlJ10sIGBieXRlcyAke3N0YXJ0Qnl0ZX0tJHtlbmRCeXRlfS8ke2ZpbGVTaXplfWApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGVhZGVyc1snY29udGVudC1yYW5nZSdd
LCBgYnl0ZXMgJHtzdGFydEJ5dGV9LSR7ZW5kQnl0ZX0vJHtmaWxlU2l6ZX1gKTsKICAgICAgICAg
ICAgIHZlcmlmeUJ1ZmZlcigpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1
aWxkLXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggMTRl
OTQ1NmQyZTY3YTVjNzEwMDEyMGIxNTQ2NDgwYzI3MTZkZWJmNC4uYjEwNzQ5YTBkMWU5MDM4ZTFm
YjJlOTEzOTM0YTYzYWEyMjUwZGQ1ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5bmMg
ZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsiMTkx
NjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZp
cnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0u
aWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9IGF3
YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0p
OwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3YWl0
IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAg
ICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCkBA
IC0xNDAsMjMgKzE0MCwyMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1y
ZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRS
ZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHsnZ3JvdXAnOiBpbnNlcnRlZEdyb3VwSWQsIG1h
eU5lZWRNb3JlUmVxdWVzdHM6IHRydWV9KTsKIAogICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0g
YXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0cnVlKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0
ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVxdWVz
dHMoKSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMik7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50
KCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRH
cm91cElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVx
dWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChncm91
cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwgMik7CiAKICAgICAgICAgYXdh
aXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywge2dyb3Vw
OiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRl
ZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwg
dHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCA0
KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaW5pdGlhbFJlcGV0aXRp
b25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm1heU5lZWRNb3JlUmVx
dWVzdHMoKSwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludCh1cGRhdGVk
R3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpKSwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludCh1cGRhdGVkR3JvdXBzWzBdLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSks
IDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubWF5TmVlZE1vcmVSZXF1ZXN0
cygpLCB0cnVlKTsKICAgICAgICAgZm9yIChjb25zdCBjb21taXRTZXQgb2YgdXBkYXRlZEdyb3Vw
c1swXS5yZXF1ZXN0ZWRDb21taXRTZXRzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdHMgPSB1cGRhdGVkR3JvdXBzWzBdLnJlcXVlc3RzRm9yQ29tbWl0U2V0KGNvbW1pdFNldCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKICAg
ICAgICAgfQogICAgIH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBjb25z
dCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29u
c3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNr
SWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5t
YXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmluaXRp
YWxSZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3Jv
dXAubWF5TmVlZE1vcmVSZXF1ZXN0cygpLCBmYWxzZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChwYXJzZUludChncm91cC5yZXBldGl0aW9uQ291bnQoKSksIDIpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoZ3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKSwg
Mik7CiAgICAgICAgIGF3YWl0IGdyb3VwLnVwZGF0ZUhpZGRlbkZsYWcodHJ1ZSk7CiAKICAgICAg
ICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFzeW5j
ICgpID0+IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0
cycsIHtncm91cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pKQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVh
dGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5k
ZXggOTk2ZDJkZDMyZDc2YmE1NDc1M2U2MzlmZjhhZjliMzU2ZjI3OTdkOC4uMGU2ODYxYjdlYzZi
ZWJlNTUyYTY0ZDg3M2ZlNTc2NmI1ZDExNzQyZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFz
ay10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0xMTMsNyArMTEz
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRo
IGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge30pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVk
Jyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVy
cm9yLCAnTWlzc2luZ05hbWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJv
ciwgJ01pc3NpbmdOYW1lJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMjEsNyArMTIx
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRo
IGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIGVuZFJ1
bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3No
b3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0UnVuJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkU3RhcnRSdW4nKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1
bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5
c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwg
J0ludmFsaWRFbmRSdW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwg
J0ludmFsaWRFbmRSdW4nKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEzNyw3ICsxMzcs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
YnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRS
dW46ICJmb28iLCBlbmRSdW46IDF9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJy
b3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1
bicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFN0YXJ0
UnVuJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJp
dmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRS
dW46ICJmb28ifSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkRW5kUnVuJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xNTYsNyArMTU2LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGknLCBm
dW4KICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
YW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogMTAwLCBlbmRSdW46IDF9KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRTdGFydFJ1bicpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTY4LDcgKzE2OCw3IEBA
IGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93
c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7bmFtZTogJ2hpJywgc3RhcnRS
dW46IDEsIGVuZFJ1bjogMTAwfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZh
bGlkRW5kUnVuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAn
SW52YWxpZEVuZFJ1bicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMTgwLDcgKzE4MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5
c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7
bmFtZTogJ2hpJywgc3RhcnRSdW46IDEsIGVuZFJ1bjogMX0pLnRoZW4oKGNvbnRlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZFRpbWVSYW5nZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRUaW1lUmFuZ2UnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFw
aScsIGZ1bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiAxLCBlbmRSdW46IDJ9
KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1J1bkNvbmZpZ01pc21hdGNoJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUnVuQ29uZmlnTWlzbWF0
Y2gnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTIxMiwyMCAr
MjEyLDIwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sg
d2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIH0pLnRoZW4oKGNvbmZp
Z1JvdykgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycs
IHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwogICAgICAgICB9KS50aGVuKCh0ZXN0UnVucykg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKICAgICAgICAg
ICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFz
aycsIHtuYW1lOiAnaGknLCBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVz
dFJ1bnNbMV1bJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwog
ICAgICAgICB9KS50aGVuKCh0YXNrKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFz
ay5uYW1lKCksICdoaScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFt
ZSgpLCAnaGknKTsKICAgICAgICAgICAgIGFzc2VydCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNoYW5n
ZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9ybSgp
LmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFz
ay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0
ZXN0MScpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMjQ0LDIyICsyNDQsMjIgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIg
cHJpdmlsZWdlZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29u
ZmlnUm93WydpZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdo
aScsIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQn
XX0pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
QW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRhc2spID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm5hbWUoKSwgJ2hp
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdoaScpOwog
ICAgICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIXRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNr
LmNhdXNlcygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suZml4ZXMo
KSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3Nv
bWUgcGxhdGZvcm0nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLm1ldHJpYygpLnRl
c3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnN0
YXJ0VGltZSgpLCAxNDQ1OTYwMDkxMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
LmVuZFRpbWUoKSwgMTQ0NTk2Njg2MTAwMCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFz
ay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suc3RhcnRUaW1lKCksIDE0NDU5NjAw
OTEwMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suZW5kVGltZSgpLCAx
NDQ1OTY2ODYxMDAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTI4MCw3ICsyODAsNyBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJv
d3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAgICB9KS50aGVuKChjb25maWdSb3cpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmln
OiBjb25maWdSb3dbJ2lkJ119KTsKICAgICAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBzdGFy
dElkID0gdGVzdFJ1bnNbMF1bJ2lkJ107CiAgICAgICAgICAgICBlbmRJZCA9IHRlc3RSdW5zWzFd
WydpZCddOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS1hbmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRS
dW46IGVuZElkfSk7CkBAIC0yODgsMTIgKzI4OCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1
bgogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1h
bmFseXNpcy10YXNrJywge25hbWU6ICdoaScsIHN0YXJ0UnVuOiBzdGFydElkLCBlbmRSdW46IGVu
ZElkfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxk
IG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5c2lzVGFzaycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0R1cGxpY2F0ZUFuYWx5
c2lzVGFzaycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgnYW5hbHlzaXNfdGFza3MnKTsKICAgICAgICAg
fSkudGhlbigodGFza3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2tzLmxlbmd0aCwgMSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMTIsNyArMzEyLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgfSkudGhlbigoY29uZmlnUm93KSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93Wydp
ZCddfSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RSdW5zKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewogICAgICAgICAgICAgICAg
IG5hbWU6ICdoaScsCiAgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCdd
LApAQCAtMzMwLDggKzMzMCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgICAg
ICBmb3IgKGxldCBzdHJhdGVneSBvZiBzdHJhdGVnaWVzKQogICAgICAgICAgICAgICAgIHN0cmF0
ZWd5SWRNYXBbc3RyYXRlZ3lbJ2lkJ11dID0gc3RyYXRlZ3k7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzdHJhdGVneUlkTWFwW3Rhc2tSb3dbJ3NlZ21lbnRhdGlvbiddXVsnbmFtZSddLCAi
dGltZSBzZXJpZXMgc2VnbWVudGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3Ry
YXRlZ3lJZE1hcFt0YXNrUm93Wyd0ZXN0X3JhbmdlJ11dWyduYW1lJ10sICJzdHVkZW50J3MgdC10
ZXN0Iik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RyYXRlZ3lJZE1hcFt0YXNr
Um93WydzZWdtZW50YXRpb24nXV1bJ25hbWUnXSwgInRpbWUgc2VyaWVzIHNlZ21lbnRhdGlvbiIp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0cmF0ZWd5SWRNYXBbdGFza1Jvd1sn
dGVzdF9yYW5nZSddXVsnbmFtZSddLCAic3R1ZGVudCdzIHQtdGVzdCIpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIApAQCAtMzQ2LDcgKzM0Niw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAg
ICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUoJ3NvbWUgcGxh
dGZvcm0nKTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RS
b3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQo
KSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5z
ID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93Wydp
ZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25z
dCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRv
cmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtp
dFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0zNzEsNyArMzcxLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdlZCBhcGkn
LCBmdW4KICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKCdzb21l
IHBsYXRmb3JtJyk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZp
cnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdDEubWV0cmljcygpWzBd
LmlkKCksIHBsYXRmb3JtOiBwbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5z
ID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93Wydp
ZCddfSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25z
dCB3ZWJraXRSZXBvc2l0b3J5Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRv
cmllcycsIHtuYW1lOiAnV2ViS2l0J30pOwogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IHdlYmtp
dFJlcG9zaXRvcnlSb3cuaWQ7CkBAIC0zODcsMTggKzM4NywxOCBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFw
aScsIGZ1bgogICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwogCiAgICAgICAgIGNvbnN0
IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2Vy
dCghdGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQoIXRhc2suaGFzUGVuZGluZ1Jl
cXVlc3RzKCkpOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suYnVncygpLCBbXSk7Ci0g
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5jYXVzZXMoKSwgW10pOwotICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFz
ay5jaGFuZ2VUeXBlKCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5wbGF0Zm9y
bSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNr
Lm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHRhc2suY2F1c2VzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0
YXNrLmZpeGVzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdl
VHlwZSgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0o
KS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CiAKICAgICAgICAgY29uc3Qg
dGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAwKTsKICAgICB9KTsKIAogICAgIGl0KCdz
aG91bGQgY3JlYXRlIGFuIGFuYWx5c2lzIHRhc2sgd2l0aCB0ZXN0IGdyb3VwIHdoZW4gY29tbWl0
IHNldCBsaXN0IGFuZCBhIHBvc2l0aXZlIHJlcGV0aXRpb24gY291bnQgaXMgc3BlY2lmaWVkJywg
YXN5bmMgKCkgPT4gewpAQCAtNDI2LDcgKzQyNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVu
CiAgICAgICAgIGxldCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlk
KTsKICAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rl
c3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0MS5tZXRyaWNzKClbMF0uaWQoKSwgcGxh
dGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CiAgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdh
aXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKIAogICAgICAgICBjb25zdCBvbmVS
ZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07CiAgICAgICAg
IGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2
MjMnfX07CkBAIC00MzYsMzggKzQzNiwzOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAg
ICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLCBlbmRSdW46IHRlc3RSdW5zWzFd
WydpZCddfSk7CiAKICAgICAgICAgY29uc3QgdGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRj
aEJ5SWQoY29udGVudFsndGFza0lkJ10pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1l
KCksICdjb25maXJtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwg
J2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAg
IGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1
c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5tZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3Qx
Jyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0
ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0
Lm9rKCF0ZXN0R3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgIGNvbnN0IGJ1aWxk
UmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDIpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFibGVJZCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSwgdHJpZ2dlcmFi
bGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3Rz
WzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkp
LCB0cmlnZ2VyYWJsZUlkKTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sw
XS50ZXN0R3JvdXAoKSwgdGVzdEdyb3VwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdyb3Vw
KTsKIAotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0
YXNrLnBsYXRmb3JtKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5w
bGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRmb3JtKCkpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5wbGF0Zm9ybSgpLCB0YXNrLnBsYXRm
b3JtKCkpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lz
VGFza0lkKCksIHRhc2suaWQoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Rz
WzFdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3RzWzBdLmFuYWx5c2lzVGFza0lkKCksIHRhc2suaWQoKSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLmFuYWx5c2lzVGFza0lkKCks
IHRhc2suaWQoKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVz
dCgpLCB0ZXN0MSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3Qo
KSwgdGVzdDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
MV0udGVzdCgpLCB0ZXN0MSk7CiAKICAgICAgICAgYXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3RzWzBd
LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1sxXS5pc0J1aWxk
KCkpOwpAQCAtNDc3LDggKzQ3Nyw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAg
IGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAg
ICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQo
KTsKICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
d2Via2l0SWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9y
UmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJr
aXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRv
cnkpLnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
Y29uZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlz
aW9uKCksICcxOTE2MjMnKTsKICAgICB9KTsKIH0pOwogCkBAIC01MDAsNyArNTAwLDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJp
dmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZv
cm0uZmluZEJ5TmFtZSgnc29tZSBwbGF0Zm9ybScpOwogICAgICAgICBjb25zdCBjb25maWdSb3cg
PSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6
IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsK
ICAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMn
LCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RS
dW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5n
dGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnlSb3cgPSBhd2FpdCBkYi5z
ZWxlY3RGaXJzdFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6ICdXZWJLaXQnfSk7CiAgICAgICAg
IGNvbnN0IHdlYmtpdElkID0gd2Via2l0UmVwb3NpdG9yeVJvdy5pZDsKQEAgLTU0OCw3ICs1NDgs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGgg
bm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBsZXQgc29tZVBsYXRmb3JtID0g
UGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CiAgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9
IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzog
dGVzdDEubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOwog
ICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycs
IHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJ1
bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0
aCwgMik7CiAKICAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3Jl
dmlzaW9uOiAnMTkxNjIyJ319OwogICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7
W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OwpAQCAtNTU4LDM4ICs1NTgsMzggQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUg
cHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1sw
XVsnaWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXX0pOwogCiAgICAgICAgIGNvbnN0IHRh
c2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CiAgICAgICAgIGFzc2VydCgh
dGFzay5oYXNSZXN1bHRzKCkpOwogICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5nUmVxdWVz
dHMoKSk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5idWdzKCksIFtdKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGFzay5maXhlcygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmNo
YW5nZVR5cGUoKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnBsYXRmb3JtKCku
bGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2subWV0
cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
dGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2su
Zml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBl
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxh
YmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNr
Lm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAndGVzdDEnKTsKIAogICAgICAgICBjb25zdCB0ZXN0
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLm5hbWUoKSwg
J0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1lKCks
ICdDb25maXJtJyk7CiAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCkpOwogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCAyKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCks
IHRyaWdnZXJhYmxlSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50
cmlnZ2VyYWJsZSgpLmlkKCksIHRyaWdnZXJhYmxlSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0c1swXS50cmlnZ2VyYWJsZSgpLmlkKCkpLCB0cmln
Z2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVx
dWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJpZ2dlcmFibGVJZCk7CiAKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3Jv
dXApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0R3Jv
dXAoKSwgdGVzdEdyb3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0udGVzdEdyb3VwKCksIHRlc3RHcm91cCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm0oKSwg
dGFzay5wbGF0Zm9ybSgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dHNbMV0ucGxhdGZvcm0oKSwgdGFzay5wbGF0Zm9ybSgpKTsKIAotICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlk
KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5hbmFseXNp
c1Rhc2tJZCgpLCB0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0c1sxXS5hbmFseXNpc1Rhc2tJZCgpLCB0YXNrLmlkKCkpOwogCi0gICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLnRlc3QoKSwgdGVzdDEpOwogCiAgICAgICAg
IGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQu
b2soIWJ1aWxkUmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTU5OSw4ICs1OTksOCBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9
IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CiAgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9z
aXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSku
cmV2aXNpb24oKSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kQ29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5
MTYyMycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0
Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAK
ICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggdGVzdCBncm91cCBh
bmQgcmVzcGVjdCB0aGUgIm5lZWRzTm90aWZpY2F0aW9uIiBmbGFnIGluIHRoZSBodHRwIHJlcXVl
c3QnLCBhc3luYyAoKSA9PiB7CkBAIC02MjgsNyArNjI4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBm
dW5jdGkKICAgICAgICAgbGV0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRm
b3JtSWQpOwogICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJv
dygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QxLm1ldHJpY3MoKVswXS5pZCgp
LCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKICAgICAgICAgY29uc3QgdGVzdFJ1bnMg
PSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lk
J119KTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0
IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKICAg
ICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjog
JzE5MTYyMyd9fTsKQEAgLTYzOCwzOCArNjM4LDM4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3Rp
CiAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1
bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3Qg
dGFzayA9IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0
KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CiAgICAgICAgIGFzc2VydCh0YXNrLmhhc1BlbmRpbmdSZXF1
ZXN0cygpKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHRhc2suY2F1c2VzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2su
Y2hhbmdlVHlwZSgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0o
KS5sYWJlbCgpLCAnc29tZSBwbGF0Zm9ybScpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5t
ZXRyaWMoKS50ZXN0KCkubGFiZWwoKSwgJ3Rlc3QxJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwodGFzay5idWdzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh0YXNrLmNhdXNlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFz
ay5maXhlcygpLCBbXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5
cGUoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCku
bGFiZWwoKSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRh
c2subWV0cmljKCkudGVzdCgpLmxhYmVsKCksICd0ZXN0MScpOwogCiAgICAgICAgIGNvbnN0IHRl
c3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IHRlc3RHcm91
cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAubmFtZSgp
LCAnQ29uZmlybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUo
KSwgJ0NvbmZpcm0nKTsKICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlmaWNh
dGlvbigpKTsKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMik7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgp
LCB0cmlnZ2VyYWJsZUlkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
dHJpZ2dlcmFibGUoKS5pZCgpLCB0cmlnZ2VyYWJsZUlkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KGJ1aWxkUmVxdWVzdHNbMF0udHJpZ2dlcmFibGUoKS5pZCgpKSwgdHJp
Z2dlcmFibGVJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJl
cXVlc3RzWzBdLnRyaWdnZXJhYmxlKCkuaWQoKSksIHRyaWdnZXJhYmxlSWQpOwogCi0gICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwot
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0R3JvdXAoKSwgdGVzdEdy
b3VwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0udGVzdEdy
b3VwKCksIHRlc3RHcm91cCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzFdLnRlc3RHcm91cCgpLCB0ZXN0R3JvdXApOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtKCks
IHRhc2sucGxhdGZvcm0oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3RzWzFdLnBsYXRmb3JtKCksIHRhc2sucGxhdGZvcm0oKSk7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5p
ZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uYW5hbHlz
aXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0uYW5hbHlzaXNUYXNrSWQoKSwgdGFzay5pZCgpKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS50ZXN0KCksIHRlc3QxKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0udGVzdCgpLCB0ZXN0MSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLnRlc3QoKSwgdGVzdDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS50ZXN0KCksIHRlc3QxKTsKIAogICAgICAg
ICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0
Lm9rKCFidWlsZFJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC02NzksNyArNjc5LDcgQEAgZGVz
Y3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJp
dmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQg
PSBidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCB3ZWJraXRSZXBv
c2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkp
LnJldmlzaW9uKCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlY29uZENvbW1p
dFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcx
OTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1p
dEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9z
aXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwog
fSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10
ZXN0cy5qcwppbmRleCAwOWNkMzdhYjQzNmNiM2E3YmI3Y2I4Zjg0OWJjYTlkZTIyN2MxNDQxLi5j
ODRmMzQ0YWZmNmQxYmFjZTBkNGJmMjAxYWIxNGU0MTdlODBhMGQ3IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10
ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTgzLDcg
KzgzLDcgQEAgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9u
cyA9IFsiMTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIH0pLnRoZW4oKGNvbmZpZ1JvdykgPT4gewog
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmln
Um93WydpZCddfSk7CiAgICAgfSkudGhlbigodGVzdFJ1bnMpID0+IHsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0UnVucy5sZW5ndGgsIDIpOwogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7CiAgICAgICAgICAgICBuYW1lOiBuYW1lLAog
ICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLApAQCAtMTM3LDcgKzEzNyw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUt
dGVzdC1ncm91cCcsIHt9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWROYW1lJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkTmFtZScpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIGNvbW1pdFNldHM6IFtbMV1dfSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgfSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkVGFzaycp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE1Myw3ICsxNTMsNyBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBy
ZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFt
ZTogJ3Rlc3QnLCB0YXNrOiAnZm9vJywgY29tbWl0U2V0czogW1sxXV19KS50aGVuKChjb250ZW50
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hl
ZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
cnJvciwgJ0ludmFsaWRUYXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJy
b3IsICdJbnZhbGlkVGFzaycpOwogICAgICAgICB9KTsKICAgICB9KTsKIApAQCAtMTYxLDcgKzE2
MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVh
dGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IDEsIHJlcGV0aXRpb25Db3VudDog
MX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCkBAIC0xNjksNyArMTY5LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0
JywgdGFzazogMSwgcmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7fX0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRzJyk7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCkBAIC0xNzcsNyArMTc3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwg
cmVwZXRpdGlvbkNvdW50OiAxLCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNv
bnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZFRhc2snKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRUYXNrJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xODUs
NyArMTg1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogMSwgcmVwZXRpdGlvbkNv
dW50OiAnZm9vJywgY29tbWl0U2V0czogeydXZWJLaXQnOiBbXX19KS50aGVuKChjb250ZW50KSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcp
OwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJv
ciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiAx
LCByZXBldGl0aW9uQ291bnQ6IC01LCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFtdfX0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcGV0aXRpb25Db3VudCcpOwogICAgICAg
ICB9KTsKICAgICB9KTsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVz
dCcsIHRhc2s6IDEsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJy
b3IsICdJbnZhbGlkVGFzaycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9y
LCAnSW52YWxpZFRhc2snKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTIxMCw3ICsyMTAs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRz
OiB7J1dlYktpdCc6IFtdfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwg
KGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnVHJpZ2dl
cmFibGVOb3RGb3VuZEZvclRhc2snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZXJyb3IsICdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7
bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnV2ViS2l0JzogW119fSku
dGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3Vs
ZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkQ29tbWl0U2V0cycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRDb21taXRTZXRz
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yMzEsNyArMjMx
LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtdGVzdC1ncm91cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25T
ZXRzOiBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge31dfSkudGhlbigo
Y29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZl
ciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjQyLDcgKzI0Miw3
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0
czogW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX1dfSkudGhlbigoY29udGVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3IsICdJbnZhbGlkUmV2aXNpb25TZXRzJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJldmlzaW9uU2V0cycpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsnRm9v
JzogW119fSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXBvc2l0b3J5Tm90Rm91
bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdSZXBvc2l0
b3J5Tm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTI2Miw3ICsyNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdy
b3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lk
LCBjb21taXRTZXRzOiB7J1dlYktpdCc6IFsnMSddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVn
ZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0
dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6
ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNldHN9KS50aGVuKChjb250ZW50KSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQn
KTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlcnJvciwgJ1JldmlzaW9uTm90Rm91bmQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yODYsNyArMjg2LDcgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFj
aGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXJyb3IsICdBbWJpZ3VvdXNSZXZpc2lvbicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0FtYmlndW91c1JldmlzaW9uJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0yOTgsNyArMjk4LDcgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91
cCcsIHtuYW1lOiAndGVzdCcsIHRhc2s6IHRhc2tJZCwgcmV2aXNpb25TZXRzfSkudGhlbigoY29u
dGVudCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBi
ZSByZWFjaGVkJyk7CiAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZXJyb3IsICdSZXZpc2lvbk5vdEZvdW5kJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnUmV2aXNpb25Ob3RGb3VuZCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEwLDcgKzMxMCw3IEBAIGRlc2Ny
aWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0c30pLnRoZW4o
KGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2
ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmlsZScpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRVcGxvYWRlZEZpbGUn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMyMSw3ICszMjEs
NyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXZpc2lvblNl
dHN9KS50aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAn
c2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRSZXBvc2l0b3J5Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFJlcG9z
aXRvcnknKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTMzMSw3
ICszMzEsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21t
aXRTZXRzOiB7J1dlYktpdCc6IFsnMTkxNjIyJywgJzE5MTYyMyddLCAnbWFjT1MnOiBbJzE1QTI4
NCddfX0pLnRoZW4oKGNvbnRlbnQpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZENvbW1pdFNldHMn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkQ29t
bWl0U2V0cycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzQ1
LDcgKzM0NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICAg
ICAgfSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAn
RHVwbGljYXRlVGVzdEdyb3VwTmFtZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvciwgJ0R1cGxpY2F0ZVRlc3RHcm91cE5hbWUnKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKQEAgLTM2Miw3ICszNjIsNyBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSBy
ZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVycm9yLCAnSW52YWxpZE93bmVyUmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChlcnJvciwgJ0ludmFsaWRPd25lclJldmlzaW9uJyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0zNzgsNyArMzc4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwog
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwg
J0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChlcnJvciwgJ0ludmFsaWRDb21taXRPd25lcnNoaXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKQEAgLTM5MywxNyArMzkzLDE3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRl
LXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAge1t3ZWJraXQuaWQo
KV06IHtyZXZpc2lvbjogJzE5MTYyMid9LCBbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4
NCd9LCBbb3duZWRKU0MuaWQoKV06IHtyZXZpc2lvbjogJ293bmVkLWpzYy05MTkxJywgb3duZXJS
ZXZpc2lvbjogJzE5MjczNid9fV07CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNr
SWQsIHJlcGV0aXRpb25Db3VudDogMSwgcmV2aXNpb25TZXRzfSk7CiAgICAgICAgIH0pLnRoZW4o
KGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGVudFsnc3RhdHVz
J10sICdPSycpOwogICAgICAgICAgICAgZ3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVz
dEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBncm91cElk
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydChy
ZXF1ZXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFyZXF1ZXN0c1swXS5p
c1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMV0uaXNCdWlsZCgpKTsKQEAg
LTQxOCwxNCArNDE4LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBjb25zdCBvd25lZEpTQyA9IFJlcG9z
aXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAg
ICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBj
b25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQw
LnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3Mp
LCAnMTVBMjg0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCB3ZWJr
aXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwg
W293bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy02MTYxJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05
MTkxJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC00NDAsMTcgKzQ0MCwxNyBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIHtbbWFjb3MuaWQoKV06IHtyZXZpc2lvbjogJzE1QTI4NCd9LCBbanNj
LmlkKCldOiB7cmV2aXNpb246ICdvd25lZC1qc2MtOTE5MScsIG93bmVyUmV2aXNpb246ICcxOTI3
MzYnfX1dOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Ny
ZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCByZXBldGl0aW9u
Q291bnQ6IDEsIHJldmlzaW9uU2V0c30pOwogICAgICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnRlbnRbJ3N0YXR1cyddLCAnT0snKTsKICAg
ICAgICAgICAgIGdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSku
dGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgZ3JvdXBJZCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGdyb3VwSWQpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAg
IGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdHNbMF0uaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghcmVxdWVzdHNbMF0uaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KHJlcXVlc3RzWzFdLmlzQnVpbGQoKSk7CkBAIC00NjUsMTMgKzQ2NSwx
MyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwogICAgICAgICAgICAgY29uc3Qgc2V0
MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJl
cXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBv
c2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdv
d25lZC1qc2MtOTE5MScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMo
KSksIFtvd25lZEpTQywgd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0
MS5yZXBvc2l0b3JpZXMoKSksIFtvd25lZEpTQywgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnb3duZWQtanNjLTYxNjEnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwogICAg
ICAgICB9KTsKICAgICB9KTsKIApAQCAtNDgyLDI4ICs0ODIsMjggQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJ
ZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBz
ZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0
MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVw
b3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEu
cmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
JzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MycpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNb
MF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9z
aXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdy
b3VwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
Lm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXAp
OwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsK
ICAgICAgICAgICAgIH0pOwpAQCAtNTIxLDI0ICs1MjEsMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAg
ICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0
IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25zdCBz
ZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtp
dF0pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJl
cG9zaXRvcnlHcm91cCgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXAubmFtZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVwb3NpdG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICd3
ZWJraXQtb25seScpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0
b3J5R3JvdXAsIHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsK
QEAgLTU1MywzMyArNTUzLDMzIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRl
c3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElk
ID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJ
ZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgp
LCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5z
ZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAu
bmVlZHNOb3RpZmljYXRpb24oKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBn
cm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJL
aXQnKVswXTsKICAgICAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuYWxsKCku
ZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVswXTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQw
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCks
IHNldDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0
LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Vi
a2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJl
cG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVm
ZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyks
IHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOwogCiAgICAgICAgICAgICAgICAgY29u
c3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0ZW0t
YW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5y
ZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91cCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91
cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5R3JvdXAubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdyb3VwKCks
IHJlcG9zaXRvcnlHcm91cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5yZXBvc2l0b3J5R3JvdXAoKSwg
cmVwb3NpdG9yeUdyb3VwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3Vw
LmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAu
YWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTYwMCwyOCArNjAwLDI4IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQn
XTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAg
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09u
ZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmlu
Z09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMmNlZGE0NWQzY2Q2M2NkZTU4ZDBkYmY1NzY3NzE0ZTAzZDkwMmU0MycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyks
ICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzU0NzFhOGRkYzFmNjYxNjYzY2NmZDFhMjljNjMzYmE1N2U4
Nzk1MzMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJl
cG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0
MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcyY2VkYTQ1ZDNjZDYzY2RlNThkMGRiZjU3Njc3MTRlMDNkOTAyZTQzJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnNTQ3MWE4ZGRjMWY2NjE2NjNjY2ZkMWEy
OWM2MzNiYTU3ZTg3OTUzMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKIAogICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3Jv
dXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1l
KCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgpLCAnc3lz
dGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDEgPSByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3Jv
dXAoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMSwgcmVw
b3NpdG9yeUdyb3VwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cDEsIHJlcG9zaXRvcnlHcm91cDApOwogICAgICAgICAgICAgICAgIGFzc2VydChy
ZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MCkpOwogICAgICAgICAgICAgICAgIGFzc2VydChy
ZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7CkBAIC02NDIs
MzIgKzY0MiwzMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRl
bnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwg
MSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3Jv
dXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90
aWZpY2F0aW9uKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVp
bGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDQpOwogCiAgICAgICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1p
dFNldCgpOwogICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRT
ZXQoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5
TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwg
bWFjb3NdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9y
aWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRo
VVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAKICAgICAgICAgICAg
ICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3Vw
KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDAubmFtZSgp
LCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3VwMCwgcmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAwLm5hbWUoKSwgJ3N5c3Rl
bS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9z
aXRvcnlHcm91cDAsIHJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwMC5hY2NlcHRzKHNldDApKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQoIXJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQxKSk7CiAKICAgICAgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAxID0gcmVxdWVzdHNbMV0ucmVwb3NpdG9yeUdy
b3VwKCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cDEubmFt
ZSgpLCAnd2Via2l0LW9ubHknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3VwMSwgcmVxdWVzdHNbM10ucmVwb3NpdG9yeUdyb3VwKCkpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXAxLm5hbWUoKSwgJ3dlYmtpdC1v
bmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cDEsIHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQoIXJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQwKSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0KHJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAgICAgICB9KTsKQEAg
LTY5MSwyOCArNjkxLDI4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAu
aWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGNv
bnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgICAgICBjb25z
dCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNX
aXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5n
T25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxvYWRl
ZEZpbGUuZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxlKV0p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwg
c2V0MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJl
cG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW1VwbG9hZGVkRmlsZS5lbnN1cmVT
aW5nbGV0b24odXBsb2FkZWRGaWxlWydpZCddLCB1cGxvYWRlZEZpbGUpXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9z
aXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSht
YWNvcykpOwogICAgICAgICAgICAgICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNzQwLDUwICs3NDAsNTAgQEAgZGVzY3JpYmUo
Jy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RHcm91cElkJ107CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3Vw
SWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3Vu
dCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNOb3RpZmljYXRpb24o
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlk
KE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmlu
ZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBs
YXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBncm91cC5idWlsZFJl
cXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsK
LQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCB0cnVlKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc0J1aWxkKCksIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc0J1aWxk
KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5p
c0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3QoKSwgdHJ1ZSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAg
ICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0
aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVS
TChzZXQxLnJlcG9zaXRvcmllcygpKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBzZXQxLmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNl
dDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNl
dCgpLCBzZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBb
d2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQw
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
UmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9y
aWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEu
Y29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25G
b3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQw
LmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFj
b3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQoIXNl
dDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC04MDUsNjAgKzgwNSw2
MCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3Vw
SWQnXTsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlv
bkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCks
IGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAu
cmVwZXRpdGlvbkNvdW50KCksIDIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVk
c05vdGlmaWNhdGlvbigpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCks
IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRl
c3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNC
dWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVp
bGQoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzQnVp
bGQoKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0uaXNU
ZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5pc1Rl
c3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzVGVz
dCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3Qo
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OworCisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNCdWlsZCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc0J1
aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJd
LmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzVdLmlzQnVpbGQoKSwgZmFsc2UpOworCisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0uaXNUZXN0KCksIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmlzVGVzdCgpLCB0cnVlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5pc1Rlc3QoKSwgdHJ1ZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNUZXN0KCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmlzVGVzdCgp
LCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNl
dCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJl
ZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10p
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVy
cmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJraXQsIG1hY29z
XSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeSht
YWNvcykpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5
KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJl
cG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNj
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KGpzYyksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVz
QnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBzZXQx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBt
YWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJv
b3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9y
eS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBb
anNjLCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
bWFjb3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEu
Y29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9z
aXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQub2soIXNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKICAgICAgICAg
ICAgIGFzc2VydCghc2V0MC5lcXVhbHMoc2V0MSkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAg
LTg4MCw2MSArODgwLDYxIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250
ZW50Wyd0ZXN0R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRHcm91cElkKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAgICAgICAgICBhc3NlcnQu
b2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2NrRGF0YS5zb21lVGVzdElkKCkpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ3JvdXAudGVzdCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRm
b3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0uaXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzNdLmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s0XS5pc1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
NV0uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1swXS5pc0J1aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzWzFdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2Up
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlz
VGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0
XS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbNV0uaXNUZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVz
dHNbMF0uY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0u
Y29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1p
dFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21t
aXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29t
bWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtq
c2MsIHdlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5j
dXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRv
cnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRvcmllcygpKSwg
W2pzYywgd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQx
LmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWls
ZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1
QTI4NCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpLCBzZXQxLmNv
bW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNl
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtNjE2MScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdvd25lZC1qc2MtOTE5
MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KGpz
YyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0
b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZp
c2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MjczNicpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNj
KSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9y
UmVwb3NpdG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZl
cnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0LCBtYWNv
c10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLmN1c3RvbVJvb3Rz
KCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5z
b3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNj
LCB3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MS5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAnMTVBMjg0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpLCBzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEuY29t
bWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVk
LWpzYy02MTYxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkyNzM2Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3Np
dG9yeShqc2MpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJl
cXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOwogICAgICAgICAgICAgYXNzZXJ0
KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTYzLDY4ICs5
NjMsNjggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGluc2VydGVkR3JvdXBJZCA9IGNvbnRlbnRbJ3Rlc3RH
cm91cElkJ107CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IGdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgp
LCBpbnNlcnRlZEdyb3VwSWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0
aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5p
ZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdy
b3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAu
bmVlZHNOb3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVz
dCgpLCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRh
LnNvbWVQbGF0Zm9ybUlkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucGxhdGZvcm0oKSwgUGxhdGZvcm0uZmluZEJ5
SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
LmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0u
aXNCdWlsZCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5p
c0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5p
c0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5p
c0J1aWxkKCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5p
c0J1aWxkKCksIGZhbHNlKTsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
LmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0u
aXNUZXN0KCksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5p
c1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNU
ZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVz
dCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5pc1Rlc3Qo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVp
bGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0u
aXNCdWlsZCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1syXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0c1szXS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0c1s0XS5pc0J1aWxkKCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc0J1aWxkKCksIGZhbHNlKTsKKworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzVGVzdCgpLCBmYWxzZSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNUZXN0KCksIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNUZXN0KCksIHRy
dWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5pc1Rl
c3QoKSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21t
aXRTZXQoKTsKICAgICAgICAgICAgIGNvbnN0IHNldDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0
MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNl
dDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBz
ZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwg
c2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW2pzYywgd2Via2l0
LCBtYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3Rz
KCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDEucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3ZWJr
aXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEuY3VzdG9tUm9v
dHMoKSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB1
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJl
cG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQw
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5j
b21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29z
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFj
b3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3Np
dG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeShtYWNv
cyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
c2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy02MTYxJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ293
bmVkLWpzYy05MTkxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5wYXRjaEZvclJl
cG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRj
aEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnMTky
NzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVw
b3NpdG9yeShqc2MpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVp
cmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0U2V0KCksIHNldDApOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzVdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJMKHNldDAucmVwb3NpdG9yaWVzKCkpLCBbanNjLCB3
ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3Jp
ZXMoKSksIFtqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNl
dDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIHVwbG9hZGVkRmls
ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnko
d2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1
aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4
NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3Mp
LCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KG1hY29zKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5
KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQt
anNjLTYxNjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShqc2MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTI3MzYnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0
b3J5KGpzYyksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVx
dWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgdHJ1ZSk7CiAgICAgICAgICAgICBhc3NlcnQo
IXNldDAuZXF1YWxzKHNldDEpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDU3LDc3ICsx
MDU3LDc3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBpbnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0
R3JvdXBJZCddOwogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCBn
cm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBl
dGl0aW9uQ291bnQoKSwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudGVzdCgp
LCBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSkpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChNb2Nr
RGF0YS5zb21lVGVzdElkKCkpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubmVlZHNO
b3RpZmljYXRpb24oKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZvcm0o
KSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnBsYXRmb3JtKCksIFBsYXRmb3JtLmZpbmRC
eUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVl
c3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sw
XS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFd
LmlzQnVpbGQoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0u
aXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10u
aXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
aXNCdWlsZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0u
aXNCdWlsZCgpLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sw
XS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFd
LmlzVGVzdCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0u
aXNUZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlz
VGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5pc1Rl
c3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uaXNUZXN0
KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc0J1
aWxkKCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFd
LmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMl0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbM10uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHNbNF0uaXNCdWlsZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNCdWlsZCgpLCBmYWxzZSk7CisKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5pc1Rlc3QoKSwgZmFsc2UpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzFdLmlzVGVzdCgpLCBmYWxzZSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNUZXN0KCksIHRydWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLmlzVGVzdCgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s0XS5pc1Rlc3Qo
KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNV0uaXNU
ZXN0KCksIHRydWUpOwogCiAgICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29t
bWl0U2V0KCk7CiAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNl
dDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBz
ZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS5jb21taXRTZXQoKSwg
c2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0uY29tbWl0U2V0KCks
IHNldDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFtqc2MsIG93bmVk
SlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAu
Y3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSks
IFtqc2MsIG93bmVkSlNDLCB3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCB1cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNl
dDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7Ci0KLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEy
ODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG1hY29zKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1
aWxkRm9yUmVwb3NpdG9yeShtYWNvcyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzZXQxLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOwotCi0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCAnb3duZWQtanNjLTYxNjEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICdvd25lZC1qc2MtOTE5MScpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkob3duZWRK
U0MpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAnMTkyNzM2Jyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9y
eShvd25lZEpTQyksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmVxdWly
ZXNCdWlsZEZvclJlcG9zaXRvcnkob3duZWRKU0MpLCB0cnVlKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICdqc2MtNjE2MScpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyks
ICdqc2MtOTE5MScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucGF0Y2hGb3JSZXBv
c2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucGF0Y2hG
b3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MS5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KGpz
YyksIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KGpzYyksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzRdLmNvbW1pdFNldCgpLCBzZXQwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1s1XS5jb21taXRTZXQoKSwgc2V0MSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZVBy
ZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQwLnJlcG9zaXRvcmllcygpKSwgW293bmVkSlNDLCBqc2Ms
IHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0
MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChzZXQxLnJlcG9zaXRv
cmllcygpKSwgW293bmVkSlNDLCBqc2MsIHdlYmtpdCwgbWFjb3NdKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDAucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IHVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmVxdWlyZXNCdWlsZEZv
clJlcG9zaXRvcnkod2Via2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoc2V0MS5yZXF1aXJlc0J1aWxkRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCB0cnVlKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1h
Y29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFj
b3MpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLmNvbW1pdEZvclJlcG9z
aXRvcnkobWFjb3MpLCBzZXQxLmNvbW1pdEZvclJlcG9zaXRvcnkobWFjb3MpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucGF0Y2hGb3JSZXBvc2l0
b3J5KG1hY29zKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHNldDEub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkobWFjb3MpLCBmYWxzZSk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksICdvd25lZC1qc2MtNjE2MScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgJ293bmVkLWpzYy05MTkx
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQx
LnBhdGNoRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHNldDAub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCAn
MTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQwLnJlcXVpcmVzQnVpbGRGb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwg
dHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXF1aXJlc0J1aWxk
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIHRydWUpOworCisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJ2pzYy02MTYxJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnko
anNjKSwgJ2pzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5w
YXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5wYXRjaEZvclJlcG9zaXRvcnkoanNjKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShqc2MpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLm93bmVyUmV2aXNpb25G
b3JSZXBvc2l0b3J5KGpzYyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHNldDAucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNjKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmVxdWlyZXNCdWlsZEZvclJlcG9zaXRvcnkoanNj
KSwgZmFsc2UpOwogICAgICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwpAQCAtMTE1NCw0NSArMTE1NCw0NSBAQCBkZXNjcmliZSgnL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
aW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDIp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC50ZXN0KCksIFRlc3QuZmluZEJ5SWQoTW9ja0Rh
dGEuc29tZVRlc3RJZCgpKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucGxhdGZv
cm0oKSwgUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLnRlc3QoKSwgVGVzdC5maW5kQnlJZChN
b2NrRGF0YS5zb21lVGVzdElkKCkpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
cm91cC5wbGF0Zm9ybSgpLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5pc0J1aWxkKCksIHRydWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmlzQnVpbGQoKSwgZmFsc2UpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzQnVpbGQoKSwgZmFsc2UpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLmlzQnVpbGQoKSwgdHJ1ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMV0uaXNCdWlsZCgpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uaXNCdWlsZCgpLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbM10uaXNCdWls
ZCgpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0u
aXNCdWlsZCgpLCBmYWxzZSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sw
XS5pc1Rlc3QoKSwgZmFsc2UpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFd
LmlzVGVzdCgpLCB0cnVlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5p
c1Rlc3QoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10uaXNU
ZXN0KCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLmlzVGVz
dCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1swXS5p
c1Rlc3QoKSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
WzFdLmlzVGVzdCgpLCB0cnVlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0c1syXS5pc1Rlc3QoKSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHNbM10uaXNUZXN0KCksIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzWzRdLmlzVGVzdCgpLCB0cnVlKTsKIAogICAgICAgICAgICAgY29uc3Qgc2V0
MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgY29uc3Qgc2V0MSA9IHJl
cXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNF0uY29tbWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChS
ZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBv
c2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMo
KSksIFttYWNvc10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJv
b3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksICcxNUEyODQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9y
UmVwb3NpdG9yeShtYWNvcyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwg
c2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwg
c2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbNF0uY29tbWl0
U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNl
dDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5yZXBvc2l0
b3JpZXMoKSksIFttYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChz
ZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgdXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0MS5jb21t
aXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
c2V0MC5wYXRjaEZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChzZXQxLnBhdGNoRm9yUmVwb3NpdG9yeShtYWNvcyksIG51bGwpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFzZXQwLmVxdWFscyhzZXQxKSk7CiAgICAgICAgIH0pOwogICAgIH0p
OwpAQCAtMTIxNyw3ICsxMjE3LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
dGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAg
ICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ1BhdGNo
Tm90QWNjZXB0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ1Bh
dGNoTm90QWNjZXB0ZWQnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTEyMzAsMjQgKzEy
MzAsMjQgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0
R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0g
YXdhaXQgUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQn
XSksIFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFz
aycpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBp
bnNlcnRlZEdyb3VwSWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRp
dGlvbkNvdW50KCksIDEpOwogICAgICAgICBhc3NlcnQub2soZ3JvdXAubmVlZHNOb3RpZmljYXRp
b24oKSk7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gZ3JvdXAuYnVpbGRSZXF1ZXN0cygpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAKICAgICAgICAgY29uc3Qgc2V0MCA9
IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNb
MV0uY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3Jp
ZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9v
dHMoKSwgW10pOwotICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCks
IFt3ZWJraXRdKTsKLSAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCks
IFtdKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChzZXQwLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3VsZCBiZSBhYmxl
IHRvIGNyZWF0ZSBhIHRlc3QgZ3JvdXAgd2l0aCBuZWVkcy1ub3RpZmljYXRpb24gZmxhZyB1bnNl
dCcsIGFzeW5jICgpID0+IHsKQEAgLTEyNTksMjQgKzEyNTksMjQgQEAgZGVzY3JpYmUoJy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgY29u
c3QgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNv
bnN0IFthbmFseXNpc1Rhc2ssIHRlc3RHcm91cHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW0FuYWx5
c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSksIFRlc3RHcm91cC5mZXRjaEZvclRh
c2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5
c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChhbmFseXNpc1Rhc2submFtZSgpLCAnb3RoZXIgdGFzaycpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEpOwogICAgICAg
ICBhc3NlcnQub2soIWdyb3VwLm5lZWRzTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBjb25zdCBy
ZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDIpOwogCiAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQo
KTsKICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOwotICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIzJyk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDAuY3VzdG9t
Um9vdHMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3Np
dG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQx
LmN1c3RvbVJvb3RzKCksIFtdKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsK
ICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgY3VzdG9tIHRlc3QgZ3JvdXAgZm9y
IGFuIGV4aXN0aW5nIGN1c3RvbSBhbmFseXNpcyB0YXNrJywgKCkgPT4gewpAQCAtMTI5Niw0MyAr
MTI5Niw0NCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHtuYW1lOiAndGVzdDInLCB0YXNrOiByZXN1
bHRbJ3Rhc2tJZCddLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIHRlc3Qs
IHJldmlzaW9uU2V0cywgcmVwZXRpdGlvbkNvdW50OiAyfSk7CiAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4gewogICAgICAgICAgICAgc2Vjb25kUmVzdWx0ID0gcmVzdWx0OwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGZpcnN0UmVzdWx0Wyd0YXNrSWQnXSwgc2Vjb25kUmVzdWx0Wyd0YXNr
SWQnXSk7CisgICAgICAgICAgICAvLyBwZyBmdW50aW9ucyB3aWxsIHJldHVybiBhbGwgZGF0YSBh
cyBzdHJpbmcsIHNvIHdlIG5lZWQgbWFrZSBzdXJlIHRoYXQgd2UgY29tcGFyZSBhcyBpbnQKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChmaXJzdFJlc3VsdFsndGFza0lk
J10pLCBwYXJzZUludChzZWNvbmRSZXN1bHRbJ3Rhc2tJZCddKSk7CiAgICAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwoW0FuYWx5c2lzVGFzay5mZXRjaEJ5SWQocmVzdWx0Wyd0YXNrSWQnXSks
IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSldKTsKICAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNr
LCB0ZXN0R3JvdXBzXSA9IHJlc3VsdDsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5
c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYW5hbHlzaXNUYXNrLm5hbWUoKSwgJ290aGVyIHRhc2snKTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBUZXN0R3JvdXAu
c29ydEJ5TmFtZSh0ZXN0R3JvdXBzKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cHNbMF0ubmFtZSgpLCAndGVzdDEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXBzWzBdLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzWzBdLm5hbWUoKSwgJ3Rlc3QxJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1swXS5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAg
ICAgICAgICBsZXQgcmVxdWVzdHMgPSB0ZXN0R3JvdXBzWzBdLmJ1aWxkUmVxdWVzdHMoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBsZXQg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IHNldDEgPSBy
ZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0
MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChzZXQwLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChz
ZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MycpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwc1sxXS5uYW1lKCksICd0
ZXN0MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHNbMV0ucmVwZXRpdGlv
bkNvdW50KCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXQwLnJl
cG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChzZXQxLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDEuY3VzdG9tUm9vdHMoKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXBzWzFdLm5hbWUoKSwgJ3Rlc3QyJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwc1sxXS5yZXBldGl0aW9uQ291bnQoKSwgMik7CiAgICAg
ICAgICAgICByZXF1ZXN0cyA9IHRlc3RHcm91cHNbMV0uYnVpbGRSZXF1ZXN0cygpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgIHNldDAgPSBy
ZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKICAgICAgICAgICAgIHNldDEgPSByZXF1ZXN0c1sxXS5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uY29t
bWl0U2V0KCksIHNldDApOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sz
XS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNldDAu
cmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
c2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHNl
dDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0
MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdHNbMl0uY29tbWl0
U2V0KCksIHNldDApOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXF1ZXN0
c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5q
cwppbmRleCA0M2I0MDdlY2E5ZGQwMjlkYWFhYjg0NjM3YTZkYzEyNTYzZGYxNTkxLi5iNTdhMDIx
MWU2ODdmOWEzYzcyNzRjNzc0OWI2ZDVlMWZmYWFkYTFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0
dXMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCkBAIC0zOSwxMyArMzksMTMgQEAgZGVzY3JpYmUo
Ii9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVu
cycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJv
d3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21lYW5fY2FjaGUnXSwgMTEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0
bGllciddLCBmYWxzZSk7CiAgICAgICAgICAgICBpZCA9IHJ1blJvd3NbMF1bJ2lkJ107CiAgICAg
ICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewpAQCAtNTMsMTAgKzUzLDEwIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdl
ZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAg
ICAgICAgIH0pLnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5Sb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsn
bWVhbl9jYWNoZSddLCAxMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsn
aXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwg
dHJ1ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02NSwxMSArNjUsMTEgQEAgZGVzY3Jp
YmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50
aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3Rf
cnVucycpOwogICAgICAgICB9KS50aGVuKChydW5Sb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIFJlbW90ZUFQSS5jbGVhckNvb2tpZXMoKTsKQEAgLTc3LDcg
Kzc3LDcgQEAgZGVzY3JpYmUoIi9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQo
ZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ludmFsaWRUb2tlbicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC04NSwxOCArODUsMTggQEAgZGVzY3JpYmUoIi9wcml2aWxl
Z2VkLWFwaS91cGRhdGUtcnVuLXN0YXR1cyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgcmV0dXJu
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwogICAgICAgICB9KS50aGVuKChyZXNwb25z
ZSkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxs
KCd0ZXN0X3J1bnMnKTsKICAgICAgICAgfSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0
aFN0YXR1cygnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzJywge3Rva2VuOiAnYmFk
J30pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSwg
J3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFRva2VuJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsICdJbnZhbGlkVG9rZW4nKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKQEAgLTEwNSwyMyArMTA1LDIzIEBAIGRlc2NyaWJlKCIvcHJpdmlsZWdlZC1h
cGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHJldHVybiBhZGRC
dWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKICAgICAgICAg
fSkudGhlbigocnVuUm93cykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Mu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRf
b3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1b
J21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycsIHsncnVuJzogcnVuUm93c1swXVsn
aWQnXSwgJ21hcmtlZE91dGxpZXInOiB0cnVlfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0p
LnRoZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291
dGxpZXInXSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocnVuUm93cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3NbMF1bJ21h
cmtlZF9vdXRsaWVyJ10sIHRydWUpOwogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBydW5Sb3dzWzBdWydpZCdd
LCAnbWFya2VkT3V0bGllcic6IGZhbHNlfSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CiAgICAgICAgIH0pLnRo
ZW4oKHJ1blJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxp
ZXInXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJ1blJvd3MubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChydW5Sb3dzWzBdWydtYXJr
ZWRfb3V0bGllciddLCBmYWxzZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRl
eCAwMjExNmVkOGQ4YmJlOTIwZGJmMThkNjE3ZThmOTU5MzJjNzgzNTk5Li4yMmZkMGZlYzZlMzRi
MThiYzIxYTlkYmRhNWI5YTE1YzE0NmE4NTkwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRl
c3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTc5LDcgKzc5LDcgQEAgYXN5
bmMgZnVuY3Rpb24gY3JlYXRlQW5hbHlzaXNUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucyA9IFsi
MTkxNjIyIiwgIjE5MTYyMyJdKQogICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClb
MF0uaWQoKSwgcGxhdGZvcm06IHBsYXRmb3JtLmlkKCl9KTsKICAgICBjb25zdCB0ZXN0UnVucyA9
IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQn
XX0pOwogCi0gICAgYXNzZXJ0LmVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CiAgICAgY29uc3QgY29udGVudCA9IGF3
YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgewog
ICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10s
CkBAIC0xNjUsMjAgKzE2NSwyMCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24oKXsKICAgICAgICAgY29uc3QgaW5zZXJ0ZWRHcm91cElkID0g
cmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwogCiAgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2Fp
dCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICBjb25zdCBncm91cCA9IHRl
c3RHcm91cHNbMF07Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdy
b3VwSWQpOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEp
OwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwgdHJ1ZSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5pZCgpLCBpbnNlcnRlZEdyb3VwSWQp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAucmVwZXRpdGlvbkNvdW50KCksIDEp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXAubmVlZHNOb3RpZmljYXRpb24oKSwg
dHJ1ZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0aW9uU2VudEF0KCkpOwog
CiAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlbnRBdCA9IG5ldyBEYXRlOwogICAgICAgICBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91
cDogaW5zZXJ0ZWRHcm91cElkLCBuZWVkc05vdGlmaWNhdGlvbjogZmFsc2UsIG5vdGlmaWNhdGlv
blNlbnRBdDogbm90aWZpY2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCl9KTsKIAogICAgICAgICBj
b25zdCB1cGRhdGVkR3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRb
J3Rhc2tJZCddLCB0cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHMubGVu
Z3RoLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0ubmVlZHNOb3Rp
ZmljYXRpb24oKSwgZmFsc2UpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1sw
XS5ub3RpZmljYXRpb25TZW50QXQoKS50b0lTT1N0cmluZygpLCBub3RpZmljYXRpb25TZW50QXQu
dG9JU09TdHJpbmcoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBz
Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBd
Lm5lZWRzTm90aWZpY2F0aW9uKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHVwZGF0ZWRHcm91cHNbMF0ubm90aWZpY2F0aW9uU2VudEF0KCkudG9JU09TdHJpbmcoKSwgbm90
aWZpY2F0aW9uU2VudEF0LnRvSVNPU3RyaW5nKCkpOwogICAgIH0pOwogCiAgICAgaXQoJ3Nob3Vs
ZCBiZSBhYmxlIHRvIHVwZGF0ZSAibmVlZHNfbm90aWZpY2F0aW9uIiBmaWVsZCB0byB0cnVlJywg
YXN5bmMgKCkgPT4gewpAQCAtMTkwLDE4ICsxOTAsMTggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS91cGRhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgIGNvbnN0IGluc2Vy
dGVkR3JvdXBJZCA9IHJlc3VsdFsndGVzdEdyb3VwSWQnXTsKIAogICAgICAgICBjb25zdCB0ZXN0
R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayhyZXN1bHRbJ3Rhc2tJZCddLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgY29u
c3QgZ3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwotICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQo
KSwgaW5zZXJ0ZWRHcm91cElkKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRp
b25Db3VudCgpLCAxKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm5lZWRzTm90aWZpY2F0
aW9uKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5uZWVkc05v
dGlmaWNhdGlvbigpLCBmYWxzZSk7CiAgICAgICAgIGFzc2VydC5vayghZ3JvdXAubm90aWZpY2F0
aW9uU2VudEF0KCkpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQsIG5lZWRzTm90aWZp
Y2F0aW9uOiB0cnVlfSk7CiAKICAgICAgICAgY29uc3QgdXBkYXRlZEdyb3VwcyA9IGF3YWl0IFRl
c3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydC5lcXVh
bCh1cGRhdGVkR3JvdXBzWzBdLm5lZWRzTm90aWZpY2F0aW9uKCksIHRydWUpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5uZWVkc05vdGlmaWNhdGlvbigpLCB0cnVl
KTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmljYXRpb25TZW50QXQoKSk7CiAgICAg
fSk7CiAKQEAgLTIxNCwxMCArMjE0LDEwIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBk
YXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNlcnRlZEdyb3Vw
SWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9
IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNvbnN0IGdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlkKCksIGluc2Vy
dGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVl
c3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3VwLmlkKCksIGlu
c2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cC5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICAgICAgYXNzZXJ0Lm9rKCFncm91cC5ub3RpZmlj
YXRpb25TZW50QXQoKSk7CiAKICAgICB9KTsKQEAgLTIzMSwyMiArMjMxLDIyIEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAg
ICBjb25zdCBpbnNlcnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAg
ICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0
Wyd0YXNrSWQnXSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0
aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CiAgICAgICAgIGNvbnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChncm91cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKIAogICAgICAgICBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91
cDogaW5zZXJ0ZWRHcm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAg
ICAgbGV0IHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3Vs
dFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5s
ZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRl
ZEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdy
b3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAgICAgIGF3YWl0IFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNl
cnRlZEdyb3VwSWQsIG1heU5lZWRNb3JlUmVxdWVzdHM6IGZhbHNlfSk7CiAKICAgICAgICAgdXBk
YXRlZEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQn
XSwgdHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVz
dHMoKSwgZmFsc2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5t
YXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQg
Y2xlYXIgIm1heV9uZWVkX21vcmVfcmVxdWVzdHMiIHdoZW4gaGlkaW5nIGEgdGVzdCBncm91cCcs
IGFzeW5jICgpID0+IHsKQEAgLTI1OCwyMiArMjU4LDIyIEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvdXBkYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbigpewogICAgICAgICBjb25zdCBpbnNl
cnRlZEdyb3VwSWQgPSByZXN1bHRbJ3Rlc3RHcm91cElkJ107CiAKICAgICAgICAgY29uc3QgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2socmVzdWx0Wyd0YXNrSWQnXSwg
dHJ1ZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIGNv
bnN0IGdyb3VwID0gdGVzdEdyb3Vwc1swXTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChncm91cC5tYXlOZWVk
TW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vw
LmlkKCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91
cC5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKIAogICAgICAgICBhd2FpdCBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtdGVzdC1ncm91cCcsIHtncm91cDogaW5zZXJ0ZWRH
cm91cElkLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiB0cnVlfSk7CiAKICAgICAgICAgbGV0IHVwZGF0
ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10s
IHRydWUpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwot
ICAgICAgICBhc3NlcnQuZXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3Rz
KCksIHRydWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5tYXlO
ZWVkTW9yZVJlcXVlc3RzKCksIHRydWUpOwogCiAgICAgICAgIGF3YWl0IFByaXZpbGVnZWRBUEku
c2VuZFJlcXVlc3QoJ3VwZGF0ZS10ZXN0LWdyb3VwJywge2dyb3VwOiBpbnNlcnRlZEdyb3VwSWQs
IGhpZGRlbjogdHJ1ZX0pOwogCiAgICAgICAgIHVwZGF0ZWRHcm91cHMgPSBhd2FpdCBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHJlc3VsdFsndGFza0lkJ10sIHRydWUpOwotICAgICAgICBhc3NlcnQu
ZXF1YWwodXBkYXRlZEdyb3Vwcy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQuZXF1YWwodXBk
YXRlZEdyb3Vwc1swXS5tYXlOZWVkTW9yZVJlcXVlc3RzKCksIGZhbHNlKTsKLSAgICAgICAgYXNz
ZXJ0LmVxdWFsKHVwZGF0ZWRHcm91cHNbMF0uaXNIaWRkZW4oKSwgdHJ1ZSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh1cGRhdGVkR3JvdXBzWzBdLm1heU5lZWRNb3JlUmVxdWVzdHMoKSwgZmFs
c2UpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXBkYXRlZEdyb3Vwc1swXS5pc0hpZGRl
bigpLCB0cnVlKTsKICAgICB9KTsKIH0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwbG9hZC1maWxlLXRlc3RzLmpzCmluZGV4IGUwZjhh
MjhkZmU2MTMxMjg5YTkyNjE2OWQxMTg5MTY5MGJkZmFmYjAuLjQ3ZTkzOGEyMzM0OTg5Mjc0YTFi
OTBiN2VhZDcxNDlhN2QwOTg0ZDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBsb2FkLWZpbGUtdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGxv
YWQtZmlsZS10ZXN0cy5qcwpAQCAtMjcsNyArMjcsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQt
YXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICByZXR1cm4gUHJpdmlsZWdl
ZEFQSS5zZW5kUmVxdWVzdCgndXBsb2FkLWZpbGUnLCB7fSwge3VzZUZvcm1EYXRhOiB0cnVlfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdzaG91bGQgbmV2ZXIgYmUg
cmVhY2hlZCcpOwogICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlcnJvciwgJ05vRmlsZVNwZWNpZmllZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGVycm9yLCAnTm9GaWxlU3BlY2lmaWVkJyk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVx
dWVzdCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVl
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplTGltaXRFeGNlZWRlZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplTGltaXRFeGNl
ZWRlZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtNTEsMTUg
KzUxLDE1IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNwb25zZVsndXBsb2FkZWRGaWxl
J107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdp
ZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQs
IHVwbG9hZGVkRmlsZS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXpl
LCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5zaXplLCB1cGxvYWRlZEZpbGUuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAz
ZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlLnNoYTI1Nik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMF0uaWQsIHBhcnNlSW50KHVwbG9hZGVkRmlsZS5pZCkpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5N
QiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUuc2l6ZSkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmls
ZS5maWxlbmFtZSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5leHRl
bnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5z
aGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdl
ZDVlMDIyMWNlNmQ4NGI1Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sw
XS5zaGEyNTYsIHVwbG9hZGVkRmlsZS5zaGEyNTYpOwogICAgICAgICB9KTsKICAgICB9KTsKIApA
QCAtNzksMTYgKzc5LDE2IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB1cGxvYWRlZEZpbGUyID0gcmVzcG9uc2VbJ3Vw
bG9hZGVkRmlsZSddOwogICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndXBsb2FkZWRf
ZmlsZXMnLCAnaWQnKTsKICAgICAgICAgfSkudGhlbigocm93cykgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5pZCwgdXBsb2FkZWRGaWxlMS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5zaXplLCBsaW1pdEluTUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5zaXplLCB1cGxvYWRlZEZpbGUxLnNpemUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQw
MjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNoYTI1
Nik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEsIHVw
bG9hZGVkRmlsZTIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUlu
dCh1cGxvYWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFy
c2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIHBhcnNlSW50KHVw
bG9hZGVkRmlsZTEuc2l6ZSkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0uZmlsZW5hbWUsICdzb21lLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1NmVjMThmMTE2MjQwMjU5
MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZkODRiNScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRlZEZpbGUxLnNo
YTI1Nik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0xMDgsMTYgKzEwOCwxNiBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgdXBsb2FkZWRGaWxlMiA9IHJlc3BvbnNlWyd1cGxvYWRlZEZpbGUnXTsKICAgICAgICAg
ICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAg
IH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodXBsb2Fk
ZWRGaWxlMSwgdXBsb2FkZWRGaWxlMik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVk
RmlsZTEuaWQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJ
bk1CICogMTAyNCAqIDEwMjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6
ZSwgdXBsb2FkZWRGaWxlMS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LmZpbGVuYW1lLCAnc29tZS5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUxLmZpbGVuYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0
MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbCh1cGxvYWRlZEZpbGUxLCB1cGxvYWRlZEZpbGUyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5pZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMS5pZCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJvd3NbMF0uc2l6ZSksIGxp
bWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUxLnNpemUpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCB1cGxv
YWRlZEZpbGUxLmZpbGVuYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
WzBdLmV4dGVuc2lvbiwgJy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
b3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVmYjAzZDc3YjI0MzUx
MWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzBdLnNoYTI1NiwgdXBsb2FkZWRGaWxlMS5zaGEyNTYpOwogICAgICAgICB9KTsKICAg
ICB9KTsKIApAQCAtMTM5LDI2ICsxMzksMjYgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91
cGxvYWQtZmlsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHVwbG9hZGVkRmlsZTIgPSBy
ZXNwb25zZVsndXBsb2FkZWRGaWxlJ107CiAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxs
KCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwodXBsb2FkZWRGaWxlMS5pZCwgdXBsb2FkZWRGaWxl
Mi5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uaWQsIHVwbG9hZGVkRmlsZTEuaWQpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uaWQsIHVwbG9hZGVkRmlsZTIuaWQpOworICAgICAg
ICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHVwbG9hZGVkRmlsZTEuaWQsIHVwbG9hZGVkRmls
ZTIuaWQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmlkLCBwYXJzZUludCh1cGxv
YWRlZEZpbGUxLmlkKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1sxXS5p
ZCwgcGFyc2VJbnQodXBsb2FkZWRGaWxlMi5pZCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXS5maWxlbmFtZSwgdXBsb2FkZWRGaWxlMS5maWxlbmFtZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1sxXS5maWxlbmFtZSwgJ290aGVyLmRhdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsIHVwbG9hZGVkRmlsZTIuZmlsZW5hbWUp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21l
LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUs
IHVwbG9hZGVkRmlsZTEuZmlsZW5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMV0uZmlsZW5hbWUsICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCB1cGxvYWRlZEZpbGUyLmZpbGVuYW1lKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgbGltaXRJbk1CICogMTAyNCAqIDEw
MjQpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2l6ZSwgdXBsb2FkZWRGaWxl
MS5zaXplKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNpemUsIHVwbG9hZGVk
RmlsZTIuc2l6ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCByb3dz
WzFdLnNpemUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCAnNTI1
NmVjMThmMTE2MjQwMjU5MDVkMDU3ZDZiZWZiMDNkNzdiMjQzNTExYWM1Zjc3ZWQ1ZTAyMjFjZTZk
ODRiNScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2hhMjU2LCB1cGxvYWRl
ZEZpbGUxLnNoYTI1Nik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaGEyNTYs
IHVwbG9hZGVkRmlsZTIuc2hhMjU2KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LnNoYTI1Niwgcm93c1sxXS5zaGEyNTYpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF0uZXh0ZW5zaW9uLCAnLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0u
ZXh0ZW5zaW9uLCAnLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KHJvd3NbMF0uc2l6ZSksIGxpbWl0SW5NQiAqIDEwMjQgKiAxMDI0KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxv
YWRlZEZpbGUxLnNpemUpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUlu
dChyb3dzWzBdLnNpemUpLCBwYXJzZUludCh1cGxvYWRlZEZpbGUyLnNpemUpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNpemUsIHJvd3NbMV0uc2l6ZSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYy
NDAyNTkwNWQwNTdkNmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsIHVwbG9hZGVkRmls
ZTEuc2hhMjU2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNoYTI1
NiwgdXBsb2FkZWRGaWxlMi5zaGEyNTYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uc2hhMjU2LCByb3dzWzFdLnNoYTI1Nik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5leHRlbnNpb24sICcuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93c1sxXS5leHRlbnNpb24sICcuZGF0Jyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3Vw
bG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAg
ICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zaXplLCBsaW1pdElu
TUIgKiAxMDI0ICogMTAyNCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5taW1l
LCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5maWxlbmFtZSwgJ3NvbWUub3RoZXIudGFyLmd6NScpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uZXh0ZW5zaW9uLCAnLnRhci5nejUnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzWzBdLnNoYTI1NiwgJzUyNTZlYzE4ZjExNjI0MDI1OTA1ZDA1N2Q2YmVm
YjAzZDc3YjI0MzUxMWFjNWY3N2VkNWUwMjIxY2U2ZDg0YjUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocm93c1swXS5zaXplKSwgbGltaXRJbk1CICogMTAyNCAqIDEwMjQpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0ubWltZSwgJ2FwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0u
ZmlsZW5hbWUsICdzb21lLm90aGVyLnRhci5nejUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLmV4dGVuc2lvbiwgJy50YXIuZ3o1Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocm93c1swXS5zaGEyNTYsICc1MjU2ZWMxOGYxMTYyNDAyNTkwNWQwNTdk
NmJlZmIwM2Q3N2IyNDM1MTFhYzVmNzdlZDVlMDIyMWNlNmQ4NGI1Jyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAg
ICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwg
J3NvbWUuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxldGVk
X2F0LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAn
b3RoZXIuZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5kZWxldGVkX2F0
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmZpbGVuYW1lLCAnYW5v
dGhlci5kYXQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzJdLmRlbGV0ZWRfYXQs
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmZpbGVuYW1lLCAnc29tZS5k
YXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRf
YXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5h
bWUsICdvdGhlci5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFd
LmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
Ml0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pCiAgICAgfSk7CiAKQEAg
LTIxNywxNCArMjE3LDE0IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1
ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxlOiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9
KTsKICAgICAgICAgfQogICAgICAgICBsZXQgcm93cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndXBs
b2FkZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENv
dW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCBzcGxpdENvdW50
KTsKIAogICAgICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBUZW1wb3JhcnlGaWxlLm1ha2VUZW1w
b3JhcnlGaWxlT2ZTaXplSW5NQignbGltaXQuZGF0JywgbGltaXRJbk1CLCAnYScpOwogICAgICAg
ICBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxvYWQtZmlsZScsIHtuZXdGaWxl
OiBzdHJlYW19LCB7dXNlRm9ybURhdGE6IHRydWV9KTsKICAgICAgICAgcm93cyA9IGF3YWl0IGRi
LnNlbGVjdEFsbCgndXBsb2FkZWRfZmlsZXMnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Mu
bGVuZ3RoLCBzcGxpdENvdW50ICsgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
Lmxlbmd0aCwgc3BsaXRDb3VudCArIDEpOwogICAgICAgICBjb25zdCBkZWxldGVkRmlsZXMgPSBy
b3dzLmZpbHRlcigocm93KSA9PiByb3dbJ2RlbGV0ZWRfYXQnXSk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChkZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChkZWxldGVkRmlsZXMubGVuZ3RoLCAxNik7CiAgICAgfSk7CiAKICAgICBpdCgnc2hvdWxkIG5v
dCBwcnVuZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBkZWxldGVkJywgYXN5bmMgKCkgPT4gewpAQCAt
MjgxLDcgKzI4MSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgndXBsb2FkLWZpbGUnLCB7bmV3RmlsZTogc3RyZWFtfSwge3VzZUZvcm1EYXRhOiB0cnVlfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVy
IGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRlZCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvciwgJ0ZpbGVTaXplUXVvdGFFeGNlZWRl
ZCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzEyLDEzICsz
MTIsMTMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS91cGxvYWQtZmlsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gZGIuc2Vs
ZWN0QWxsKCd1cGxvYWRlZF9maWxlcycsICdpZCcpOwogICAgICAgICB9KS50aGVuKChyb3dzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdhbm90aGVyLmRhdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0uZGVsZXRlZF9hdCwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uZmlsZW5hbWUsICdzb21lLnBhdGNoJyk7CisgICAgICAgICAg
ICBhc3NlcnQubm90U3RyaWN0RXF1YWwocm93c1swXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmZpbGVuYW1lLCAnb3RoZXIucGF0Y2gn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzFdLmRlbGV0ZWRfYXQsIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZmlsZW5hbWUsICdh
bm90aGVyLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMl0uZGVs
ZXRlZF9hdCwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zNDYsMTMgKzM0Niwx
MyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RB
bGwoJ3VwbG9hZGVkX2ZpbGVzJywgJ2lkJyk7CiAgICAgICAgIH0pLnRoZW4oKHJvd3MpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290LnRhci5neicpOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3RoZXIuZGF0Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1syXS5kZWxldGVkX2F0LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5maWxlbmFtZSwgJ3NvbWUucGF0Y2gnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmRlbGV0ZWRfYXQsIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMV0uZmlsZW5hbWUsICdyb290LnRhci5neicpOworICAg
ICAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHJvd3NbMV0uZGVsZXRlZF9hdCwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5maWxlbmFtZSwgJ2Fub3Ro
ZXIuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1syXS5kZWxldGVk
X2F0LCBudWxsKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTM4Miw3ICszODIsNyBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL3VwbG9hZC1maWxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywg
e25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAg
ICAgICAgICAgICB9LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoZXJyb3IsICdGaWxlU2l6ZVF1b3RhRXhjZWVkZWQnKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJh
dGlvbnMuanMKaW5kZXggNThiNTExMzExOWJmNjEwYzQ3ZTI4NDdmYTA3MzA3ZTFlNWFmMmY2Zi4u
MTliOWMxMWZmMGNmM2M0YWYzYzkyNDNhOTAzMTk0Mjk2M2YzNzQ1MyAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJh
dGlvbnMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNv
dXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMKQEAgLTU2LDcgKzU2LDcgQEAgYXN5bmMgZnVuY3Rp
b24gYXNzZXJ0VGhyb3dzKGV4cGVjdGVkRXJyb3IsIHRlc3RGdW5jdGlvbikKICAgICAgICAgICAg
IGF3YWl0IHRlc3RGdW5jdGlvbigpCiAgICAgfSBjYXRjaChlcnJvcikgewogICAgICAgICB0aHJv
d25FeGNlcHRpb24gPSB0cnVlOwotICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3IsIGV4cGVjdGVk
RXJyb3IpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXJyb3IsIGV4cGVjdGVkRXJyb3Ip
OwogICAgIH0KICAgICBhc3NlcnQub2sodGhyb3duRXhjZXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3RlbXBvcmFy
eS1maWxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvdGVtcG9yYXJ5LWZpbGUuanMKaW5kZXggN2I4NGIyNGJmZTZhODgzN2VlYzc0MjdjODc2MGU0
YjIwMWRkYjBjNy4uMjYyYjJmZDRlMTcyMGI2MzU2NjhiNjZlMGQ4ZWI4NzVkMDg2MDg5ZiAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
dGVtcG9yYXJ5LWZpbGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9yZXNvdXJjZXMvdGVtcG9yYXJ5LWZpbGUuanMKQEAgLTEyLDcgKzEyLDcgQEAgY2xhc3Mg
VGVtcG9yYXJ5RmlsZSB7CiAgICAgICAgIGxldCBtZWdhYnl0ZVN0cmluZyA9IGNoYXJhY3RlclRv
RmlsbDsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKQogICAgICAgICAgICAg
bWVnYWJ5dGVTdHJpbmcgPSBtZWdhYnl0ZVN0cmluZyArIG1lZ2FieXRlU3RyaW5nOwotICAgICAg
ICBhc3NlcnQuZXF1YWwobWVnYWJ5dGVTdHJpbmcubGVuZ3RoLCAxMDI0ICogMTAyNCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChtZWdhYnl0ZVN0cmluZy5sZW5ndGgsIDEwMjQgKiAxMDI0
KTsKIAogICAgICAgICBsZXQgY29udGVudCA9ICcnOwogICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IHNpemVJbk1COyBpKyspCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJs
ZS10ZXN0cy5qcwppbmRleCA2MDRkYTczNGRhMGNlM2IwY2VjMGIwOTVhZmY5MDE1Y2RkOTc3MWQ5
Li40NTBmMGMzYTgzMzZmNTRkZmYyZGZmOGMwMTk2OGQ5MDRlZWVmNjA2IDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTExLDggKzExLDggQEAg
Y29uc3QgTW9ja0xvZ2dlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stbG9nZ2VyLmpzJyku
TW9ja0xvZ2dlcjsKIAogZnVuY3Rpb24gYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdCwg
bWV0aG9kLCB1cmwsIGNvbnRlbnQpCiB7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0aG9k
LCBtZXRob2QpOwotICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7CisgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOwogICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50KTsK
IH0KIApAQCAtNDAsNDUgKzQwLDQ1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0Rh
dGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6IDcw
MiwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgotICAgICAg
ICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVp
bGQtcmVxdWVzdC1pZCc6IDcwMiwgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRl
ci0xJ319KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3
MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1v
Y2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCkudHJpZ2dlcmFibGVO
YW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0
ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC05NywzOCArOTcsMzggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoeydidWlsZHMnIDog
W01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVu
bmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5p
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2Vy
YWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpLnRyaWdn
ZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
Y29tcGxldGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVk
dWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIApAQCAtMTQ3LDcwICsxNDcsNzAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA5OTl9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
Lm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3Jj
ZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnNzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5
OX0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRl
cklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIgMicpLCBidWlsZFJl
cXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5y
ZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0Rh
dGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3Rz
LzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTM0OSw2MiArMzQ5LDYyIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwLCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Nik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJv
bWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygp
LCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0Nv
bmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCkBAIC00MjMsNzAgKzQyMyw3MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHti
dWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJl
cXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzog
JzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzog
JzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAg
ICAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0Jywg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUt
YnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMiwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0Rh
dGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVl
c3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdv
QnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkcmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8x
NycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01MDUsNTAgKzUwNSw1MCBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRp
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMCwgYnVpbGRib3RCdWlsZFJlcXVlc3RJZDogMTd9
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9y
VHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCku
dHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1
bm5pbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWls
ZGVyLTEnLCAxMjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtNTcwLDg2ICs1NzAsODYg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDIsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6
IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydi
dWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9
KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
IDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLXNvbWUtYnVpbGRlci0yJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0
aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNv
bWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7
J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyLCBi
dWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXIgMicpLCBidWlsZFJlcXVlc3RJZDogNzEwLCBidWlsZGJvdEJ1aWxkUmVxdWVz
dElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMyku
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2Vy
YWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2Vy
YWJsZU5hbWUpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDEyMykpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
cmVxdWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMiku
c3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29t
cGxldGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVp
bGRlci0xJywgMTIzKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1
ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC02NzEsOTEgKzY3MSw5MSBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyIDInKSwgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDEnLCAn
anNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDEnLCAn
anNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAg
ICAgICAgICAgIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXIt
Mid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZl
KCdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3Jj
ZS1zb21lLWJ1aWxkZXItMScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J2lkJzogJzcxMScsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzog
J2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkyNzM2Jywg
J29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMScsICdmb3JjZXNj
aGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTEsIGJ1aWxkYm90QnVpbGRSZXF1
ZXN0SWQ6IDE3fSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyks
IGJ1aWxkUmVxdWVzdElkOiA3MDEsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0SWQ6IDE3fSkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MTB9KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlciAyJyksIGJ1
aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNl
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCku
c3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51
bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwg
J3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3Rh
dHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEy
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdy
dW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0
YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJz
KCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMTI0KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAn
cGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0
cy8xNycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlciAyJywgMTI0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTApLnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRy
ZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCks
IG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC03NzYsNjAgKzc3Niw2
MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNv
bWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9y
Y2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1
aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVz
dHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29z
JzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKCdP
SycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDAsIGJ1aWxkYm90QnVpbGRSZXF1ZXN0
SWQ6IDE3fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVz
dHNbNF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFi
bGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFi
bGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVx
dWVzdHMvMTcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgp
LCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVk
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJl
cXVlc3RzLzE3Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTApLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTg1NCwyNyArODU0LDI3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIp
OwogICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAg
ICAgICAgICAgICAgICAgICB7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BPU1QnLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3
MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksCiAgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMSwgYnVp
bGRib3RCdWlsZFJlcXVlc3RJZDogMTd9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAogICAgICAgICAgICAg
ICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
NzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAtODgzLDIw
ICs4ODMsMjAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCiAgICAgICAg
ICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKICAgICAg
ICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAt
OTE4LDU4ICs5MTgsNTggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVp
bGRlci0xJykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgICAg
ICB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAx
LCBidWlsZGJvdEJ1aWxkUmVxdWVzdElkOiAxN30pKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dl
cmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdm
YWlsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWls
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxl
ZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRy
ZXF1ZXN0cy8xNycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCks
IG51bGwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC05ODgsNDIgKzk4OCw0
MiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdw
ZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVu
ZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdn
ZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdn
ZXJhYmxlTmFtZSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
ZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC0xMDQ1LDIzICsxMDQ1LDIzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUt
YnVpbGRlci0xJyk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzEwJywg
J2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAg
ICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVy
LTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSgnT0snKTsKICAgICAgICAgICAgIH0pOwpAQCAtMTA3OSw3MSArMTA3OSw3MSBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogCi0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEuZmluaXNoZWRCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJh
YmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIo
KS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5v
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFub3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlk
cy8xJyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmV1c2UgdGhlIHJvb3Rz
IGZyb20gYSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCB3aXRoIHRoZSBzYW1lIGNvbW1pdCBzZXQn
LCBhc3luYyAoKSA9PiB7CkBAIC0xMTU4LDc4ICsxMTU4LDc4IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwg
OCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgOCk7CiAgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDgwMCk7CiAgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFu
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAg
ICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKICAgICAgICAgICAg
IGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
ICAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3Ro
ZXJDb21taXRTZXQpKTsKICAgICAgICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhh
bm90aGVyQ29tbWl0U2V0KSk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxk
cyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElk
OiA4MDB9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIGF3YWl0IEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZp
Z1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5hbWUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAg
ICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAg
ICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBkZWZlciBzY2hlZHVsaW5nIGEgYnVpbGQgcmVxdWVzdCBpZiB0aGVyZSBpcyBhICJy
dW5uaW5nIiBidWlsZCByZXF1ZXN0IHdpdGggc2FtZSBjb21taXQgc2V0LCBidXQgc2hvdWxkIHNj
aGVkdWxlIHRoZSBidWlsZCByZXF1ZXN0IGlmICJydW5uaW5nIiBidWlsZCByZXF1ZXN0IHdpdGgg
c2FtZSBjb21taXQgc2V0IGZhaWxzIGxhdGVyIG9uJywgYXN5bmMgKCkgPT4gewpAQCAtMTI0NCwx
MTQgKzEyNDQsMTE0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBs
ZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CiAgICAgICAgICAg
ICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygp
LCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5u
aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1p
dFNldC5lcXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKIAotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0
SWQ6IDgwMX0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtN
b2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKIAogICAgICAgICAgICAgYXdhaXQg
c3luY1Byb21pc2U7CiAgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmln
Z2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWls
ZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOwogICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTIzKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
CiAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdC
dWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogOTAwLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
UE9TVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVy
LTInKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5kYXRhLCB7J2lkJzogJzkwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiAnaHR0cDovL2xvY2FsaG9zdDo4MTgwL2Fw
aS91cGxvYWRlZC1maWxlLzEwMC50eHQnLAogICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0
LWlkJzogJzkwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7
CiAgICAgICAgIH0pOwpAQCAtMTM2OCw3OCArMTM2OCw3OCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
IAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDgpOwogICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg4MDApOwogICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoOTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAg
IGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAgICAgICAgICAgICBs
ZXQgYW5vdGhlckNvbW1pdFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVy
Q29tbWl0U2V0KSk7CiAgICAgICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5v
dGhlckNvbW1pdFNldCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMn
OiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIg
MicsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBhd2Fp
dCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOwog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXIt
MScpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyIDInKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
LWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
cmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
ODAwfSldfSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXIgMicsIDIpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA5MDAsIGJ1aWxkZXJJZDogM30pXX0pOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogCiAgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKICAgICAg
ICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1v
Y2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5h
bWUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDgpOwogICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDgwMCk7CiAgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDkwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAnY29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlk
cy8xJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygp
LCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
My9idWlsZHMvMTI0Jyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHVw
ZGF0ZSBidWlsZCByZXF1ZXN0cyBmcm9tIGFub3RoZXIgdHJpZ2dlcmFibGUnLCBhc3luYyAoKSA9
PiB7CkBAIC0xNTM0LDIyICsxNTM0LDIyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbWFjb3MgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYWNv
cy5uYW1lKCksICdtYWNPUycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCht
YWNvcy5uYW1lKCksICdtYWNPUycpOwogICAgICAgICAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoMTEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFt
ZSgpLCAnV2ViS2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxl
LmFsbCgpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0
IHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuYWxsKClbMF07Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJr
aXQnKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tE
YXRhLnNvbWVUZXN0SWQoKSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0
Zm9ybS5maW5kQnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwg
cGxhdGZvcm0pLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoVHJp
Z2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsK
IAogICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdy
b3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1lKCksICd3ZWJraXQtc3ZuJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMF0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQs
IG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5n
dGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFt
ZSgpLCAnd2Via2l0LXN2bicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOwogCiAgICAgICAg
ICAgICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNp
bmdsZUJ1aWxkZXIoKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
IHsKQEAgLTE1ODQsMjIgKzE1ODQsMjIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
cmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCiAgICAgICAgICAg
ICAgICAgbGV0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7CiAg
ICAgICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQoTW9ja0RhdGEu
c29tZVBsYXRmb3JtSWQoKSk7CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gVHJp
Z2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHJpZ2dlcmFibGUubmFtZSgp
LCAnYnVpbGQtd2Via2l0Jyk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlH
cm91cHMoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVt
LWFuZC1yb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uZGVz
Y3JpcHRpb24oKSwgJ0N1c3RvbSBSb290cycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVlKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1hbmQt
d2Via2l0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVw
b3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMoKSwgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0ubmFtZSgpLCAnc3lzdGVtLWFuZC1yb290cycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHNbMF0uZGVzY3JpcHRp
b24oKSwgJ0N1c3RvbSBSb290cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbbWFjb3NdKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHNDdXN0b21Sb290cygpLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwg
J3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVzKCksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMo
KSwgdHJ1ZSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2Nr
VGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0gWyBdOwpAQCAtMTYxMSwxMyArMTYxMSwxMyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBv
c2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZS5hbGwoKVswXS5yZXBvc2l0b3J5R3Jv
dXBzKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5c3RlbS1h
bmQtcm9vdHMnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5y
ZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3N5
c3RlbS1hbmQtcm9vdHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW21hY29zXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdyb3Vwc1sxXS5uYW1lKCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ3JvdXBzWzFdLnJlcG9zaXRv
cmllcygpLCBbd2Via2l0LCBtYWNvc10pOwogICAgICAgICAgICAgfSkKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0xNjMyLDEyICsxNjMyLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJh
YmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZ2V0QnVpbGRlck5hbWVUb0lE
TWFwUHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuZ2V0QnVpbGRlck5hbWVUb0lETWFwKCk7
CiAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1h
cFByb21pc2UudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSBidWlsZGVyIl0sIDEpCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVy
LTEiXSwgMikKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFw
WyJzb21lIGJ1aWxkZXIgMiJdLCAzKQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZGVyTmFtZVRvSURNYXBbIm90aGVyIGJ1aWxkZXIiXSwgNCkKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3RlciJdLCA1KQotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0s
IDYpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1h
cFsic29tZSBidWlsZGVyIl0sIDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZS1idWlsZGVyLTEiXSwgMikKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIgMiJd
LCAzKQorICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURN
YXBbIm90aGVyIGJ1aWxkZXIiXSwgNCkKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIHRlc3RlciJdLCA1KQorICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZGVyTmFtZVRvSURNYXBbImFub3RoZXIgdGVzdGVyIl0s
IDYpCiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9zLWJ1aWxkLWZldGNo
ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xz
LW9zLWJ1aWxkLWZldGNoZXItdGVzdHMuanMKaW5kZXggN2IyZTUxN2MzMWYwNTU5YTEyMTNjMTEy
YzQ5ZDRhYWRiZDI2NzFkMy4uZTMxMzNjYTRkMGU2YWJlNWJhNzViMjgxYmI3YWEwYjVjM2FjODYx
YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29s
cy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10ZXN0cy5qcwpAQCAtMTEwLDEz
ICsxMTAsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAg
ZGVzY3JpYmUoJ09TQnVpbGRlckZldGNoZXIuX2NvbXB1dGVPcmRlcicsICgpID0+IHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBjYWxjdWxhdGUgdGhlIHJpZ2h0IG9yZGVyIGZvciBhIGdpdmVuIHZhbGlk
IHJldmlzaW9uJywgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1
aWxkRmV0Y2hlcih7fSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hlci5fY29tcHV0
ZU9yZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAz
MDMyMTAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIo
JzE2RDMyMXonKSwgMTYwMzAzMjEyNik7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZmV0Y2hl
ci5fY29tcHV0ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAz
MjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzEw
LjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0ZU9yZGVyKCdTaWVycmExNkQzMicpLCAxNjAzMDAzMjAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIo
JzE2RDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChm
ZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2ZDMyMScpLCAxNjAzMDMyMTAwKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIoJzE2RDMyMXonKSwgMTYw
MzAzMjEyNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZmV0Y2hlci5fY29tcHV0
ZU9yZGVyKCcxNmQzMjFaJyksIDE2MDMwMzIxMjYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZldGNoZXIuX2NvbXB1dGVPcmRlcignMTAuMTIuMyAxNkQzMicpLCAxNjAzMDAzMjAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChmZXRjaGVyLl9jb21wdXRlT3JkZXIo
JzEwLjEyLjMgU2llcnJhMTZEMzInKSwgMTYwMzAwMzIwMCk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgdGhyb3cgYXNzZXJ0aW9uIGVycm9yIHdoZW4gZ2l2ZW4gYSBpbnZhbGlk
IHJldmlzaW9uJywgKCkgPT4gewpAQCAtMTQxLDEzICsxNDEsMTMgQEAgZGVzY3JpYmUoJ09TQnVp
bGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQ
cm9taXNlID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVp
bGQxJ10sICdeXFwuKiQnKTsKIAogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Q
cm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRp
b25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9j
ZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdidWlsZDEnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3Mu
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKIAogICAgICAgICAg
ICAgY29uc3QgZXhwZWN0ZWRSZXN1bHRzID0ge2FsbFJldmlzaW9uczogWyIxNkQzMjEiLCAiMTZF
MzIxeiIsICIxNkYzMjEiXSwgY29tbWl0c1dpdGhUZXN0YWJpbGl0eToge319OwogICAgICAgICAg
ICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnMTZEMzIxXG4x
NkUzMjF6XG5cbjE2RjMyMScpOwogICAgICAgICAgICAgY29uc3QgYnVpbGRJbmZvID0gYXdhaXQg
ZmV0Y2hDb21taXRzUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZXhwZWN0
ZWRSZXN1bHRzLCBidWlsZEluZm8pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChleHBlY3RlZFJlc3VsdHMsIGJ1aWxkSW5mbyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgcGFyc2UgdGhlIGNvbW1hbmQgb3V0cHV0IGFzIEpTT04gZm9ybWF0JywgYXN5bmMg
KCkgPT4gewpAQCAtMTU3LDEzICsxNTcsMTMgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9taXNlID0gZmV0
Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAg
ICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29t
bWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYnVpbGQxJ10pOwogCiAgICAgICAgICAgICBjb25zdCBvdXRwdXRPYmplY3Qg
PSB7YWxsUmV2aXNpb25zOiBbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCBjb21taXRz
V2l0aFRlc3RhYmlsaXR5OiB7IjE2RDMyMSI6ICJQYW5pYyJ9fTsKICAgICAgICAgICAgIGF3YWl0
IE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3V0
cHV0T2JqZWN0KSk7CiAgICAgICAgICAgICBjb25zdCBidWlsZEluZm8gPSBhd2FpdCBmZXRjaENv
bW1pdHNQcm9taXNlOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdXRwdXRPYmplY3Qs
IGJ1aWxkSW5mbyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dE9i
amVjdCwgYnVpbGRJbmZvKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTE3Myw5ICsxNzMs
OSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgY29uc3QgZmV0Y2hl
ciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxv
Z2dlcik7CiAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gZmV0Y2hlci5fY29tbWl0c1dpdGhp
blJhbmdlKFsiMTZEMzIxIiwgIjE2RTMyMXoiLCAiMTZGMzIxIl0sICJPU1giLCAxNjA0MDAwMDAw
LCAxNjA2MDAwMDAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzLmxlbmd0aCwg
Mik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5
OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJldmlzaW9uOiAnMTZFMzIxeid9KTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0c1sxXSwge3JlcG9zaXRvcnk6ICdPU1gnLCBv
cmRlcjogMTYwNTAzMjEwMCwgcmV2aXNpb246ICcxNkYzMjEnfSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcsIG9yZGVyOiAxNjA0
MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIx
MDAsIHJldmlzaW9uOiAnMTZGMzIxJ30pOwogCiAgICAgICAgIH0pOwogCkBAIC0xODMsOCArMTgz
LDggQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKICAgICAgICAgICAgIGNvbnN0IGZldGNo
ZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGwsIG51bGwsIE1vY2tTdWJwcm9jZXNzLCBs
b2dnZXIpOwogICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IGZldGNoZXIuX2NvbW1pdHNXaXRo
aW5SYW5nZShbIjE2RDMyMSIsICIxNkUzMjF6IiwgIjE2RjMyMSJdLCAiT1NYIiwgMTYwNDAwMDAw
MCwgMTYwNTAwMDAwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0cy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9y
eTogJ09TWCcsIG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRzWzBdLCB7cmVwb3NpdG9yeTogJ09TWCcs
IG9yZGVyOiAxNjA0MDMyMTI2LCByZXZpc2lvbjogJzE2RTMyMXonfSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0xOTYsMjQgKzE5NiwyNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXIn
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9
IGZldGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXQsIGFub3RoZXJPU1hD
b21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RDMyJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChNb2NrU3Vi
cHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJv
Y2Vzcy5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy53YWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVy
cmExNkUzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnBy
b2Nlc3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMyJ10pOwogICAgICAgICAg
ICAgICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBhZGRvd25lZENvbW1pdFByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1swXVsncmVwb3NpdG9yeSddLCBvc3hD
b21taXRbJ3JlcG9zaXRvcnknXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dHNbMF1bJ3JldmlzaW9uJ10sIG9zeENvbW1pdFsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHRzWzBdWydvd25lZENvbW1pdHMnXSwgb3duZWRDb21t
aXRXaXRoV2ViS2l0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0c1sxXVsn
cmVwb3NpdG9yeSddLCBhbm90aGVyT1NYQ29tbWl0WydyZXBvc2l0b3J5J10pOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRzWzFdWydyZXZpc2lvbiddLCBhbm90aGVyT1NYQ29t
bWl0WydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3Vs
dHNbMV1bJ293bmVkQ29tbWl0cyddLCBhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0cy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRzWzBdWydyZXBvc2l0b3J5J10s
IG9zeENvbW1pdFsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0c1swXVsncmV2aXNpb24nXSwgb3N4Q29tbWl0WydyZXZpc2lvbiddKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdHNbMF1bJ293bmVkQ29t
bWl0cyddLCBvd25lZENvbW1pdFdpdGhXZWJLaXQpOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRzWzFdWydyZXBvc2l0b3J5J10sIGFub3RoZXJPU1hDb21taXRbJ3Jl
cG9zaXRvcnknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdHNb
MV1bJ3JldmlzaW9uJ10sIGFub3RoZXJPU1hDb21taXRbJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0c1sxXVsnb3duZWRDb21taXRzJ10s
IGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC0yMjQsMTUgKzIyNCwxNSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZl
dGNoZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0
JywgJ2ZvcicsICdyZXZpc2lvbiddKQogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9j
YXRpb25Qcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydv
d25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZEMzInXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChNb2NrU3Vi
cHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbicsICdTaWVycmExNkQzMiddKTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vz
cy5pbnZvY2F0aW9uc1swXS5yZWplY3QoJ0ZhaWxlZCBnZXR0aW5nIG93bmVkLWNvbW1pdCcpOwog
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGFkZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQnKTsKICAgICAgICAgICAgICAgICB9LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydChlcnJvcl9vdXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0LCAnRmFpbGVkIGdldHRpbmcgb3duZWQtY29tbWl0Jyk7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChlcnJvcl9vdXRwdXQsICdG
YWlsZWQgZ2V0dGluZyBvd25lZC1jb21taXQnKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTI0NSwxNSArMjQ1LDE1IEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3QgYWRkb3duZWRD
b21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1p
dF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAKICAgICAgICAgICAgIHJl
dHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmEx
NkQzMiddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoTW9ja1N1YnByb2Nl
c3MuaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDMyJ10pOwogICAgICAgICAgICAg
ICAgIE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zWzBdLnJlc29sdmUoJ3siV2ViS2l0Ijp7IlJh
bmRvbUtleSI6ICJSYW5kb21WYWx1ZSJ9fScpOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIGFk
ZG93bmVkQ29tbWl0UHJvbWlzZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAnc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnKTsKICAgICAgICAgICAgICAgICB9
LCAoZXJyb3Jfb3V0cHV0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChlcnJvcl9v
dXRwdXQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXJyb3Jfb3V0cHV0Lm5h
bWUsICdBc3NlcnRpb25FcnJvciBbRVJSX0FTU0VSVElPTl0nKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVycm9yX291dHB1dC5uYW1lLCAnQXNzZXJ0aW9uRXJyb3In
KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQpAQCAt
MjkwLDQwICsyOTAsNDAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSkpLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJv
bT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYw
NDAwMzMwNyk7CiAgICAgICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRpb25Qcm9taXNl
ID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgICAgICBm
ZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2UgPSBmZXRjaGVyLl9mZXRjaEF2YWlsYWJsZUJ1aWxk
cygpOwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcydd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25z
WzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZENjhcblNpZXJyYTE2
RDY5XG4nKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRX
YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2
OSddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5n
aWZ5KG93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
U3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0
aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2RTMzXG5TaWVycmExNkUz
M2hcblNpZXJyYTE2RTM0Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNz
LnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzM2gn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZl
KEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVk
Q29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENv
bW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmZXRjaEF2YWlsYWJsZUJ1aWxkc1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTMzMSwyOSArMzMxLDI5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICAgIGZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzUHJvbWlz
ZSA9IGZldGNoZXIuZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlv
bnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGlu
dm9jYXRpb25zWzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkQ2OFxuU2llcnJhMTZENjlcbicpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZv
Y2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1p
dCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3Qn
LCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAg
ICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRD
b21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNz
LnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoJ1xuXG5TaWVycmExNkUzMlxuU2llcnJhMTZFMzNcblNpZXJyYTE2RTMzaFxuU2llcnJh
MTZFMzQnKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRX
YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
b3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZF
MzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJp
bmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNv
bHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2Ny
aXB0Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdT
aWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2
aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hS
ZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CkBAIC0zNzAsMzQgKzM3MCwzNCBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSByZXN1bHRzWzNd
OwogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKIAot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnlbMF1bJ293bmVy
J10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5WzBdWydv
d25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJl
cG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKIAotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydv
cmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXIn
XSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21t
aXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTAp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsnb3JkZXIn
XSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENv
bW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10pLCAx
NjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAw
MDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNp
b24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7CiAK
ICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5
MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJy
YTE2RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmEx
NkUzNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCkBAIC00MjMsNDAgKzQyMyw0MCBAQCBkZXNjcmliZSgnT1NCdWlsZEZl
dGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwog
ICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29t
bWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMz
MDcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3Jk
ZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0
aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0Y2hBdmFp
bGFibGVCdWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Q
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4
eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7
CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShy
ZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vz
cy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjkn
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9u
c1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywg
J1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUo
SlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0u
Y29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOwogICAgICAgICAgICAg
ICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJy
YUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0
Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3du
ZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNo
J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdp
ZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24n
LCAnU2llcnJhMTZFMzQnXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9y
JywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogICAgICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktp
dEFuZEphdmFTY3JpcHRDb3JlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoQXZhaWxh
YmxlQnVpbGRzUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNDY0LDI5
ICs0NjQsMjkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5m
ZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
U3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAn
YWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0u
cmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21t
aXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RDY5J10pOwogICAgICAgICAgICAgICAg
IGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2Vi
S2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2Fs
bCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5z
dHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1Np
ZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAn
cmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOwogICAgICAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAg
ICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25lZENvbW1p
dFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0Jywg
J2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25l
ZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmV0Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01MDMsMzQgKzUwMywzNCBAQCBkZXNjcmliZSgnT1NC
dWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBjb25zdCBvc3hDb21t
aXQxNkUzM2ggPSByZXN1bHRzWzNdOwogICAgICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2
RTM0ID0gcmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRS
ZXBvc2l0b3J5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFJlcG9zaXRvcnlbMF1bJ293bmVyJ10sIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeVswXVsnb3duZXInXSwgMTApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnlbMF1b
J293bmVyJ10sIDEwKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQ2OS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkQ2OVswXVsncmVwb3NpdG9yeSddLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hD
b21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2
MDQwMDMzMDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlciddKSwgMTYw
NDAwMzMwOCk7CiAKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzQu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRb
MF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0
MTZFMzRbMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwogICAgICAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5
MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRl
ciddKSwgMTYwMzAwNjkwMCk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0
MDApOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC01NTUsNDEgKzU1NSw0MSBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKIAogICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9j
b21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2
RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydj
b21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKICAgICAgICAgICAgIHJlc3VsdCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9s
YXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CiAKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZFMzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSksIDE2MDQwMDMzMDcpOwogCiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9y
dEFuZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7
CiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwog
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGludm9jYXRpb25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxk
cyddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnko
cmVzdWx0c0ZvclNpZXJyYUQpKTsKICAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJl
c2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nLCAnU2llcnJhMTZENjknXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdy
ZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkob3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAg
ICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxs
IG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10p
OwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1
bHRzRm9yU2llcnJhRSkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNl
dEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0
aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9u
JywgJ1NpZXJyYTE2RTMzaCddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnZv
Y2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQnLCAnZm9yJywgJ3Jl
dmlzaW9uJywgJ1NpZXJyYTE2RTMzaCddKTsKICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJl
c29sdmUoSlNPTi5zdHJpbmdpZnkoYW5vdGhlcm93bmVkQ29tbWl0V2l0aFdlYktpdCkpOwogICAg
ICAgICAgICAgYXdhaXQgIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24o
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KGFub3RoZXJvd25l
ZENvbW1pdFdpdGhXZWJLaXRBbmRKYXZhU2NyaXB0Q29yZSkpOwotICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRDb21taXQn
LCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnb3duZWRD
b21taXQnLCAnZm9yJywgJ3JldmlzaW9uJywgJ1NpZXJyYTE2RTM0J10pOwogCiAgICAgICAgICAg
ICBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CiAKQEAgLTYwMSw0MyArNjAxLDQz
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
Y29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsn
cmV2aXNpb24nOiAnU2llcnJhMTZFMzNoJ30pOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0
MTZFMzQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVy
cmExNkUzNCd9KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnku
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSZXBvc2l0b3J5WzBd
Wydvd25lciddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnlbMF1bJ293
bmVyJ10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0
b3J5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVw
b3NpdG9yeVswXVsnb3duZXInXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChqc2NSZXBvc2l0b3J5WzBdWydvd25lciddLCAxMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkQ2OC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdDE2RDY4WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkQ2OFswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQYW5p
YyIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY4Lmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjhbMF1b
J3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG9zeENvbW1pdDE2RDY4WzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjhbMF1bJ3Rlc3RhYmlsaXR5J10sICJQ
YW5pYyIpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3Np
dG9yeSddLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1b
J29yZGVyJ10sIDE2MDMwMDY5MDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBDUFUiKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsn
b3JkZXInXSksIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RDY5WzBdWyd0ZXN0YWJpbGl0eSddLCAiU3BpbiBDUFUiKTsKIAotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMxWzBdWydvcmRlciddLCAxNjA0MDAzMTAw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzMVswXVsndGVzdGFiaWxp
dHknXSwgIldlYktpdCBjcmFzaGVzIik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3N4Q29tbWl0MTZFMzEubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvc3hDb21taXQxNkUzMVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzFbMF1bJ29yZGVyJ10pLCAxNjA0
MDAzMTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzMVsw
XVsndGVzdGFiaWxpdHknXSwgIldlYktpdCBjcmFzaGVzIik7CiAKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChv
c3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA4KTsKIAotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgsIDEp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBv
c2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChv
c3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogCiAgICAgICAgICAgICBy
ZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0
cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1y
ZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzNCcp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlcidd
LCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXIn
XSksIDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlcG9y
dCBjb21taXRzIHdpdGhvdXQgb3duZWQtY29tbWl0cyBpZiAib3duZWRDb21taXRDb21tYW5kIiBp
cyBub3Qgc3BlY2lmaWVkIGluIGNvbmZpZycsIGFzeW5jICgpID0+IHsKQEAgLTY1OSwyNSArNjU5
LDI1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24n
OiAnU2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0p
XSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAw
MDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29t
bWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZp
c2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChw
YXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY4MDApOwogCiAg
ICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5
OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1Np
ZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwNDAwMzMwNyk7CiAKICAgICAgICAgICAg
IGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJ
bnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21p
c2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAgICAgICAgICAgICBh
d2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52
b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9jYXRp
b25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUQpKTsKIAogICAg
ICAgICAgICAgYXdhaXQgTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWls
ZHMnXSk7CiAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5
KHJlc3VsdHNGb3JTaWVycmFFKSk7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZldGNo
UmVwb3J0QW5kVXBkYXRlUHJvbWlzZTsKQEAgLTY5NCwzMCArNjk0LDMwIEBAIGRlc2NyaWJlKCdP
U0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0
MTZFMzNoID0gcmVzdWx0c1szXTsKICAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0g
cmVzdWx0c1s0XTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnku
bGVuZ3RoLCAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0
aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5s
ZW5ndGgsIDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnku
bGVuZ3RoLCAwKTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ3Jl
cG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5
WzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSksIDE2
MDMwMDY5MDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzNoWzBdWydy
ZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
M2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG9zeENvbW1pdDE2RTMzaC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzNoWzBdWydvcmRlcidd
KSwgMTYwNDAwMzMwOCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUz
NC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBd
WydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3N4Q29tbWl0MTZFMzQubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvc3hDb21taXQxNkUzNFswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10p
LCAxNjA0MDAzNDAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY5Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2OTAw
KTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRv
PTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cydd
WzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24n
XSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJ
bnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzNDAwKTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXBvcnQgY29tbWl0cyB3aXRoaW4gc3BlY2lmaWVk
IHJldmlzaW9uIHJhbmdlJywgYXN5bmMgKCkgPT4gewpAQCAtNzM4LDI1ICs3MzgsMjUgQEAgZGVz
Y3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZGIu
aW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmEx
NkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0cnVlfSldKTsKIAogICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNP
TignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAz
MDk5OTAwJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
cmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdT
aWVycmExNkQ2OCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHJl
c3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAwNjgwMCk7CiAKICAgICAgICAgICAg
IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21t
aXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwg
J1NpZXJyYTE2RTMzZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNn
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3KTsKICAgICAgICAgICAgIGNvbnN0IHdhaXRG
b3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7
CiAgICAgICAgICAgICBjb25zdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2UgPSBmZXRjaGVy
LmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRG
b3JJbnZvY2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0Jywg
J2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVz
b2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICBh
d2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3gg
MTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRp
b25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAg
ICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0Zv
clNpZXJyYUUpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hSZXBvcnRBbmRV
cGRhdGVQcm9taXNlOwpAQCAtNzczLDMwICs3NzMsMzAgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRj
aGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkUzM2ggPSBy
ZXN1bHRzWzNdOwogICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRd
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDAp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDAp
OwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsncmVwb3NpdG9yeSdd
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVy
J10sIDE2MDMwMDY5MDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1p
dDE2RDY5Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZENjlbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHBhcnNlSW50KG9zeENvbW1pdDE2RDY5WzBdWydvcmRlciddKSwgMTYwMzAwNjkwMCk7
CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnkn
XSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3Jk
ZXInXSwgMTYwNDAwMzMwOCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZFMzNoLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4
Q29tbWl0MTZFMzNoWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10pLCAxNjA0MDAz
MzA4KTsKIAotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ3JlcG9zaXRv
cnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydv
cmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hD
b21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9z
eENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChwYXJzZUludChvc3hDb21taXQxNkUzNFswXVsnb3JkZXInXSksIDE2MDQwMDM0
MDApOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OScpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2OTAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjknKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJz
ZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDMwMDY5MDApOwogCiAgICAg
ICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9h
cGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkw
MCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzNDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZFMzQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRb
J2NvbW1pdHMnXVswXVsnb3JkZXInXSksIDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAg
ICAgICBpdCgnc2hvdWxkIHVwZGF0ZSBjb21taXRzIHdpdGhpbiBzcGVjaWZpZWQgcmV2aXNpb24g
cmFuZ2UnLCBhc3luYyAoKSA9PiB7CkBAIC04MTcsMjkgKzgxNywyOSBAQCBkZXNjcmliZSgnT1NC
dWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2Nv
bW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdv
cmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6IHRydWV9KV0pOwogCiAgICAgICAgICAgICBs
ZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbidd
LCAnU2llcnJhMTZENjgnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21t
aXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xh
c3QtcmVwb3J0ZWQ/ZnJvbT0xNjA0MDAwMDAwJnRvPTE2MDQwOTk5MDAnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZF
MzNnJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29y
ZGVyJ10sIDE2MDQwMDMzMDcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVswXVsn
b3JkZXInXSksIDE2MDQwMDMzMDcpOwogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9jYXRp
b25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIGNvbnN0IGZldGNoQXZhaWxhYmxlQnVpbGRzUHJvbWlzZSA9IGZldGNoZXIuX2ZldGNoQXZh
aWxhYmxlQnVpbGRzKCk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZvY2F0aW9uUHJv
bWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xp
c3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHgg
YnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJv
Y2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
aW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10p
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1h
bmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKICAgICAgICAgICAgIGludm9j
YXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNpZXJyYUUpKTsKIAog
ICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5jb21taXRzVG9VcGRhdGUubGVuZ3RoLCAw
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuY29tbWl0c1RvVXBkYXRl
Lmxlbmd0aCwgMCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdXNlICJsYXN0
LXJlcG9ydGVkIiBvcmRlciArIDEgYXMgIm1pbk9yZGVyIicsIGFzeW5jICgpID0+IHsKQEAgLTg1
MywxNSArODUzLDE1IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAs
ICdyZXZpc2lvbic6ICdTaWVycmExNkQxMDAnLCAnb3JkZXInOiAxNjAzMDEwMDAwLCAncmVwb3J0
ZWQnOiB0cnVlfSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9t
PTE2MDMwMTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
dWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDAnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAxMDAw
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDEwMCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHBhcnNlSW50KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddKSwgMTYwMzAx
MDAwMCk7CiAKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1v
Y2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICBjb25zdCBmZXRj
aEFuZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoUmVwb3J0QW5kVXBkYXRlQnVpbGRzKCk7
CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZE
eHggYnVpbGRzJ10pOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRp
b25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAg
ICAgICAgIGludm9jYXRpb25zWzBdLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkocmVzdWx0c0ZvclNp
ZXJyYUQpKTsKIAogICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZmV0Y2hBbmRSZXBvcnRQcm9t
aXNlOwpAQCAtODc2LDE5ICs4NzYsMTkgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQ2OSA9IHJlc3VsdHNbMl07
CiAgICAgICAgICAgICBjb25zdCBvc3hDb21taXQxNkQxMDBhID0gcmVzdWx0c1szXTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGpzY1JlcG9zaXRvcnkubGVuZ3RoLCAwKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKIAotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDEwMGEubGVuZ3RoLCAxKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydyZXBvc2l0b3J5J10sIDEw
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQxMDBhWzBdWydvcmRlcidd
LCAxNjAzMDEwMDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvc3hDb21taXQx
NkQxMDBhLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29t
bWl0MTZEMTAwYVswXVsncmVwb3NpdG9yeSddLCAxMCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZEMTAwYVswXVsnb3JkZXInXSksIDE2MDMwMTAw
MDEpOwogCiAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMTAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRz
J11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDBhJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDEpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkQxMDBhJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjAzMDEwMDAxKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB1c2UgbWluUmV2aXNpb24gaW4gdGhlIGNv
bmZpZyBpZiB0aGVyZSBpcyBubyBjb21taXQnLCBhc3luYyAoKSA9PiB7CkBAIC05MDEsMTMgKzkw
MSwxMyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEwLCAnbmFtZSc6ICdP
U1gnfSk7CiAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMw
MTAwMDAmdG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0Wydjb21taXRzJ10ubGVuZ3RoLCAwKTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvcklu
dm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKICAg
ICAgICAgICAgIGNvbnN0IGZldGNoUmVwb3J0QW5kVXBkYXRlUHJvbWlzZSA9IGZldGNoZXIuZmV0
Y2hSZXBvcnRBbmRVcGRhdGVCdWlsZHMoKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JJbnZv
Y2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21t
YW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkR4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZEeHggYnVpbGRzJ10pOwogICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShK
U09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2llcnJhRCkpOwogCiAgICAgICAgICAgICByZXN1bHQg
PSBhd2FpdCBmZXRjaFJlcG9ydEFuZFVwZGF0ZVByb21pc2U7CkBAIC05MjQsMjMgKzkyNCwyMyBA
QCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnN0IG9zeENvbW1pdDE2RDEwMCA9IHJlc3VsdHNbM107CiAgICAgICAgICAgICBjb25zdCBvc3hD
b21taXQxNkQxMDEgPSByZXN1bHRzWzRdOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0UmVwb3NpdG9yeS5sZW5ndGgsIDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jl
cG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
anNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZENjkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
c3hDb21taXQxNkQ2OS5sZW5ndGgsIDApOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4
Q29tbWl0MTZEMTAwLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0MTZEMTAwWzBdWydyZXBvc2l0b3J5J10sIDEwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQxMDBbMF1bJ29yZGVyJ10sIDE2MDMwMTAwMDApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMC5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9zeENvbW1pdDE2RDEwMFswXVsncmVwb3NpdG9yeSddLCAx
MCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3N4Q29tbWl0MTZE
MTAwWzBdWydvcmRlciddKSwgMTYwMzAxMDAwMCk7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQxMDEubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkQxMDFbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9zeENvbW1pdDE2RDEwMVswXVsnb3JkZXInXSwgMTYwMzAxMDEwMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAxLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3N4Q29tbWl0MTZEMTAxWzBdWydyZXBvc2l0b3J5
J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvc3hDb21t
aXQxNkQxMDFbMF1bJ29yZGVyJ10pLCAxNjAzMDEwMTAwKTsKIAogICAgICAgICAgICAgcmVzdWx0
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NY
L2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDEwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJh
MTZEMTAxJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10sIDE2MDMwMTAxMDApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQxMDEnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsnb3JkZXInXSksIDE2MDMwMTAxMDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIHN0b3AgcmVwb3J0aW5nIGlmIGFueSBjdXN0b20gY29tbWFuZCBmYWlscycsICgpID0+IHsK
QEAgLTk2Myw2MCArOTYzLDYwIEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50
aGVuKChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgw
MCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cydd
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVy
J10pLCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2
MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBd
WydyZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAz
MzA3KTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9
IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgZmV0
Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRjaFJlcG9ydEFuZFVwZGF0ZUJ1aWxkcygp
OwogICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52
b2NhdGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGlu
dm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBd
LmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKICAgICAgICAgICAg
ICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KHJlc3VsdHNGb3JTaWVy
cmFEKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2Fp
dEZvckludm9jYXRpb24oKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293
bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkQ2OSddKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQs
IFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZENjkn
XSk7CiAgICAgICAgICAgICAgICAgTW9ja1N1YnByb2Nlc3MuaW52b2NhdGlvbnNbMF0ucmVzb2x2
ZShKU09OLnN0cmluZ2lmeShvd25lZENvbW1pdFdpdGhXZWJLaXQpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1N1YnByb2Nlc3MucmVzZXRBbmRXYWl0Rm9ySW52b2NhdGlvbigpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlu
dm9jYXRpb25zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChp
bnZvY2F0aW9uc1swXS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnZvY2F0aW9uc1sw
XS5jb21tYW5kLCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CiAgICAgICAgICAg
ICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmluZ2lmeShyZXN1bHRzRm9yU2ll
cnJhRSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdh
aXRGb3JJbnZvY2F0aW9uKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcs
ICdvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzNoJ10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFu
ZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbicsICdTaWVycmExNkUz
M2gnXSk7CiAgICAgICAgICAgICAgICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZShKU09OLnN0cmlu
Z2lmeShhbm90aGVyb3duZWRDb21taXRXaXRoV2ViS2l0KSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvckludm9jYXRpb24oKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0
aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lv
bicsICdTaWVycmExNkUzNCddKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
aW52b2NhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdvd25lZENvbW1pdCcsICdm
b3InLCAncmV2aXNpb24nLCAnU2llcnJhMTZFMzQnXSk7CiAgICAgICAgICAgICAgICAgaW52b2Nh
dGlvbnNbMF0ucmVqZWN0KCdDb21tYW5kIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmZXRjaEFuZFJlcG9ydFByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAg
IGFzc2VydChmYWxzZSwgJ3Nob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CiAgICAgICAgICAgICAg
ICAgfSwgKGVycm9yX291dHB1dCkgPT4gewogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoZXJy
b3Jfb3V0cHV0KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yX291dHB1
dCwgJ0NvbW1hbmQgZmFpbGVkJyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChlcnJvcl9vdXRwdXQsICdDb21tYW5kIGZhaWxlZCcpOwogICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9y
dGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0xNjAzMDk5OTAwJyk7CiAgICAgICAgICAgICB9KS50aGVu
KChyZXN1bHQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ11bMF1bJ3JldmlzaW9uJ10sICdTaWVycmExNkQ2OCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnY29t
bWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10p
LCAxNjAzMDA2ODAwKTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQw
MDAwMDAmdG89MTYwNDA5OTkwMCcpOwogICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydy
ZXZpc2lvbiddLCAnU2llcnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jl
dmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10pLCAxNjA0MDAzMzA3
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KQogICAgIH0pCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50
ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKaW5kZXggNzFhMWQ1Mzll
YjYyZmVmMmFlYjdjZTBjMTk2NDBiMTY0YzJmY2YxMC4uNjlhOTFmNWU2MTEzMDZlYWRiOGYyMTI3
Yjg4ZDA1ZGVhYjk1YjEwYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJv
dC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTQ1LDggKzE0NSw4IEBAIGNvbnN0IGNvbmZpZ1dp
dGhUd29UZXN0ZXJzID0gewogCiBmdW5jdGlvbiBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0LCBtZXRob2QsIHVybCwgY29udGVudFRvUmVzb2x2ZSkKIHsKLSAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdC5tZXRob2QsIG1ldGhvZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1
cmwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC51cmwsIHVybCk7CiAgICAgcmVxdWVzdC5yZXNv
bHZlKGNvbnRlbnRUb1Jlc29sdmUpOwogfQogCkBAIC0yNjUsMjMgKzI2NSwyMyBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZv
ck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiBzZWNvbmRUZXN0R3JvdXBGaXJz
dEJ1aWxkUmVxdWVzdH0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnYW5vdGhlciB0ZXN0
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1v
Y2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgdGVzdGVyJyksIGJ1aWxkUmVxdWVzdElkOiBm
aXJzdFRlc3RHcm91cEZpcnN0QnVpbGRSZXF1ZXN0fSkpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ2Fub3RoZXIgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdhbm90
aGVyIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCiAgICAgICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVp
bGRlcklERm9yTmFtZSgnc29tZSB0ZXN0ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IHNlY29uZFRlc3RH
cm91cEZpcnN0QnVpbGRSZXF1ZXN0fSksCkBAIC0yOTIsNDUgKzI5Miw0NSBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRl
c3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKIAogICAgICAgICAgICAgY29uc3Qg
YnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5n
dGgsIDQpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkx
NjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwogCiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayhhbm90aGVyVGFza0lkLCB0cnVlKTsK
ICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5k
QnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAKICAgICAgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAg
ICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKQEAgLTM0NCwzNiArMzQ0LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgIGNvbnN0IHRhc2tJZCA9IHRlc3RHcm91cC50
YXNrKCkuaWQoKTsKICAgICAgICAgbGV0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9j
a0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGxldCBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNE
ZXNjcmlwdGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
bGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIGxldCB3ZWJraXRQYXRjaCA9IGNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBh
dGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICBsZXQgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICBsZXQgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0g
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwpAQCAtMzgxLDMyICszODEsMzIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYy
MicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcp
LCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcyd9fSk7CiAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKIAotICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpLCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCiAgICAgICAg
ICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklE
Rm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAogICAgICAgICAgICAgTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3Nv
bWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IGZpcnN0QnVpbGRO
dW1iZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQnVpbGRpbmcgV2ViS2l0J30pKTsKQEAgLTQxNSwz
OSArNDE1LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAg
ICAgICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAg
ICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRv
cnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwog
CiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24o
KSwgJ0J1aWxkaW5nIFdlYktpdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOwogICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1l
KCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAg
ICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0
Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFtdKTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC00NTYsMjYgKzQ1Niwy
NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
JywgMiksCiAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9j
a0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAx
LCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxp
bmcgV1RGJ30pKTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30p
OwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
N10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30p
OwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBh
d2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
LCB7fSk7CiAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAg
ICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklE
Rm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmly
c3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pKTsKQEAg
LTQ4NCw4MCArNDg0LDgwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogCiAgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
IAotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3Jv
dXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnUnVubmluZycpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1i
ZXIpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCAnQ29tcGlsaW5nIFdURicpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxk
ZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2gg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwotICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksIG51bGwpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOwogCi0gICAgICAgIGF3YWl0IHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0
LmlkKCksIGZpcnN0QnVpbGROdW1iZXIpOworICAgICAgICBhd2FpdCB1cGxvYWRSb290KHBhcnNl
SW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgZmlyc3RCdWlsZE51bWJlcik7CiAKICAgICAgICAgdGVz
dEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAot
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJl
cikpOwotICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksICdDb21waWxpbmcgV1RGJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOwogICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQ
YXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgIGxldCB3ZWJr
aXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgIGFz
c2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwog
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtp
dFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlw
dGlvbigpLCBudWxsKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBA
IC01NjYsMzIgKzU2NiwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDMpOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXJ9KSk7CiAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA3KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQ
T1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwog
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdq
c29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAg
ICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxk
LXdrJzogdHJ1ZX19KTsKICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLCB7CiAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtNjAzLDgzICs2MDMsODMgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgYXdhaXQg
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogCi0gICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07
CiAgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOwotICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlw
dGlvbigpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgIHdl
YmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAg
ICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcp
OwogICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdy
b290MTIzLmRhdCcpOwogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdSdW5uaW5nJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWls
ZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
RGVzY3JpcHRpb24oKSwgbnVsbCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW10pOwotICAgICAgICBhd2FpdCB1cGxvYWRSb290KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCksIDEyNCk7CisgICAgICAgIGF3YWl0IHVwbG9hZFJvb3QocGFyc2VJbnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAKICAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKIAotICAgICAgICBhc3NlcnQu
ZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBd
OwogICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJl
cG9zaXRvcnlJZCgpKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOwotICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVy
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICB3
ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAg
ICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKICAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyMy5kYXQnKTsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRC
dWlsZE51bWJlcikpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVs
bCk7CiAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgY29uc3Qgb3Ro
ZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsK
ICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjQuZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmls
ZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICB9KTsKIApA
QCAtNjk0LDM0ICs2OTQsMzQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lk
ID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBh
dGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVu
YW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
IAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC03MjksMzIgKzcyOSwzMiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21l
dGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIy
JywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0Jyks
ICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJ319KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAgICAgICAgICAgIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTc2Myw3NiArNzYzLDc2IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAg
ICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAg
ICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2gg
PSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUo
KSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAg
ICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAg
ICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9m
IFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmls
ZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdl
YmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
ICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWls
ZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90
aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1p
dFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKQEAgLTg0MSwzMiArODQxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicp
LCBidWlsZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1h
Yi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNb
Nl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2ti
b3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC04NzgsODAgKzg3OCw4
MCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydCh3
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W3dlYmtpdFJvb3RdKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4g
dXBsb2FkUm9vdChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAxMjQpOworICAgICAgICAgICAgcmV0
dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRj
aEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVu
YW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290
MTIzLmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhl
ckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9v
dC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3Ro
ZXJXZWJraXRSb290XSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTY3LDM0ICs5NjcsMzQg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRo
ZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRhc2so
KS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAg
ICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsw
XTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGlu
ZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBh
dGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNo
IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7CkBAIC0xMDAyLDMyICsxMDAyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFi
LWJ1aWxkcycsICdPSycpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6CiAgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBS
ZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gn
OiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBs
YXRmb3JtJ319KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAg
ICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5i
dWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUo
J3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTEwMzYsNzYgKzEwMzYs
NzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1
bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CiAgICAgICAgICAg
ICBjb25zdCB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmls
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5w
YXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxl
cygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdC5p
ZCgpLCAxMjMpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRS
ZXF1ZXN0LmlkKCkpLCAxMjMpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjInKTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdl
YmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMTExNCwzMiArMTExNCwzMiBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAg
ICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURG
b3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzog
JzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZSwg
J3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLCB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKQEAgLTExNTEsODAgKzExNTEs
ODAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKICAgICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwogICAgICAgICAg
ICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtp
dCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5m
aWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0g
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQo
d2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAotICAgICAgICAgICAgcmV0dXJu
IHVwbG9hZFJvb3Qob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMTI0KTsKKyAgICAgICAgICAgIHJl
dHVybiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0
IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlk
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
ICAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxl
bmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgd2Vi
a2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAg
ICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW290
aGVyV2Via2l0Um9vdF0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEyNDEsMjIgKzEyNDEs
MjIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
LnRoZW4oKHRlc3RHcm91cCkgPT4gewogICAgICAgICAgICAgdGFza0lkID0gdGVzdEdyb3VwLnRh
c2soKS5pZCgpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAog
ICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkp
LCAxKTsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRp
bmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMik7CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoMSwgNDUpOwpAQCAtMTI2NSwzOSArMTI2NSwzOSBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RH
cm91cCA9IHRlc3RHcm91cHNbMF07CiAKICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVs
KCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICAgICAgY29uc3Qg
cm9vdHMgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm9vdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgZmlyc3RSb290ID0gcm9v
dHNbMF07CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJvb3RzWzBdLmZpbGVuYW1lKCks
ICdyb290NDUuZGF0Jyk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJSb290cyA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpLmFsbFJvb3RGaWxlcygpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Um9vdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlclJv
b3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyUm9vdHNb
MF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0Ni5kYXQnKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzA3LDEz
ICsxMzA3LDEzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLXRlc3RzJywgJ09LJyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMycsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7
J3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzMnLCdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsICdyb290cyc6IEpTT04uc3Ry
aW5naWZ5KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwgWwogICAgICAgICAgICAgICAgIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IHRlc3RlcicpLCBidWlsZFJlcXVlc3RJZDogM30pLAogICAgICAgICAgICAgXSk7CkBAIC0xMzIx
LDcgKzEzMjEsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgewogICAgICAgICAgICAgICAgICdi
dWlsZHMnOiBbCkBAIC0xMzQzLDM2ICsxMzQzLDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQ
YXRjaCgpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRh
c2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEp
OwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3Qg
PSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBz
eW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2Vy
YWJsZS5zeW5jT25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xMzgzLDEzICsxMzgzLDEz
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0
ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwgewogICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCkBAIC0xNDAxLDI0ICsxNDAxLDI0
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuaWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCAxKTsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQo
KSwgMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VJbnQob3RoZXJCdWls
ZFJlcXVlc3QuaWQoKSksIDIpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEw
MDIpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTAwMikpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
CkBAIC0xNDMyLDQ5ICsxNDMyLDQ5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpOwog
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXApID0+IHsKICAgICAgICAgICAgIHRhc2tJZCA9IHRl
c3RHcm91cC50YXNrKCkuaWQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNl
SW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAyKTsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2Fp
dGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdvdGhlciBidWlsZGVyJyksIGJ1aWxk
UmVxdWVzdElkOiAxLCBidWlsZFRhZzogMzEyfSkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMik7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwg
e30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksCkBAIC0x
NDgzLDI4ICsxNDgzLDI4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogCiAg
ICAgICAgICAgICBjb25zdCBidWlsZFJlcWV1c3RzID0gdGVzdEdyb3Vwc1swXS5idWlsZFJlcXVl
c3RzKCk7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1swXS5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzBdLmlzVGVzdCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ290aGVyIGJ1aWxkZXInLCAzMTIpKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNMYWJlbCgpLCAn
RmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sw
XS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhlciBidWlsZGVyJywgMzEyKSk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1swXS5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1sxXS5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzFdLmlzVGVzdCgpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1c0xhYmVsKCksICdG
YWlsZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1
c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFd
LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXFldXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXFldXN0c1sxXS5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBmdW5jdGlvbiBhc3NlcnRUZXN0QnVpbGRIYXNGYWlsZWQocmVxdWVz
dCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQocmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdGYWlsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYXNz
ZXJ0VGVzdEJ1aWxkSGFzRmFpbGVkKGJ1aWxkUmVxZXVzdHNbMl0pOwpAQCAtMTUyNCwzNiArMTUy
NCwzNiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OwogICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tE
YXRhLm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShv
d25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CkBAIC0xNTYxLDMyICsx
NTYxLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiks
IHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CiAgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJy
ZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwi
b3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyJyksCiAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWls
ZFJlcXVlc3RJZDogMX0pKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwK
ICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0Rh
dGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkp
OwpAQCAtMTU5NSw4NSArMTU5NSw4NSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0
R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAg
ICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJl
cG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5m
aW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgs
IDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dh
aXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93
bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4g
dXBsb2FkUm9vdChidWlsZFJlcXVlc3QuaWQoKSwgMTIzKS50aGVuKCgpID0+IHVwbG9hZFJvb3Qo
YnVpbGRSZXF1ZXN0LmlkKCksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25l
ZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2
JykpOworICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0
LmlkKCkpLCAxMjMpLnRoZW4oKCkgPT4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3Qu
aWQoKSksIDEyMywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6
ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CiAgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKICAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOwog
ICAgICAgICAgICAgY29uc3Qgb3duZWRKU0MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRh
Lm93bmVkSlNDUmVwb3NpdG9yeUlkKCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CiAKICAgICAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CiAg
ICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgn
c29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3Np
dG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7
CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVw
bG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFt
ZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwogICAgICAgICAgICAgY29uc3QganNj
Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeShvd25lZEpTQyk7CiAgICAgICAgICAg
ICBhc3NlcnQoanNjUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChqc2NSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCks
IFt3ZWJraXRSb290LCBqc2NSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhl
ckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVy
UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93
bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CkBAIC0xNjgyLDMy
ICsxNjgyLDMyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRh
LmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
ICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcs
ICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pz
b25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAg
ICAgIHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3si
cmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIs
Im93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksIHsKICAgICAgICAgICAgICAgICAnYnVpbGRzJzogWwpAQCAtMTcxOSw5NSArMTcxOSw5NSBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAg
ICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpT
Q1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFi
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAg
ICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5m
aWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBj
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0
KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0
Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9
IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJC
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRS
ZXF1ZXN0LmlkKCksIDEyNCkudGhlbigoKSA9PiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0
LmlkKCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6
ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2JykpOworICAgICAg
ICAgICAgcmV0dXJuIHVwbG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSks
IDEyNCkudGhlbigoKSA9PiB1cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0Lmlk
KCkpLCAxMjQsIFt7b3duZXJSZXBvc2l0b3J5OiAnV2ViS2l0Jywgb3duZWRSZXBvc2l0b3J5OiAn
SmF2YVNjcmlwdENvcmUnfV0sICcyMDE3LTA1LTEwVDAyOjU0OjA5LjY2NicpKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNv
bnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQg
PSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAg
ICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5v
d25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jv
b3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
d2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5v
d25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9vdCA9
IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQuZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJKU0NSb290ID0g
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAg
YXNzZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgpLCAn
cm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3QsIG90aGVySlNDUm9vdF0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTE4MjQsMzYgKzE4MjQsMzYgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAu
dGFzaygpLmlkKCk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93
bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJ
ZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzFdOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnV2FpdGluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdn
ZXJhYmxlLnN5bmNPbmNlKCkpOwpAQCAtMTg2MSwzMiArMTg2MSwzMiBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6
ICdmb3JjZScsICdwYXJhbXMnOgogICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMn
LCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2
MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIi
fV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CiAgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAogICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3Nv
bWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKQEAgLTE4OTUsMTI2ICsxODk1LDEy
NiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25l
ZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1
aWxkZXInLCAxMjQpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgMTI0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hG
b3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0
U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtp
dCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0
b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCi0gICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJlcXVl
c3QuaWQoKSwgMTIzKTsKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KHBhcnNlSW50KGJ1
aWxkUmVxdWVzdC5pZCgpKSwgMTIzKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91
cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlND
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1
bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXRS
b290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIz
LmRhdCcpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFt3ZWJraXRSb290XSk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1
ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
V2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29t
bWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgb3RoZXJDb21taXRT
ZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkyNzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVk
SlNDKSwgb3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwotICAgICAgICAgICAgcmV0dXJuIHVwbG9hZFJvb3QoYnVpbGRSZXF1ZXN0LmlkKCksIDEy
MywgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2Ny
aXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CisgICAgICAgICAgICByZXR1
cm4gdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIDEyMywgW3tvd25lclJl
cG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJlcG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwg
JzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKICAg
ICAgICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0
ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBjb25zdCBvd25l
ZEpTQyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEub3duZWRKU0NSZXBvc2l0b3J5SWQo
KSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKIAogICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQp
KTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9u
Rm9yUmVwb3NpdG9yeShvd25lZEpTQyksIGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKICAgICAgICAg
ICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CiAgICAgICAgICAgICBjb25zdCBqc2NSb290ID0gY29tbWl0U2V0LnJvb3RG
b3JSZXBvc2l0b3J5KChvd25lZEpTQykpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5z
dGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3Qu
ZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9v
dF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdXYWl0aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBv
dGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlz
aW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwpAQCAtMjAyMywzMiArMjAyMywzMiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKICAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCiAgICAgICAgICAgICAgICAgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKICAgICAgICAgICAgICAgICB7J3drJzogJzE5MjczNics
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVp
bGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNj
LTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTky
NzM2In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSwge30pOwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OwogICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CiAgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CiAgICAgICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKQEAgLTIwNjAsMTQxICsyMDYwLDE0MSBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RH
cm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91
cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlND
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0
ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVs
bCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQu
cmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0
Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAg
YXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2Vv
ZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNj
Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0
U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3
MzYnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3du
ZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKLSAg
ICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7
CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpKSwgMTI0KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVu
KCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAg
ICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndl
YmtpdFJlcG9zaXRvcnlJZCgpKTsKICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOwogCiAgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzBdOwogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVk
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5
KG93bmVkSlNDKSwgY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHdlYmtpdCkpOwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsK
ICAgICAgICAgICAgIGNvbnN0IGpzY1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnko
b3duZWRKU0MpOwogICAgICAgICAgICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jv
b3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxl
bmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAg
ICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5n
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEy
NCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3Ro
ZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
b3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3du
ZWRKU0MpLCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTI3MzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkob3duZWRKU0Mp
LCBvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSk7CiAgICAgICAg
ICAgICBjb25zdCBvdGhlcldlYmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5j
ZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJXZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyNC5kYXQnKTsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtv
dGhlcldlYmtpdFJvb3RdKTsKLSAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVyQnVp
bGRSZXF1ZXN0LmlkKCksIDEyNCwgW3tvd25lclJlcG9zaXRvcnk6ICdXZWJLaXQnLCBvd25lZFJl
cG9zaXRvcnk6ICdKYXZhU2NyaXB0Q29yZSd9XSwgJzIwMTctMDUtMTBUMDI6NTQ6MDkuNjY2Jyk7
CisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChwYXJzZUludChvdGhlckJ1aWxkUmVxdWVz
dC5pZCgpKSwgMTI0LCBbe293bmVyUmVwb3NpdG9yeTogJ1dlYktpdCcsIG93bmVkUmVwb3NpdG9y
eTogJ0phdmFTY3JpcHRDb3JlJ31dLCAnMjAxNy0wNS0xMFQwMjo1NDowOS42NjYnKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9y
VGFzayh0YXNrSWQsIHRydWUpOwogICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
IGNvbnN0IHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CiAgICAgICAgICAgICBjb25zdCB3ZWJr
aXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsK
ICAgICAgICAgICAgIGNvbnN0IG93bmVkSlNDID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0
YS5vd25lZEpTQ1JlcG9zaXRvcnlJZCgpKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOwogCiAgICAgICAg
ICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwo
J3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KG93bmVkSlNDKSwgY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucGF0Y2hGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9z
aXRvcnkob3duZWRKU0MpLCBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCkp
OwogICAgICAgICAgICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKICAgICAgICAgICAgIGNvbnN0IGpz
Y1Jvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAg
ICAgYXNzZXJ0KGpzY1Jvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGpzY1Jvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoanNjUm9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQn
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbd2Via2l0Um9vdCwganNjUm9vdF0pOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxk
UmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkod2Via2l0KSwgJzE5MjczNicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNl
dC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5Mjcz
NicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5vd25lclJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5vd25l
clJldmlzaW9uRm9yUmVwb3NpdG9yeShvd25lZEpTQyksIG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyV2Via2l0Um9v
dCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjQu
ZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZp
bGVuYW1lKCksICdyb290MTI0LmRhdCcpOwogICAgICAgICAgICAgY29uc3Qgb3RoZXJKU0NSb290
ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkob3duZWRKU0MpOwogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVySlNDUm9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJKU0NSb290LmZpbGVuYW1lKCksICdyb290MTI0LmRhdCcp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVySlNDUm9vdC5maWxlbmFtZSgp
LCAncm9vdDEyNC5kYXQnKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3QsIG90aGVySlNDUm9vdF0pOwog
ICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9hc3NlcnQtb3ZlcnJpZGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYXNzZXJ0LW92ZXJyaWRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5OTM3NTk3OTQ5ZGE3Zjhm
ODRjOGQyNjAyMGJkM2YxOTk4Y2JmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYXNzZXJ0LW92ZXJyaWRlLmpzCkBAIC0wLDAgKzEsOCBAQAor
Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK2Z1bmN0aW9uIG1ha2VDb25zb2xl
QXNzZXJ0VGhyb3coKSAKK3sKKyAgICBjb25zb2xlLmFzc2VydCA9IGFzc2VydC5vazsKK30KKwor
bW9kdWxlLmV4cG9ydHMubWFrZUNvbnNvbGVBc3NlcnRUaHJvdyA9IG1ha2VDb25zb2xlQXNzZXJ0
VGhyb3c7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggMzBiZDI1ZjBh
Y2QwMTdlNDVmOGE4MDgxZmNlZTFiOGQwOTdmNjg4MS4uNTJjYjFlYzI0M2I5ZjE2NWRmN2RjN2Q2
OTBlNDA3YTA4MDllZTg0YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCkBAIC0xMiw3ICsxMiw3IEBAIGNsYXNzIEJ1aWxk
Ym90QnVpbGRFbnRyeSB7CiAKICAgICBpbml0aWFsaXplKHN5bmNlciwgcmF3RGF0YSkKICAgICB7
Ci0gICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlcklEKCksIHJhd0RhdGFbJ2J1aWxk
ZXJpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlSW50KHN5bmNlci5idWls
ZGVySUQoKSksIHBhcnNlSW50KHJhd0RhdGFbJ2J1aWxkZXJpZCddKSk7CiAKICAgICAgICAgdGhp
cy5fc3luY2VyID0gc3luY2VyOwogICAgICAgICB0aGlzLl9idWlsZGJvdEJ1aWxkUmVxdWVzdElk
ID0gcmF3RGF0YVsnYnVpbGRyZXF1ZXN0aWQnXTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgQnVp
bGRib3RCdWlsZEVudHJ5IHsKIAogICAgIGJ1aWxkUmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVk
ZWQocmVxdWVzdCkKICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LmlkKCksIHRo
aXMuX2J1aWxkUmVxdWVzdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Qu
aWQoKSwgdGhpcy5fYnVpbGRSZXF1ZXN0SWQpOwogICAgICAgICBpZiAoIXJlcXVlc3QpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgaWYgKHRoaXMuaXNQZW5kaW5nKCkpIHsKQEAg
LTExNyw3ICsxMTcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGxldCBwcm9w
ZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1
ZXN0c0luR3JvdXApOwogCiAgICAgICAgIGFzc2VydChwcm9wZXJ0aWVzWydmb3JjZXNjaGVkdWxl
ciddLCBgZm9yY2VzY2hlZHVsZXIgd2FzIG5vdCBzcGVjaWZpZWQgaW4gYnVpbGRib3QgcHJvcGVy
dGllcyBmb3IgYnVpbGQgcmVxdWVzdCAke25ld1JlcXVlc3QuaWQoKX0gb24gcGxhdGZvcm0gIiR7
bmV3UmVxdWVzdC5wbGF0Zm9ybSgpLm5hbWUoKX0iIGZvciBidWlsZGVyICIke3RoaXMuYnVpbGRl
ck5hbWUoKX0iYCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbCghdGhpcy5fc2xhdmVQcm9wZXJ0eU5h
bWUsICFzbGF2ZU5hbWUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoIXRoaXMuX3NsYXZl
UHJvcGVydHlOYW1lLCAhc2xhdmVOYW1lKTsKICAgICAgICAgaWYgKHRoaXMuX3NsYXZlUHJvcGVy
dHlOYW1lKQogICAgICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZV0g
PSBzbGF2ZU5hbWU7CiAKQEAgLTMzNyw3ICszMzcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7
CiAKICAgICAgICAgYXNzZXJ0KGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwgJ2J1aWxkUmVx
dWVzdEFyZ3VtZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNlZCB0
byBzdG9yZSB0aGUgYnVpbGQgcmVxdWVzdCBJRCcpOwogCi0gICAgICAgIGFzc2VydC5lcXVhbCh0
eXBlb2YoY29uZmlnLnJlcG9zaXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91
cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0
aW9uJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGlj
dGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uJyk7CiAKICAgICAgICAgY29u
c3QgcmVwb3NpdG9yeUdyb3VwcyA9IHt9OwogICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gY29u
ZmlnLnJlcG9zaXRvcnlHcm91cHMpCkBAIC00MTYsNyArNDE2LDcgQEAgY2xhc3MgQnVpbGRib3RT
eW5jZXIgewogCiAgICAgc3RhdGljIF9wYXJzZVJlcG9zaXRvcnlHcm91cChuYW1lLCBncm91cCkK
ICAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3NpdG9yaWVzKSwg
J29iamVjdCcsCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAucmVwb3Np
dG9yaWVzKSwgJ29iamVjdCcsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1l
fSIgZG9lcyBub3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzYCk7CiAgICAg
ICAgIGFzc2VydCghKCdkZXNjcmlwdGlvbicgaW4gZ3JvdXApIHx8IHR5cGVvZihncm91cFsnZGVz
Y3JpcHRpb24nXSkgPT0gJ3N0cmluZycsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAi
JHtuYW1lfSIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0aW9uYCk7CkBAIC00MzEsNyArNDMxLDcg
QEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9
IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAgICAg
ICAgIGFzc2VydChyZXBvc2l0b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2YWxp
ZCByZXBvc2l0b3J5IG5hbWVgKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3Np
dG9yeU5hbWVdID0gcmVwb3NpdG9yeTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yo
b3B0aW9ucyksICdvYmplY3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBzcGVjaWZpZXMgYSBub24t
ZGljdGlvbmFyeSB2YWx1ZWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVv
ZihvcHRpb25zKSwgJ29iamVjdCcsIGAiJHtyZXBvc2l0b3J5TmFtZX0iIHNwZWNpZmllcyBhIG5v
bi1kaWN0aW9uYXJ5IHZhbHVlYCk7CiAgICAgICAgICAgICBhc3NlcnQoW3VuZGVmaW5lZCwgdHJ1
ZSwgZmFsc2VdLmluY2x1ZGVzKG9wdGlvbnMuYWNjZXB0c1BhdGNoKSwKICAgICAgICAgICAgICAg
ICBgIiR7cmVwb3NpdG9yeU5hbWV9IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1
ZTogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zLmFjY2VwdHNQYXRjaCl9YCk7CiAgICAgICAgICAg
ICBpZiAob3B0aW9ucy5hY2NlcHRzUGF0Y2gpCkBAIC00NDEsNyArNDQxLDcgQEAgY2xhc3MgQnVp
bGRib3RTeW5jZXIgewogICAgICAgICB9CiAgICAgICAgIGFzc2VydChwYXJzZWRSZXBvc2l0b3J5
TGlzdC5sZW5ndGgsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5
IGFueSByZXBvc2l0b3J5YCk7CiAKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihncm91cC50
ZXN0UHJvcGVydGllcyksICdvYmplY3QnLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3Bl
Y2lmaWVzIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlYCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YoZ3JvdXAudGVzdFByb3BlcnRpZXMpLCAn
b2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgdGVzdCBj
b25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZWApOwogCiAgICAgICAgIGNvbnN0IHJl
c29sdmVSZXBvc2l0b3J5ID0gKHJlcG9zaXRvcnlOYW1lKSA9PiB7CiAgICAgICAgICAgICBjb25z
dCByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0b3J5TmFtZV07CkBAIC00NzAs
NyArNDcwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB9KTsKICAgICAgICAg
YXNzZXJ0KCFncm91cC5hY2NlcHRzUm9vdHMgPT0gIXNwZWNpZmllc1Jvb3RzLAogICAgICAgICAg
ICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGFjY2VwdHMgcm9vdHMgYnV0IGRvZXMgbm90
IHNwZWNpZnkgcm9vdHMgaW4gdGVzdFByb3BlcnRpZXNgKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFs
KHBhcnNlZFJlcG9zaXRvcnlMaXN0Lmxlbmd0aCwgdGVzdFJlcG9zaXRvcmllcy5zaXplLAorICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0
UmVwb3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1l
fSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVzdGlu
Z2ApOwogCiAgICAgICAgIGxldCBidWlsZFByb3BlcnRpZXNUZW1wbGF0ZSA9IG51bGw7CkBAIC01
MDQsNyArNTA0LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgYXNzZXJ0
KHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSB8fCBoYXNPd25lZFJldmlzaW9ucywg
YFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBmb3Ig
YnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCBhbnkgcGF0Y2hlcyBvciBuZWVkIHRvIGJ1aWxk
IG93bmVkIGNvbXBvbmVudHNgKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9yeSBv
ZiBwYXRjaFJlcG9zaXRvcmllcykKICAgICAgICAgICAgICAgICBhc3NlcnQocmV2aXNpb25SZXBv
c2l0b3JpZXMuaGFzKHJlcG9zaXRvcnkpLCBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgc3Bl
Y2lmaWVzIGEgcGF0Y2ggZm9yICIke3JlcG9zaXRvcnkubmFtZSgpfSIgYnV0IGRvZXMgbm90IHNw
ZWNpZnkgYSByZXZpc2lvbmApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhdGNoQWNjZXB0
aW5nUmVwb3NpdG9yeUxpc3Quc2l6ZSwgcGF0Y2hSZXBvc2l0b3JpZXMuc2l6ZSwKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LnNpemUs
IHBhdGNoUmVwb3NpdG9yaWVzLnNpemUsCiAgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3Jv
dXAgIiR7bmFtZX0iIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVk
IGluIGJ1aWxkaW5nIGEgcGF0Y2hgKTsKICAgICAgICAgfQogCkBAIC01NjQsMTIgKzU2NCwxMiBA
QCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewog
ICAgICAgICAgICAgY2FzZSAncHJvcGVydGllcyc6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVy
dGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHR5cGVvZih2YWx1ZSksICdvYmplY3QnLCAnQnVpbGQgcHJvcGVydGllcyBzaG91
bGQgYmUgYSBkaWN0aW9uYXJ5Jyk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbJ3Byb3Bl
cnRpZXMnXSkKICAgICAgICAgICAgICAgICAgICAgY29uZmlnWydwcm9wZXJ0aWVzJ10gPSB7fTsK
ICAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gY29uZmlnWydwcm9wZXJ0aWVzJ107
CiAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHZhbHVlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YodmFsdWVbbmFtZV0pLCAnc3RyaW5nJywgYEJ1
aWxkIHByb3BlcnRpZXMgIiR7bmFtZX0iIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2Yg
dHlwZSAiJHt0eXBlb2YodmFsdWUpfSJgKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHR5cGVvZih2YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVydGll
cyAiJHtuYW1lfSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5cGVv
Zih2YWx1ZSl9ImApOwogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0gdmFs
dWVbbmFtZV07CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NTgwLDcgKzU4MCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBj
b25maWdbbmFtZV0gPSB2YWx1ZS5zbGljZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSAnYnVpbGRlcic6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQgYmUg
b2Ygc3RyaW5nIHR5cGVgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlw
ZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlwZWAp
OwogICAgICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSAnYnVpbGRlcklEJzoKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpp
bmRleCA0MGRlMGE1Njk3Yzg3Y2ViMDk4MzU4NzJkN2UyZTA4NTMzOWJiM2MzLi4yOWMxZTUwOGNm
ZWQ2NTY0YzVjMjM5ZjA2MDU5ODRlOGU0MTk2ZjMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC0x
NDcsNyArMTQ3LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhc3NlcnQodHJpZ2dlcmFi
bGUgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZSwgJ011c3Qgc3BlY2lmeSBhIHZhbGlkIHRyaWdnZXJh
YmxlJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJpZ2dlcmFibGUubmFtZSgpLCB0aGlz
Ll9uYW1lLCAnTXVzdCBzcGVjaWZ5IHRoZSB0cmlnZ2VyYWJsZSBvZiB0aGlzIHN5bmNlcicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhpcy5f
bmFtZSwgJ011c3Qgc3BlY2lmeSB0aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsKICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3QucmVwb3NpdG9yeUdyb3Vw
KCk7CiAgICAgICAgICAgICBpZiAoIXJlcG9zaXRvcnlHcm91cCkgewogICAgICAgICAgICAgICAg
IHRoaXMuX2xvZ2dlci5lcnJvcihgQnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZG9lcyBu
b3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgZ3JvdXAuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGlzIG5v
IGxvbmdlciBzdXBwb3J0ZWQuYCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvbWFya3VwLWNvbXBvbmVudC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9tYXJrdXAtY29tcG9uZW50LmpzCmluZGV4IGFjZjA0OWQzODhmYzY3N2FmYTA4
NDg4ODA2MTVkYTYxY2MxY2VlMzkuLjI2NDI1NTJkZWNmMzAxZmFhNTQwNDQ0N2Q4ZDkzZGQ0MGM0
YTcwNTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9tYXJr
dXAtY29tcG9uZW50LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9t
YXJrdXAtY29tcG9uZW50LmpzCkBAIC0xLDQgKzEsNiBAQAorJ3VzZSBzdHJpY3QnOwogCitjb25z
dCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKIGNvbnN0IE1hcmt1cERvY3VtZW50ID0gbmV3
IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAgewpAQCAtMjcs
NyArMjksNyBAQCBjb25zdCBNYXJrdXBEb2N1bWVudCA9IG5ldyBjbGFzcyBNYXJrdXBEb2N1bWVu
dCB7CiAKICAgICBfaWRGb3JDbG9uZShvcmlnaW5hbCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KG9yaWdpbmFsIGluc3RhbmNlb2YgTWFya3VwTm9kZSk7CisgICAgICAgIGFzc2VydC5v
ayhvcmlnaW5hbCBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICByZXR1cm4gdGhpcy5f
bm9kZUlkKys7CiAgICAgfQogCkBAIC0zOCw3ICs0MCw3IEBAIGNvbnN0IE1hcmt1cERvY3VtZW50
ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIAogICAgIG1hcmt1cChub2RlKQogICAgIHsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOworICAg
ICAgICBhc3NlcnQub2sobm9kZSBpbnN0YW5jZW9mIE1hcmt1cE5vZGUpOwogICAgICAgICByZXR1
cm4gbm9kZS5fbWFya3VwKCk7CiAgICAgfQogCkBAIC01Niw3ICs1OCw3IEBAIGNvbnN0IE1hcmt1
cERvY3VtZW50ID0gbmV3IGNsYXNzIE1hcmt1cERvY3VtZW50IHsKIGNsYXNzIE1hcmt1cE5vZGUg
ewogICAgIGNvbnN0cnVjdG9yKGlkKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlw
ZW9mKGlkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5vayh0eXBlb2YoaWQpID09ICdu
dW1iZXInKTsKICAgICAgICAgdGhpcy5faWQgPSBpZDsKICAgICAgICAgdGhpcy5fcGFyZW50Tm9k
ZSA9IG51bGw7CiAgICAgfQpAQCAtNzMsOSArNzUsOSBAQCBjbGFzcyBNYXJrdXBOb2RlIHsKIAog
ICAgIF9jbG9uZU5vZGVEYXRhKGNsb25lZE5vZGUpCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydCh0eXBlb2YoY2xvbmVkTm9kZS5faWQpID09ICdudW1iZXInKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5faWQgIT0gY2xvbmVkTm9kZS5faWQpOwotICAgICAgICBjb25zb2xlLmFz
c2VydChjbG9uZWROb2RlLl9wYXJlbnROb2RlID09IG51bGwpOworICAgICAgICBhc3NlcnQub2so
dHlwZW9mKGNsb25lZE5vZGUuX2lkKSA9PSAnbnVtYmVyJyk7CisgICAgICAgIGFzc2VydC5vayh0
aGlzLl9pZCAhPSBjbG9uZWROb2RlLl9pZCk7CisgICAgICAgIGFzc2VydC5vayhjbG9uZWROb2Rl
Ll9wYXJlbnROb2RlID09IG51bGwpOwogICAgIH0KIAogICAgIHJlbW92ZSgpCkBAIC0xMTMsNyAr
MTE1LDcgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewogICAg
ICAgICBpZiAoY2hpbGQuX3BhcmVudE5vZGUpCiAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKTsK
IAotICAgICAgICBjb25zb2xlLmFzc2VydChjaGlsZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0Lm9rKGNoaWxkLl9wYXJlbnROb2RlID09IG51bGwpOwogICAgICAgICB0aGlz
Ll9jaGlsZE5vZGVzLnB1c2goY2hpbGQpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IHRo
aXM7CiAgICAgfQpAQCAtMTIzLDcgKzEyNSw3IEBAIGNsYXNzIE1hcmt1cFBhcmVudE5vZGUgZXh0
ZW5kcyBNYXJrdXBOb2RlIHsKICAgICAgICAgaWYgKGNoaWxkLl9wYXJlbnROb2RlICE9IHRoaXMp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hpbGRO
b2Rlcy5pbmRleE9mKGNoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0gMCk7
CisgICAgICAgIGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGROb2Rl
cy5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7CiAg
ICAgfQpAQCAtMTQyLDEwICsxNDQsMTAgQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRz
IE1hcmt1cE5vZGUgewogCiAgICAgICAgIGlmIChuZXdDaGlsZC5fcGFyZW50Tm9kZSkKICAgICAg
ICAgICAgIG5ld0NoaWxkLnJlbW92ZSgpOwotICAgICAgICBjb25zb2xlLmFzc2VydChuZXdDaGls
ZC5fcGFyZW50Tm9kZSA9PSBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm9rKG5ld0NoaWxkLl9wYXJl
bnROb2RlID09IG51bGwpOwogCiAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hpbGROb2Rl
cy5pbmRleE9mKG9sZENoaWxkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaW5kZXggPj0gMCk7
CisgICAgICAgIGFzc2VydC5vayhpbmRleCA+PSAwKTsKICAgICAgICAgdGhpcy5fY2hpbGROb2Rl
cy5zcGxpY2UoaW5kZXgsIDEsIG5ld0NoaWxkKTsKICAgICAgICAgb2xkQ2hpbGQuX3BhcmVudE5v
ZGUgPSBudWxsOwogICAgICAgICBuZXdDaGlsZC5fcGFyZW50Tm9kZSA9IHRoaXM7CkBAIC0xNTUs
OCArMTU3LDggQEAgY2xhc3MgTWFya3VwUGFyZW50Tm9kZSBleHRlbmRzIE1hcmt1cE5vZGUgewog
Y2xhc3MgTWFya3VwQ29udGVudFJvb3QgZXh0ZW5kcyBNYXJrdXBQYXJlbnROb2RlIHsKICAgICBj
b25zdHJ1Y3RvcihpZCwgaG9zdCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhvc3Qg
aW5zdGFuY2VvZiBNYXJrdXBFbGVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaG9zdC5f
Y29udGVudFJvb3QgPT0gbnVsbCk7CisgICAgICAgIGFzc2VydC5vayhob3N0IGluc3RhbmNlb2Yg
TWFya3VwRWxlbWVudCk7CisgICAgICAgIGFzc2VydC5vayhob3N0Ll9jb250ZW50Um9vdCA9PSBu
dWxsKTsKICAgICAgICAgc3VwZXIoaWQpOwogICAgICAgICB0aGlzLl9ob3N0RWxlbWVudCA9IG51
bGw7CiAgICAgICAgIGhvc3QuX2NvbnRlbnRSb290ID0gdGhpczsKQEAgLTE3NSw3ICsxNzcsNyBA
QCBjbGFzcyBNYXJrdXBFbGVtZW50IGV4dGVuZHMgTWFya3VwUGFyZW50Tm9kZSB7CiAgICAgY29u
c3RydWN0b3IoaWQsIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcihpZCk7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHR5cGVvZihuYW1lKSA9PSAnc3RyaW5nJyk7CisgICAgICAgIGFzc2VydC5v
ayh0eXBlb2YobmFtZSkgPT0gJ3N0cmluZycpOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
ICAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3ZhbHVl
ID0gbnVsbDsKQEAgLTM2NCw3ICszNjYsNyBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4
dGVuZHMgQ29tbW9uQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRo
aXMuX25hbWUgPSBjb21wb25lbnRzQnlDbGFzcy5nZXQobmV3LnRhcmdldCk7CiAgICAgICAgIGNv
bnN0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAgICBj
b25zb2xlLmFzc2VydChjb21wb25lbnQsIGBDb21wb25lbnQgIiR7dGhpcy5fbmFtZX0iIGhhcyBu
b3QgYmVlbiBkZWZpbmVkYCk7CisgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQsIGBDb21wb25l
bnQgIiR7dGhpcy5fbmFtZX0iIGhhcyBub3QgYmVlbiBkZWZpbmVkYCk7CiAgICAgICAgIHRoaXMu
X2NvbXBvbmVudElkID0gY29tcG9uZW50LmlkOwogICAgICAgICB0aGlzLl9lbGVtZW50ID0gbnVs
bDsKICAgICAgICAgdGhpcy5fY29udGVudFJvb3QgPSBudWxsOwpAQCAtNDEyLDcgKzQxNCw3IEBA
IGNsYXNzIE1hcmt1cENvbXBvbmVudEJhc2UgZXh0ZW5kcyBDb21tb25Db21wb25lbnRCYXNlIHsK
IAogICAgIHN0YXRpYyBydW5SZW5kZXJMb29wKCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCFjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2soIWN1
cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCk7CiAgICAgICAgIGRvIHsKICAgICAgICAgICAgIGNv
bnN0IGN1cnJlbnRTZXQgPSBbLi4uY29tcG9uZW50c1RvUmVuZGVyXTsKICAgICAgICAgICAgIGNv
bXBvbmVudHNUb1JlbmRlci5jbGVhcigpOwpAQCAtNDI5LDE0ICs0MzEsMTQgQEAgY2xhc3MgTWFy
a3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAgcmVu
ZGVyUmVwbGFjZShwYXJlbnROb2RlLCBjb250ZW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5h
c3NlcnQoY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID09IHRoaXMpOwotICAgICAgICBjb25z
b2xlLmFzc2VydChwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7CisgICAg
ICAgIGFzc2VydC5vayhjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPT0gdGhpcyk7CisgICAg
ICAgIGFzc2VydC5vayhwYXJlbnROb2RlIGluc3RhbmNlb2YgTWFya3VwUGFyZW50Tm9kZSk7CiAg
ICAgICAgIHBhcmVudE5vZGUucmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICAgICAgaWYgKGNvbnRl
bnQpIHsKICAgICAgICAgICAgIE1hcmt1cENvbXBvbmVudEJhc2UuX2FkZENvbnRlbnRUb0VsZW1l
bnQocGFyZW50Tm9kZSwgY29udGVudCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9
IGNvbXBvbmVudHNNYXAuZ2V0KHRoaXMuX25hbWUpOwotICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQoY29tcG9uZW50KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21wb25lbnQpOwogICAgICAg
ICAgICAgdGhpcy5fYXBwbHlTdHlsZU92ZXJyaWRlcyhwYXJlbnROb2RlLCBjb21wb25lbnQuc3R5
bGVPdmVycmlkZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00OTMsNyArNDk1LDcgQEAgY2xhc3Mg
TWFya3VwQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbW1vbkNvbXBvbmVudEJhc2UgewogCiAgICAg
c3RhdGljIHJlc2V0KCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjdXJyZW50bHlS
ZW5kZXJpbmdDb21wb25lbnQpOworICAgICAgICBhc3NlcnQub2soIWN1cnJlbnRseVJlbmRlcmlu
Z0NvbXBvbmVudCk7CiAgICAgICAgIE1hcmt1cERvY3VtZW50LnJlc2V0KCk7CiAgICAgICAgIGNv
bXBvbmVudHNNYXAuY2xlYXIoKTsKICAgICAgICAgY29tcG9uZW50c0J5Q2xhc3MuY2xlYXIoKTsK
QEAgLTU2Nyw5ICs1NjksOSBAQCBjbGFzcyBNYXJrdXBDb21wb25lbnRCYXNlIGV4dGVuZHMgQ29t
bW9uQ29tcG9uZW50QmFzZSB7CiAKICAgICBzdGF0aWMgZGVmaW5lRWxlbWVudChuYW1lLCBjb21w
b25lbnRDbGFzcykKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb21wb25lbnRzTWFw
LmdldChuYW1lKSwgYFRoZSBjb21wb25lbnQgIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVm
aW5lZGApOworICAgICAgICBhc3NlcnQub2soIWNvbXBvbmVudHNNYXAuZ2V0KG5hbWUpLCBgVGhl
IGNvbXBvbmVudCAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkYCk7CiAgICAgICAg
IGNvbnN0IGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MgPSBjb21wb25lbnRzQnlDbGFzcy5nZXQo
Y29tcG9uZW50Q2xhc3MpOwotICAgICAgICBjb25zb2xlLmFzc2VydCghZXhpc3RpbmdDb21wb25l
bnRGb3JDbGFzcywgZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcworICAgICAgICBhc3NlcnQub2so
IWV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MsIGV4aXN0aW5nQ29tcG9uZW50Rm9yQ2xhc3MKICAg
ICAgICAgICAgID8gYFRoZSBjb21wb25lbnQgY2xhc3MgIiR7ZXhpc3RpbmdDb21wb25lbnRGb3JD
bGFzc30iIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCB0byBkZWZpbmUgYW5vdGhlciBjb21wb25lbnQg
IiR7ZXhpc3RpbmdDb21wb25lbnRGb3JDbGFzcy5uYW1lfSJgIDogJycpOwogICAgICAgICBjb21w
b25lbnRzTWFwLnNldChuYW1lLCB7CiAgICAgICAgICAgICBjbGFzczogY29tcG9uZW50Q2xhc3Ms
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQt
ZmV0Y2hlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1m
ZXRjaGVyLmpzCmluZGV4IDk5MzQwNzlkNmIzYWE0OWQ4N2VlNDNkYTU5NTFhN2RjMTAyYzA5ZmMu
LjJkNmY1MGE5NTczMGRjZDY2YzQ3NDU4MzFiYjhlYjdlYjdmMjNhNmIgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9vcy1idWlsZC1mZXRjaGVyLmpzCkBA
IC0xMjEsNyArMTIxLDcgQEAgY2xhc3MgT1NCdWlsZEZldGNoZXIgewogICAgICAgICAgICAgICAg
IHRoaXMuX2xvZ2dlci5sb2coYEdvdCAke09iamVjdC5rZXlzKChvd25lZENvbW1pdHMpKS5sZW5n
dGh9IG93bmVkIGNvbW1pdHMgZm9yICIke2NvbW1pdFsncmV2aXNpb24nXX0iYCk7CiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeU5hbWUgaW4gb3duZWRDb21taXRzKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IG93bmVkQ29tbWl0ID0gb3duZWRDb21taXRzW3JlcG9zaXRv
cnlOYW1lXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5
cyhvd25lZENvbW1pdCksIFsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoT2JqZWN0LmtleXMob3duZWRDb21taXQpLCBbJ3JldmlzaW9uJ10p
OwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQodHlwZW9mKG93bmVkQ29tbWl0WydyZXZpc2lv
biddKSA9PSAnc3RyaW5nJyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNv
bW1pdFsnb3duZWRDb21taXRzJ10gPSBvd25lZENvbW1pdHM7CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwppbmRleCBhZjZhYTM2OGVmNTBiYjg3ODMxNzY3ZjZh
Yjc1NjMxYzI4MWRlMGM3Li40NzczNzY2NjA2NjBiODA2ZDQxMTE5OTIwN2Y5NDI4ZGNhNDQ3MjYw
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKQEAgLTMx
LDE0ICszMSwxNCBAQCBjbGFzcyBOb2RlUmVtb3RlQVBJIGV4dGVuZHMgQ29tbW9uUmVtb3RlQVBJ
IHsKICAgICBjb25maWd1cmUoc2VydmVyKQogICAgIHsKICAgICAgICAgYXNzZXJ0KHNlcnZlci5z
Y2hlbWUgPT09ICdodHRwJyB8fCBzZXJ2ZXIuc2NoZW1lID09PSAnaHR0cHMnKTsKLSAgICAgICAg
YXNzZXJ0LmVxdWFsKHR5cGVvZihzZXJ2ZXIuaG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91bGQg
YmUgYSBzdHJpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZihzZXJ2ZXIu
aG9zdCksICdzdHJpbmcnLCAnaG9zdCBzaG91bGQgYmUgYSBzdHJpbmcnKTsKICAgICAgICAgYXNz
ZXJ0KCFzZXJ2ZXIucG9ydCB8fCB0eXBlb2Yoc2VydmVyLnBvcnQpID09ICdudW1iZXInLCAncG9y
dCBzaG91bGQgYmUgYSBudW1iZXInKTsKIAogICAgICAgICBsZXQgYXV0aCA9IG51bGw7CiAgICAg
ICAgIGlmIChzZXJ2ZXIuYXV0aCkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZihz
ZXJ2ZXIuYXV0aCksICdvYmplY3QnLCAnYXV0aCBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5IHdpdGgg
dXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFzIGtleXMnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0eXBlb2Yoc2VydmVyLmF1dGgudXNlcm5hbWUpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxkIGNv
bnRhaW4gYSBzdHJpbmcgdXNlcm5hbWUnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBl
b2Yoc2VydmVyLmF1dGgucGFzc3dvcmQpLCAnc3RyaW5nJywgJ2F1dGggc2hvdWxkIGNvbnRhaW4g
YSBzdHJpbmcgcGFzc3dvcmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBl
b2Yoc2VydmVyLmF1dGgpLCAnb2JqZWN0JywgJ2F1dGggc2hvdWxkIGJlIGEgZGljdGlvbmFyeSB3
aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcyBrZXlzJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnVzZXJuYW1lKSwgJ3N0cmluZycsICdhdXRo
IHNob3VsZCBjb250YWluIGEgc3RyaW5nIHVzZXJuYW1lJyk7CisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodHlwZW9mKHNlcnZlci5hdXRoLnBhc3N3b3JkKSwgJ3N0cmluZycsICdhdXRo
IHNob3VsZCBjb250YWluIGEgc3RyaW5nIHBhc3N3b3JkJyk7CiAgICAgICAgICAgICBhdXRoID0g
ewogICAgICAgICAgICAgICAgIHVzZXJuYW1lOiBzZXJ2ZXIuYXV0aC51c2VybmFtZSwKICAgICAg
ICAgICAgICAgICBwYXNzd29yZDogc2VydmVyLmF1dGgucGFzc3dvcmQsCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCA2YTExZGJjNjdmZjYz
NTYyMmEzOGU3NzE4OTRlOTI4NWEzNzU3NzA3Li40YmViYWJkNWFhNzIxNDUzZGU3ZGU3Mzc5NzQ5
Zjg4MGExNzRjNTFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMKQEAgLTcsNiArNyw4IEBAIGZ1bmN0aW9uIGltcG9ydEZyb21WMyhmaWxlLCBu
YW1lKQogICAgIGdsb2JhbFtuYW1lXSA9IHJlcXVpcmUobW9kZWxzRGlyZWN0b3J5ICsgZmlsZSlb
bmFtZV07CiB9CiAKK3JlcXVpcmUoJy4vYXNzZXJ0LW92ZXJyaWRlLmpzJykubWFrZUNvbnNvbGVB
c3NlcnRUaHJvdygpOworCiBpbXBvcnRGcm9tVjMoJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ0Rh
dGFNb2RlbE9iamVjdCcpOwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdM
YWJlbGVkT2JqZWN0Jyk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2NvbW1pdC1zZXQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9jb21taXQtc2V0LXRlc3RzLmpzCmluZGV4IGEyNjZhODBmYjk1NWVlMWI5MjBj
OWRlZTc5NjE2YjU0M2UwN2NkZmMuLjM4OTNhNTJlYWI3Y2U3MDYwNDc4ZjQ5ODEyN2EzMTU5MzYx
MjAyM2UgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2Nv
bW1pdC1zZXQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvY29tbWl0LXNldC10ZXN0cy5qcwpAQCAtMjIsMTAgKzIyLDggQEAgZnVuY3Rpb24gY3JlYXRl
Um9vdChkZWxldGVkQXQpCiB7CiAgICAgY29uc3QgZGF0YSA9IHsnY3JlYXRlZEF0JzogbmV3IERh
dGUoJzIwMTctMDUtMDFUMjE6MDM6MjdaJyksICdmaWxlbmFtZSc6ICdyb290LmRhdCcsICdleHRl
bnNpb24nOiAnLmRhdCcsICdhdXRob3InOiAnc29tZSB1c2VyJywKICAgICAgICAgc2l6ZTogMTY0
NTIyMzQsIHNoYTI1NjogJzAzZWVkN2E4NDk0YWI4Nzk0YzQ0YjdkNDMwOGU1NTQ0OGZjNTZmNGQ2
YzE3NTgwOWJhOTY4Zjc4ZjY1NmQ1OGQnfTsKLSAgICBpZiAoZGVsZXRlZEF0KSB7Ci0gICAgICAg
IGNvbnNvbGUubG9nKGRlbGV0ZWRBdCk7CisgICAgaWYgKGRlbGV0ZWRBdCkKICAgICAgICAgZGF0
YVsnZGVsZXRlZEF0J10gPSBkZWxldGVkQXQ7Ci0gICAgfQogICAgIHJldHVybiBVcGxvYWRlZEZp
bGUuZW5zdXJlU2luZ2xldG9uKDQ1NiwgZGF0YSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>